diff options
Diffstat (limited to 'src/glsl')
-rw-r--r-- | src/glsl/glsl_lexer.cpp | 395 | ||||
-rw-r--r-- | src/glsl/glsl_parser.cpp | 3054 | ||||
-rw-r--r-- | src/glsl/glsl_parser.h | 234 |
3 files changed, 1898 insertions, 1785 deletions
diff --git a/src/glsl/glsl_lexer.cpp b/src/glsl/glsl_lexer.cpp index 0964430d01c..e72558f14a4 100644 --- a/src/glsl/glsl_lexer.cpp +++ b/src/glsl/glsl_lexer.cpp @@ -958,6 +958,8 @@ static yyconst flex_int16_t yy_chk[1172] = #include "glsl_parser_extras.h" #include "glsl_parser.h" +static int classify_identifier(struct _mesa_glsl_parse_state *, const char *); + #define YY_USER_ACTION \ do { \ yylloc->source = 0; \ @@ -974,7 +976,7 @@ static yyconst flex_int16_t yy_chk[1172] = return token; \ } else { \ yylval->identifier = strdup(yytext); \ - return IDENTIFIER; \ + return classify_identifier(yyextra, yytext); \ } \ } while (0) @@ -999,7 +1001,7 @@ static yyconst flex_int16_t yy_chk[1172] = } \ } while (0) -#line 1003 "glsl_lexer.cpp" +#line 1005 "glsl_lexer.cpp" #define INITIAL 0 #define PP 1 @@ -1237,10 +1239,10 @@ YY_DECL register int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 87 "glsl_lexer.lpp" +#line 89 "glsl_lexer.lpp" -#line 1244 "glsl_lexer.cpp" +#line 1246 "glsl_lexer.cpp" yylval = yylval_param; @@ -1326,7 +1328,7 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 89 "glsl_lexer.lpp" +#line 91 "glsl_lexer.lpp" ; YY_BREAK /* Preprocessor tokens. */ @@ -1335,17 +1337,17 @@ case 2: yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 92 "glsl_lexer.lpp" +#line 94 "glsl_lexer.lpp" ; YY_BREAK case 3: YY_RULE_SETUP -#line 93 "glsl_lexer.lpp" +#line 95 "glsl_lexer.lpp" { BEGIN PP; return VERSION; } YY_BREAK case 4: YY_RULE_SETUP -#line 94 "glsl_lexer.lpp" +#line 96 "glsl_lexer.lpp" { BEGIN PP; return EXTENSION; } YY_BREAK case 5: @@ -1353,7 +1355,7 @@ case 5: yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 95 "glsl_lexer.lpp" +#line 97 "glsl_lexer.lpp" { /* Eat characters until the first digit is * encountered @@ -1375,7 +1377,7 @@ case 6: yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 110 "glsl_lexer.lpp" +#line 112 "glsl_lexer.lpp" { /* Eat characters until the first digit is * encountered @@ -1393,7 +1395,7 @@ YY_RULE_SETUP YY_BREAK case 7: YY_RULE_SETUP -#line 124 "glsl_lexer.lpp" +#line 126 "glsl_lexer.lpp" { BEGIN PP; return PRAGMA_DEBUG_ON; @@ -1401,7 +1403,7 @@ YY_RULE_SETUP YY_BREAK case 8: YY_RULE_SETUP -#line 128 "glsl_lexer.lpp" +#line 130 "glsl_lexer.lpp" { BEGIN PP; return PRAGMA_DEBUG_OFF; @@ -1409,7 +1411,7 @@ YY_RULE_SETUP YY_BREAK case 9: YY_RULE_SETUP -#line 132 "glsl_lexer.lpp" +#line 134 "glsl_lexer.lpp" { BEGIN PP; return PRAGMA_OPTIMIZE_ON; @@ -1417,7 +1419,7 @@ YY_RULE_SETUP YY_BREAK case 10: YY_RULE_SETUP -#line 136 "glsl_lexer.lpp" +#line 138 "glsl_lexer.lpp" { BEGIN PP; return PRAGMA_OPTIMIZE_OFF; @@ -1425,7 +1427,7 @@ YY_RULE_SETUP YY_BREAK case 11: YY_RULE_SETUP -#line 140 "glsl_lexer.lpp" +#line 142 "glsl_lexer.lpp" { BEGIN PP; return PRAGMA_INVARIANT_ALL; @@ -1433,38 +1435,38 @@ YY_RULE_SETUP YY_BREAK case 12: YY_RULE_SETUP -#line 144 "glsl_lexer.lpp" +#line 146 "glsl_lexer.lpp" { BEGIN PRAGMA; } YY_BREAK case 13: /* rule 13 can match eol */ YY_RULE_SETUP -#line 146 "glsl_lexer.lpp" +#line 148 "glsl_lexer.lpp" { BEGIN 0; yylineno++; yycolumn = 0; } YY_BREAK case 14: YY_RULE_SETUP -#line 147 "glsl_lexer.lpp" +#line 149 "glsl_lexer.lpp" { } YY_BREAK case 15: YY_RULE_SETUP -#line 149 "glsl_lexer.lpp" +#line 151 "glsl_lexer.lpp" { } YY_BREAK case 16: YY_RULE_SETUP -#line 150 "glsl_lexer.lpp" +#line 152 "glsl_lexer.lpp" { } YY_BREAK case 17: YY_RULE_SETUP -#line 151 "glsl_lexer.lpp" +#line 153 "glsl_lexer.lpp" return COLON; YY_BREAK case 18: YY_RULE_SETUP -#line 152 "glsl_lexer.lpp" +#line 154 "glsl_lexer.lpp" { yylval->identifier = strdup(yytext); return IDENTIFIER; @@ -1472,7 +1474,7 @@ YY_RULE_SETUP YY_BREAK case 19: YY_RULE_SETUP -#line 156 "glsl_lexer.lpp" +#line 158 "glsl_lexer.lpp" { yylval->n = strtol(yytext, NULL, 10); return INTCONSTANT; @@ -1481,283 +1483,283 @@ YY_RULE_SETUP case 20: /* rule 20 can match eol */ YY_RULE_SETUP -#line 160 "glsl_lexer.lpp" +#line 162 "glsl_lexer.lpp" { BEGIN 0; yylineno++; yycolumn = 0; return EOL; } YY_BREAK case 21: /* rule 21 can match eol */ YY_RULE_SETUP -#line 162 "glsl_lexer.lpp" +#line 164 "glsl_lexer.lpp" { yylineno++; yycolumn = 0; } YY_BREAK case 22: YY_RULE_SETUP -#line 164 "glsl_lexer.lpp" +#line 166 "glsl_lexer.lpp" return ATTRIBUTE; YY_BREAK case 23: YY_RULE_SETUP -#line 165 "glsl_lexer.lpp" +#line 167 "glsl_lexer.lpp" return CONST_TOK; YY_BREAK case 24: YY_RULE_SETUP -#line 166 "glsl_lexer.lpp" +#line 168 "glsl_lexer.lpp" return BOOL_TOK; YY_BREAK case 25: YY_RULE_SETUP -#line 167 "glsl_lexer.lpp" +#line 169 "glsl_lexer.lpp" return FLOAT_TOK; YY_BREAK case 26: YY_RULE_SETUP -#line 168 "glsl_lexer.lpp" +#line 170 "glsl_lexer.lpp" return INT_TOK; YY_BREAK case 27: YY_RULE_SETUP -#line 170 "glsl_lexer.lpp" +#line 172 "glsl_lexer.lpp" return BREAK; YY_BREAK case 28: YY_RULE_SETUP -#line 171 "glsl_lexer.lpp" +#line 173 "glsl_lexer.lpp" return CONTINUE; YY_BREAK case 29: YY_RULE_SETUP -#line 172 "glsl_lexer.lpp" +#line 174 "glsl_lexer.lpp" return DO; YY_BREAK case 30: YY_RULE_SETUP -#line 173 "glsl_lexer.lpp" +#line 175 "glsl_lexer.lpp" return WHILE; YY_BREAK case 31: YY_RULE_SETUP -#line 174 "glsl_lexer.lpp" +#line 176 "glsl_lexer.lpp" return ELSE; YY_BREAK case 32: YY_RULE_SETUP -#line 175 "glsl_lexer.lpp" +#line 177 "glsl_lexer.lpp" return FOR; YY_BREAK case 33: YY_RULE_SETUP -#line 176 "glsl_lexer.lpp" +#line 178 "glsl_lexer.lpp" return IF; YY_BREAK case 34: YY_RULE_SETUP -#line 177 "glsl_lexer.lpp" +#line 179 "glsl_lexer.lpp" return DISCARD; YY_BREAK case 35: YY_RULE_SETUP -#line 178 "glsl_lexer.lpp" +#line 180 "glsl_lexer.lpp" return RETURN; YY_BREAK case 36: YY_RULE_SETUP -#line 180 "glsl_lexer.lpp" +#line 182 "glsl_lexer.lpp" return BVEC2; YY_BREAK case 37: YY_RULE_SETUP -#line 181 "glsl_lexer.lpp" +#line 183 "glsl_lexer.lpp" return BVEC3; YY_BREAK case 38: YY_RULE_SETUP -#line 182 "glsl_lexer.lpp" +#line 184 "glsl_lexer.lpp" return BVEC4; YY_BREAK case 39: YY_RULE_SETUP -#line 183 "glsl_lexer.lpp" +#line 185 "glsl_lexer.lpp" return IVEC2; YY_BREAK case 40: YY_RULE_SETUP -#line 184 "glsl_lexer.lpp" +#line 186 "glsl_lexer.lpp" return IVEC3; YY_BREAK case 41: YY_RULE_SETUP -#line 185 "glsl_lexer.lpp" +#line 187 "glsl_lexer.lpp" return IVEC4; YY_BREAK case 42: YY_RULE_SETUP -#line 186 "glsl_lexer.lpp" +#line 188 "glsl_lexer.lpp" return VEC2; YY_BREAK case 43: YY_RULE_SETUP -#line 187 "glsl_lexer.lpp" +#line 189 "glsl_lexer.lpp" return VEC3; YY_BREAK case 44: YY_RULE_SETUP -#line 188 "glsl_lexer.lpp" +#line 190 "glsl_lexer.lpp" return VEC4; YY_BREAK case 45: YY_RULE_SETUP -#line 189 "glsl_lexer.lpp" +#line 191 "glsl_lexer.lpp" return MAT2X2; YY_BREAK case 46: YY_RULE_SETUP -#line 190 "glsl_lexer.lpp" +#line 192 "glsl_lexer.lpp" return MAT3X3; YY_BREAK case 47: YY_RULE_SETUP -#line 191 "glsl_lexer.lpp" +#line 193 "glsl_lexer.lpp" return MAT4X4; YY_BREAK case 48: YY_RULE_SETUP -#line 192 "glsl_lexer.lpp" +#line 194 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(120, MAT2X2); YY_BREAK case 49: YY_RULE_SETUP -#line 193 "glsl_lexer.lpp" +#line 195 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(120, MAT2X3); YY_BREAK case 50: YY_RULE_SETUP -#line 194 "glsl_lexer.lpp" +#line 196 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(120, MAT2X4); YY_BREAK case 51: YY_RULE_SETUP -#line 195 "glsl_lexer.lpp" +#line 197 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(120, MAT3X2); YY_BREAK case 52: YY_RULE_SETUP -#line 196 "glsl_lexer.lpp" +#line 198 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(120, MAT3X3); YY_BREAK case 53: YY_RULE_SETUP -#line 197 "glsl_lexer.lpp" +#line 199 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(120, MAT3X4); YY_BREAK case 54: YY_RULE_SETUP -#line 198 "glsl_lexer.lpp" +#line 200 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(120, MAT4X2); YY_BREAK case 55: YY_RULE_SETUP -#line 199 "glsl_lexer.lpp" +#line 201 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(120, MAT4X3); YY_BREAK case 56: YY_RULE_SETUP -#line 200 "glsl_lexer.lpp" +#line 202 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(120, MAT4X4); YY_BREAK case 57: YY_RULE_SETUP -#line 202 "glsl_lexer.lpp" +#line 204 "glsl_lexer.lpp" return IN_TOK; YY_BREAK case 58: YY_RULE_SETUP -#line 203 "glsl_lexer.lpp" +#line 205 "glsl_lexer.lpp" return OUT_TOK; YY_BREAK case 59: YY_RULE_SETUP -#line 204 "glsl_lexer.lpp" +#line 206 "glsl_lexer.lpp" return INOUT_TOK; YY_BREAK case 60: YY_RULE_SETUP -#line 205 "glsl_lexer.lpp" +#line 207 "glsl_lexer.lpp" return UNIFORM; YY_BREAK case 61: YY_RULE_SETUP -#line 206 "glsl_lexer.lpp" +#line 208 "glsl_lexer.lpp" return VARYING; YY_BREAK case 62: YY_RULE_SETUP -#line 207 "glsl_lexer.lpp" +#line 209 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(120, CENTROID); YY_BREAK case 63: YY_RULE_SETUP -#line 208 "glsl_lexer.lpp" +#line 210 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER_ES(120, INVARIANT); YY_BREAK case 64: YY_RULE_SETUP -#line 210 "glsl_lexer.lpp" +#line 212 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER_ES(130, FLAT); YY_BREAK case 65: YY_RULE_SETUP -#line 211 "glsl_lexer.lpp" +#line 213 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, SMOOTH); YY_BREAK case 66: YY_RULE_SETUP -#line 212 "glsl_lexer.lpp" +#line 214 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, NOPERSPECTIVE); YY_BREAK case 67: YY_RULE_SETUP -#line 214 "glsl_lexer.lpp" +#line 216 "glsl_lexer.lpp" return SAMPLER1D; YY_BREAK case 68: YY_RULE_SETUP -#line 215 "glsl_lexer.lpp" +#line 217 "glsl_lexer.lpp" return SAMPLER2D; YY_BREAK case 69: YY_RULE_SETUP -#line 216 "glsl_lexer.lpp" +#line 218 "glsl_lexer.lpp" return SAMPLER3D; YY_BREAK case 70: YY_RULE_SETUP -#line 217 "glsl_lexer.lpp" +#line 219 "glsl_lexer.lpp" return SAMPLERCUBE; YY_BREAK case 71: YY_RULE_SETUP -#line 218 "glsl_lexer.lpp" +#line 220 "glsl_lexer.lpp" return SAMPLER1DSHADOW; YY_BREAK case 72: YY_RULE_SETUP -#line 219 "glsl_lexer.lpp" +#line 221 "glsl_lexer.lpp" return SAMPLER2DSHADOW; YY_BREAK case 73: YY_RULE_SETUP -#line 221 "glsl_lexer.lpp" +#line 223 "glsl_lexer.lpp" return STRUCT; YY_BREAK case 74: YY_RULE_SETUP -#line 222 "glsl_lexer.lpp" +#line 224 "glsl_lexer.lpp" return VOID_TOK; YY_BREAK case 75: YY_RULE_SETUP -#line 224 "glsl_lexer.lpp" +#line 226 "glsl_lexer.lpp" { if ((yyextra->language_version >= 140) || (yyextra->ARB_fragment_coord_conventions_enable)){ @@ -1770,102 +1772,102 @@ YY_RULE_SETUP YY_BREAK case 76: YY_RULE_SETUP -#line 234 "glsl_lexer.lpp" +#line 236 "glsl_lexer.lpp" return INC_OP; YY_BREAK case 77: YY_RULE_SETUP -#line 235 "glsl_lexer.lpp" +#line 237 "glsl_lexer.lpp" return DEC_OP; YY_BREAK case 78: YY_RULE_SETUP -#line 236 "glsl_lexer.lpp" +#line 238 "glsl_lexer.lpp" return LE_OP; YY_BREAK case 79: YY_RULE_SETUP -#line 237 "glsl_lexer.lpp" +#line 239 "glsl_lexer.lpp" return GE_OP; YY_BREAK case 80: YY_RULE_SETUP -#line 238 "glsl_lexer.lpp" +#line 240 "glsl_lexer.lpp" return EQ_OP; YY_BREAK case 81: YY_RULE_SETUP -#line 239 "glsl_lexer.lpp" +#line 241 "glsl_lexer.lpp" return NE_OP; YY_BREAK case 82: YY_RULE_SETUP -#line 240 "glsl_lexer.lpp" +#line 242 "glsl_lexer.lpp" return AND_OP; YY_BREAK case 83: YY_RULE_SETUP -#line 241 "glsl_lexer.lpp" +#line 243 "glsl_lexer.lpp" return OR_OP; YY_BREAK case 84: YY_RULE_SETUP -#line 242 "glsl_lexer.lpp" +#line 244 "glsl_lexer.lpp" return XOR_OP; YY_BREAK case 85: YY_RULE_SETUP -#line 244 "glsl_lexer.lpp" +#line 246 "glsl_lexer.lpp" return MUL_ASSIGN; YY_BREAK case 86: YY_RULE_SETUP -#line 245 "glsl_lexer.lpp" +#line 247 "glsl_lexer.lpp" return DIV_ASSIGN; YY_BREAK case 87: YY_RULE_SETUP -#line 246 "glsl_lexer.lpp" +#line 248 "glsl_lexer.lpp" return ADD_ASSIGN; YY_BREAK case 88: YY_RULE_SETUP -#line 247 "glsl_lexer.lpp" +#line 249 "glsl_lexer.lpp" return MOD_ASSIGN; YY_BREAK case 89: YY_RULE_SETUP -#line 248 "glsl_lexer.lpp" +#line 250 "glsl_lexer.lpp" return LEFT_ASSIGN; YY_BREAK case 90: YY_RULE_SETUP -#line 249 "glsl_lexer.lpp" +#line 251 "glsl_lexer.lpp" return RIGHT_ASSIGN; YY_BREAK case 91: YY_RULE_SETUP -#line 250 "glsl_lexer.lpp" +#line 252 "glsl_lexer.lpp" return AND_ASSIGN; YY_BREAK case 92: YY_RULE_SETUP -#line 251 "glsl_lexer.lpp" +#line 253 "glsl_lexer.lpp" return XOR_ASSIGN; YY_BREAK case 93: YY_RULE_SETUP -#line 252 "glsl_lexer.lpp" +#line 254 "glsl_lexer.lpp" return OR_ASSIGN; YY_BREAK case 94: YY_RULE_SETUP -#line 253 "glsl_lexer.lpp" +#line 255 "glsl_lexer.lpp" return SUB_ASSIGN; YY_BREAK case 95: YY_RULE_SETUP -#line 255 "glsl_lexer.lpp" +#line 257 "glsl_lexer.lpp" { yylval->n = strtol(yytext, NULL, 10); return INTCONSTANT; @@ -1873,7 +1875,7 @@ YY_RULE_SETUP YY_BREAK case 96: YY_RULE_SETUP -#line 259 "glsl_lexer.lpp" +#line 261 "glsl_lexer.lpp" { yylval->n = strtol(yytext + 2, NULL, 16); return INTCONSTANT; @@ -1881,7 +1883,7 @@ YY_RULE_SETUP YY_BREAK case 97: YY_RULE_SETUP -#line 263 "glsl_lexer.lpp" +#line 265 "glsl_lexer.lpp" { yylval->n = strtol(yytext, NULL, 8); return INTCONSTANT; @@ -1889,7 +1891,7 @@ YY_RULE_SETUP YY_BREAK case 98: YY_RULE_SETUP -#line 268 "glsl_lexer.lpp" +#line 270 "glsl_lexer.lpp" { yylval->real = glsl_strtod(yytext, NULL); return FLOATCONSTANT; @@ -1897,7 +1899,7 @@ YY_RULE_SETUP YY_BREAK case 99: YY_RULE_SETUP -#line 272 "glsl_lexer.lpp" +#line 274 "glsl_lexer.lpp" { yylval->real = glsl_strtod(yytext, NULL); return FLOATCONSTANT; @@ -1905,7 +1907,7 @@ YY_RULE_SETUP YY_BREAK case 100: YY_RULE_SETUP -#line 276 "glsl_lexer.lpp" +#line 278 "glsl_lexer.lpp" { yylval->real = glsl_strtod(yytext, NULL); return FLOATCONSTANT; @@ -1913,7 +1915,7 @@ YY_RULE_SETUP YY_BREAK case 101: YY_RULE_SETUP -#line 280 "glsl_lexer.lpp" +#line 282 "glsl_lexer.lpp" { yylval->real = glsl_strtod(yytext, NULL); return FLOATCONSTANT; @@ -1921,7 +1923,7 @@ YY_RULE_SETUP YY_BREAK case 102: YY_RULE_SETUP -#line 284 "glsl_lexer.lpp" +#line 286 "glsl_lexer.lpp" { yylval->real = glsl_strtod(yytext, NULL); return FLOATCONSTANT; @@ -1929,7 +1931,7 @@ YY_RULE_SETUP YY_BREAK case 103: YY_RULE_SETUP -#line 289 "glsl_lexer.lpp" +#line 291 "glsl_lexer.lpp" { yylval->n = 1; return BOOLCONSTANT; @@ -1937,7 +1939,7 @@ YY_RULE_SETUP YY_BREAK case 104: YY_RULE_SETUP -#line 293 "glsl_lexer.lpp" +#line 295 "glsl_lexer.lpp" { yylval->n = 0; return BOOLCONSTANT; @@ -1946,412 +1948,412 @@ YY_RULE_SETUP /* Reserved words in GLSL 1.10. */ case 105: YY_RULE_SETUP -#line 300 "glsl_lexer.lpp" +#line 302 "glsl_lexer.lpp" RESERVED_WORD(999, ASM); YY_BREAK case 106: YY_RULE_SETUP -#line 301 "glsl_lexer.lpp" +#line 303 "glsl_lexer.lpp" RESERVED_WORD(999, CLASS); YY_BREAK case 107: YY_RULE_SETUP -#line 302 "glsl_lexer.lpp" +#line 304 "glsl_lexer.lpp" RESERVED_WORD(999, UNION); YY_BREAK case 108: YY_RULE_SETUP -#line 303 "glsl_lexer.lpp" +#line 305 "glsl_lexer.lpp" RESERVED_WORD(999, ENUM); YY_BREAK case 109: YY_RULE_SETUP -#line 304 "glsl_lexer.lpp" +#line 306 "glsl_lexer.lpp" RESERVED_WORD(999, TYPEDEF); YY_BREAK case 110: YY_RULE_SETUP -#line 305 "glsl_lexer.lpp" +#line 307 "glsl_lexer.lpp" RESERVED_WORD(999, TEMPLATE); YY_BREAK case 111: YY_RULE_SETUP -#line 306 "glsl_lexer.lpp" +#line 308 "glsl_lexer.lpp" RESERVED_WORD(999, THIS); YY_BREAK case 112: YY_RULE_SETUP -#line 307 "glsl_lexer.lpp" +#line 309 "glsl_lexer.lpp" RESERVED_WORD(999, PACKED_TOK); YY_BREAK case 113: YY_RULE_SETUP -#line 308 "glsl_lexer.lpp" +#line 310 "glsl_lexer.lpp" RESERVED_WORD(999, GOTO); YY_BREAK case 114: YY_RULE_SETUP -#line 309 "glsl_lexer.lpp" +#line 311 "glsl_lexer.lpp" RESERVED_WORD(130, SWITCH); YY_BREAK case 115: YY_RULE_SETUP -#line 310 "glsl_lexer.lpp" +#line 312 "glsl_lexer.lpp" RESERVED_WORD(130, DEFAULT); YY_BREAK case 116: YY_RULE_SETUP -#line 311 "glsl_lexer.lpp" +#line 313 "glsl_lexer.lpp" RESERVED_WORD(999, INLINE_TOK); YY_BREAK case 117: YY_RULE_SETUP -#line 312 "glsl_lexer.lpp" +#line 314 "glsl_lexer.lpp" RESERVED_WORD(999, NOINLINE); YY_BREAK case 118: YY_RULE_SETUP -#line 313 "glsl_lexer.lpp" +#line 315 "glsl_lexer.lpp" RESERVED_WORD(999, VOLATILE); YY_BREAK case 119: YY_RULE_SETUP -#line 314 "glsl_lexer.lpp" +#line 316 "glsl_lexer.lpp" RESERVED_WORD(999, PUBLIC_TOK); YY_BREAK case 120: YY_RULE_SETUP -#line 315 "glsl_lexer.lpp" +#line 317 "glsl_lexer.lpp" RESERVED_WORD(999, STATIC); YY_BREAK case 121: YY_RULE_SETUP -#line 316 "glsl_lexer.lpp" +#line 318 "glsl_lexer.lpp" RESERVED_WORD(999, EXTERN); YY_BREAK case 122: YY_RULE_SETUP -#line 317 "glsl_lexer.lpp" +#line 319 "glsl_lexer.lpp" RESERVED_WORD(999, EXTERNAL); YY_BREAK case 123: YY_RULE_SETUP -#line 318 "glsl_lexer.lpp" +#line 320 "glsl_lexer.lpp" RESERVED_WORD(999, INTERFACE); YY_BREAK case 124: YY_RULE_SETUP -#line 319 "glsl_lexer.lpp" +#line 321 "glsl_lexer.lpp" RESERVED_WORD(999, LONG_TOK); YY_BREAK case 125: YY_RULE_SETUP -#line 320 "glsl_lexer.lpp" +#line 322 "glsl_lexer.lpp" RESERVED_WORD(999, SHORT_TOK); YY_BREAK case 126: YY_RULE_SETUP -#line 321 "glsl_lexer.lpp" +#line 323 "glsl_lexer.lpp" RESERVED_WORD(999, DOUBLE_TOK); YY_BREAK case 127: YY_RULE_SETUP -#line 322 "glsl_lexer.lpp" +#line 324 "glsl_lexer.lpp" RESERVED_WORD(999, HALF); YY_BREAK case 128: YY_RULE_SETUP -#line 323 "glsl_lexer.lpp" +#line 325 "glsl_lexer.lpp" RESERVED_WORD(999, FIXED_TOK); YY_BREAK case 129: YY_RULE_SETUP -#line 324 "glsl_lexer.lpp" +#line 326 "glsl_lexer.lpp" RESERVED_WORD(999, UNSIGNED); YY_BREAK case 130: YY_RULE_SETUP -#line 325 "glsl_lexer.lpp" +#line 327 "glsl_lexer.lpp" RESERVED_WORD(999, INPUT_TOK); YY_BREAK case 131: YY_RULE_SETUP -#line 326 "glsl_lexer.lpp" +#line 328 "glsl_lexer.lpp" RESERVED_WORD(999, OUTPUT); YY_BREAK case 132: YY_RULE_SETUP -#line 327 "glsl_lexer.lpp" +#line 329 "glsl_lexer.lpp" RESERVED_WORD(999, HVEC2); YY_BREAK case 133: YY_RULE_SETUP -#line 328 "glsl_lexer.lpp" +#line 330 "glsl_lexer.lpp" RESERVED_WORD(999, HVEC3); YY_BREAK case 134: YY_RULE_SETUP -#line 329 "glsl_lexer.lpp" +#line 331 "glsl_lexer.lpp" RESERVED_WORD(999, HVEC4); YY_BREAK case 135: YY_RULE_SETUP -#line 330 "glsl_lexer.lpp" +#line 332 "glsl_lexer.lpp" RESERVED_WORD(999, DVEC2); YY_BREAK case 136: YY_RULE_SETUP -#line 331 "glsl_lexer.lpp" +#line 333 "glsl_lexer.lpp" RESERVED_WORD(999, DVEC3); YY_BREAK case 137: YY_RULE_SETUP -#line 332 "glsl_lexer.lpp" +#line 334 "glsl_lexer.lpp" RESERVED_WORD(999, DVEC4); YY_BREAK case 138: YY_RULE_SETUP -#line 333 "glsl_lexer.lpp" +#line 335 "glsl_lexer.lpp" RESERVED_WORD(999, FVEC2); YY_BREAK case 139: YY_RULE_SETUP -#line 334 "glsl_lexer.lpp" +#line 336 "glsl_lexer.lpp" RESERVED_WORD(999, FVEC3); YY_BREAK case 140: YY_RULE_SETUP -#line 335 "glsl_lexer.lpp" +#line 337 "glsl_lexer.lpp" RESERVED_WORD(999, FVEC4); YY_BREAK case 141: YY_RULE_SETUP -#line 336 "glsl_lexer.lpp" +#line 338 "glsl_lexer.lpp" return SAMPLER2DRECT; YY_BREAK case 142: YY_RULE_SETUP -#line 337 "glsl_lexer.lpp" +#line 339 "glsl_lexer.lpp" RESERVED_WORD(999, SAMPLER3DRECT); YY_BREAK case 143: YY_RULE_SETUP -#line 338 "glsl_lexer.lpp" +#line 340 "glsl_lexer.lpp" return SAMPLER2DRECTSHADOW; YY_BREAK case 144: YY_RULE_SETUP -#line 339 "glsl_lexer.lpp" +#line 341 "glsl_lexer.lpp" RESERVED_WORD(999, SIZEOF); YY_BREAK case 145: YY_RULE_SETUP -#line 340 "glsl_lexer.lpp" +#line 342 "glsl_lexer.lpp" RESERVED_WORD(999, CAST); YY_BREAK case 146: YY_RULE_SETUP -#line 341 "glsl_lexer.lpp" +#line 343 "glsl_lexer.lpp" RESERVED_WORD(999, NAMESPACE); YY_BREAK case 147: YY_RULE_SETUP -#line 342 "glsl_lexer.lpp" +#line 344 "glsl_lexer.lpp" RESERVED_WORD(999, USING); YY_BREAK /* Additional reserved words in GLSL 1.20. */ case 148: YY_RULE_SETUP -#line 345 "glsl_lexer.lpp" +#line 347 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER_ES(120, LOWP); YY_BREAK case 149: YY_RULE_SETUP -#line 346 "glsl_lexer.lpp" +#line 348 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER_ES(120, MEDIUMP); YY_BREAK case 150: YY_RULE_SETUP -#line 347 "glsl_lexer.lpp" +#line 349 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER_ES(120, HIGHP); YY_BREAK case 151: YY_RULE_SETUP -#line 348 "glsl_lexer.lpp" +#line 350 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER_ES(120, PRECISION); YY_BREAK /* Additional reserved words in GLSL 1.30. */ case 152: YY_RULE_SETUP -#line 351 "glsl_lexer.lpp" +#line 353 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, COMMON); YY_BREAK case 153: YY_RULE_SETUP -#line 352 "glsl_lexer.lpp" +#line 354 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, PARTITION); YY_BREAK case 154: YY_RULE_SETUP -#line 353 "glsl_lexer.lpp" +#line 355 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, ACTIVE); YY_BREAK case 155: YY_RULE_SETUP -#line 354 "glsl_lexer.lpp" +#line 356 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER_ES(130, SUPERP); YY_BREAK case 156: YY_RULE_SETUP -#line 355 "glsl_lexer.lpp" +#line 357 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, SAMPLERBUFFER); YY_BREAK case 157: YY_RULE_SETUP -#line 356 "glsl_lexer.lpp" +#line 358 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, FILTER); YY_BREAK case 158: YY_RULE_SETUP -#line 357 "glsl_lexer.lpp" +#line 359 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IMAGE1D); YY_BREAK case 159: YY_RULE_SETUP -#line 358 "glsl_lexer.lpp" +#line 360 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IMAGE2D); YY_BREAK case 160: YY_RULE_SETUP -#line 359 "glsl_lexer.lpp" +#line 361 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IMAGE3D); YY_BREAK case 161: YY_RULE_SETUP -#line 360 "glsl_lexer.lpp" +#line 362 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IMAGECUBE); YY_BREAK case 162: YY_RULE_SETUP -#line 361 "glsl_lexer.lpp" +#line 363 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IIMAGE1D); YY_BREAK case 163: YY_RULE_SETUP -#line 362 "glsl_lexer.lpp" +#line 364 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IIMAGE2D); YY_BREAK case 164: YY_RULE_SETUP -#line 363 "glsl_lexer.lpp" +#line 365 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IIMAGE3D); YY_BREAK case 165: YY_RULE_SETUP -#line 364 "glsl_lexer.lpp" +#line 366 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IIMAGECUBE); YY_BREAK case 166: YY_RULE_SETUP -#line 365 "glsl_lexer.lpp" +#line 367 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, UIMAGE1D); YY_BREAK case 167: YY_RULE_SETUP -#line 366 "glsl_lexer.lpp" +#line 368 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, UIMAGE2D); YY_BREAK case 168: YY_RULE_SETUP -#line 367 "glsl_lexer.lpp" +#line 369 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, UIMAGE3D); YY_BREAK case 169: YY_RULE_SETUP -#line 368 "glsl_lexer.lpp" +#line 370 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, UIMAGECUBE); YY_BREAK case 170: YY_RULE_SETUP -#line 369 "glsl_lexer.lpp" +#line 371 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IMAGE1DARRAY); YY_BREAK case 171: YY_RULE_SETUP -#line 370 "glsl_lexer.lpp" +#line 372 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IMAGE2DARRAY); YY_BREAK case 172: YY_RULE_SETUP -#line 371 "glsl_lexer.lpp" +#line 373 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IIMAGE1DARRAY); YY_BREAK case 173: YY_RULE_SETUP -#line 372 "glsl_lexer.lpp" +#line 374 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IIMAGE2DARRAY); YY_BREAK case 174: YY_RULE_SETUP -#line 373 "glsl_lexer.lpp" +#line 375 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, UIMAGE1DARRAY); YY_BREAK case 175: YY_RULE_SETUP -#line 374 "glsl_lexer.lpp" +#line 376 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, UIMAGE2DARRAY); YY_BREAK case 176: YY_RULE_SETUP -#line 375 "glsl_lexer.lpp" +#line 377 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IMAGE1DSHADOW); YY_BREAK case 177: YY_RULE_SETUP -#line 376 "glsl_lexer.lpp" +#line 378 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IMAGE2DSHADOW); YY_BREAK case 178: YY_RULE_SETUP -#line 377 "glsl_lexer.lpp" +#line 379 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IMAGEBUFFER); YY_BREAK case 179: YY_RULE_SETUP -#line 378 "glsl_lexer.lpp" +#line 380 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, IIMAGEBUFFER); YY_BREAK case 180: YY_RULE_SETUP -#line 379 "glsl_lexer.lpp" +#line 381 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, UIMAGEBUFFER); YY_BREAK case 181: YY_RULE_SETUP -#line 380 "glsl_lexer.lpp" +#line 382 "glsl_lexer.lpp" TOKEN_OR_IDENTIFIER(130, ROW_MAJOR); YY_BREAK case 182: YY_RULE_SETUP -#line 382 "glsl_lexer.lpp" +#line 384 "glsl_lexer.lpp" { struct _mesa_glsl_parse_state *state = yyextra; void *ctx = state; yylval->identifier = ralloc_strdup(ctx, yytext); - return IDENTIFIER; + return classify_identifier(state, yytext); } YY_BREAK case 183: YY_RULE_SETUP -#line 389 "glsl_lexer.lpp" +#line 391 "glsl_lexer.lpp" { return yytext[0]; } YY_BREAK case 184: YY_RULE_SETUP -#line 391 "glsl_lexer.lpp" +#line 393 "glsl_lexer.lpp" ECHO; YY_BREAK -#line 2355 "glsl_lexer.cpp" +#line 2357 "glsl_lexer.cpp" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(PP): case YY_STATE_EOF(PRAGMA): @@ -3494,9 +3496,20 @@ void _mesa_glsl_free (void * ptr , yyscan_t yyscanner) #define YYTABLES_NAME "yytables" -#line 391 "glsl_lexer.lpp" +#line 393 "glsl_lexer.lpp" + +int +classify_identifier(struct _mesa_glsl_parse_state *state, const char *name) +{ + if (state->symbols->get_variable(name) || state->symbols->get_function(name)) + return IDENTIFIER; + else if (state->symbols->get_type(name)) + return TYPE_IDENTIFIER; + else + return NEW_IDENTIFIER; +} void _mesa_glsl_lexer_ctor(struct _mesa_glsl_parse_state *state, const char *string) diff --git a/src/glsl/glsl_parser.cpp b/src/glsl/glsl_parser.cpp index 5c9a2adf33c..68736dca128 100644 --- a/src/glsl/glsl_parser.cpp +++ b/src/glsl/glsl_parser.cpp @@ -214,121 +214,123 @@ VOID_TOK = 329, WHILE = 330, IDENTIFIER = 331, - FLOATCONSTANT = 332, - INTCONSTANT = 333, - UINTCONSTANT = 334, - BOOLCONSTANT = 335, - FIELD_SELECTION = 336, - LEFT_OP = 337, - RIGHT_OP = 338, - INC_OP = 339, - DEC_OP = 340, - LE_OP = 341, - GE_OP = 342, - EQ_OP = 343, - NE_OP = 344, - AND_OP = 345, - OR_OP = 346, - XOR_OP = 347, - MUL_ASSIGN = 348, - DIV_ASSIGN = 349, - ADD_ASSIGN = 350, - MOD_ASSIGN = 351, - LEFT_ASSIGN = 352, - RIGHT_ASSIGN = 353, - AND_ASSIGN = 354, - XOR_ASSIGN = 355, - OR_ASSIGN = 356, - SUB_ASSIGN = 357, - INVARIANT = 358, - LOWP = 359, - MEDIUMP = 360, - HIGHP = 361, - SUPERP = 362, - PRECISION = 363, - VERSION = 364, - EXTENSION = 365, - LINE = 366, - COLON = 367, - EOL = 368, - INTERFACE = 369, - OUTPUT = 370, - PRAGMA_DEBUG_ON = 371, - PRAGMA_DEBUG_OFF = 372, - PRAGMA_OPTIMIZE_ON = 373, - PRAGMA_OPTIMIZE_OFF = 374, - PRAGMA_INVARIANT_ALL = 375, - LAYOUT_TOK = 376, - ASM = 377, - CLASS = 378, - UNION = 379, - ENUM = 380, - TYPEDEF = 381, - TEMPLATE = 382, - THIS = 383, - PACKED_TOK = 384, - GOTO = 385, - INLINE_TOK = 386, - NOINLINE = 387, - VOLATILE = 388, - PUBLIC_TOK = 389, - STATIC = 390, - EXTERN = 391, - EXTERNAL = 392, - LONG_TOK = 393, - SHORT_TOK = 394, - DOUBLE_TOK = 395, - HALF = 396, - FIXED_TOK = 397, - UNSIGNED = 398, - INPUT_TOK = 399, - OUPTUT = 400, - HVEC2 = 401, - HVEC3 = 402, - HVEC4 = 403, - DVEC2 = 404, - DVEC3 = 405, - DVEC4 = 406, - FVEC2 = 407, - FVEC3 = 408, - FVEC4 = 409, - SAMPLER2DRECT = 410, - SAMPLER3DRECT = 411, - SAMPLER2DRECTSHADOW = 412, - SIZEOF = 413, - CAST = 414, - NAMESPACE = 415, - USING = 416, - ERROR_TOK = 417, - COMMON = 418, - PARTITION = 419, - ACTIVE = 420, - SAMPLERBUFFER = 421, - FILTER = 422, - IMAGE1D = 423, - IMAGE2D = 424, - IMAGE3D = 425, - IMAGECUBE = 426, - IMAGE1DARRAY = 427, - IMAGE2DARRAY = 428, - IIMAGE1D = 429, - IIMAGE2D = 430, - IIMAGE3D = 431, - IIMAGECUBE = 432, - IIMAGE1DARRAY = 433, - IIMAGE2DARRAY = 434, - UIMAGE1D = 435, - UIMAGE2D = 436, - UIMAGE3D = 437, - UIMAGECUBE = 438, - UIMAGE1DARRAY = 439, - UIMAGE2DARRAY = 440, - IMAGE1DSHADOW = 441, - IMAGE2DSHADOW = 442, - IMAGEBUFFER = 443, - IIMAGEBUFFER = 444, - UIMAGEBUFFER = 445, - ROW_MAJOR = 446 + TYPE_IDENTIFIER = 332, + NEW_IDENTIFIER = 333, + FLOATCONSTANT = 334, + INTCONSTANT = 335, + UINTCONSTANT = 336, + BOOLCONSTANT = 337, + FIELD_SELECTION = 338, + LEFT_OP = 339, + RIGHT_OP = 340, + INC_OP = 341, + DEC_OP = 342, + LE_OP = 343, + GE_OP = 344, + EQ_OP = 345, + NE_OP = 346, + AND_OP = 347, + OR_OP = 348, + XOR_OP = 349, + MUL_ASSIGN = 350, + DIV_ASSIGN = 351, + ADD_ASSIGN = 352, + MOD_ASSIGN = 353, + LEFT_ASSIGN = 354, + RIGHT_ASSIGN = 355, + AND_ASSIGN = 356, + XOR_ASSIGN = 357, + OR_ASSIGN = 358, + SUB_ASSIGN = 359, + INVARIANT = 360, + LOWP = 361, + MEDIUMP = 362, + HIGHP = 363, + SUPERP = 364, + PRECISION = 365, + VERSION = 366, + EXTENSION = 367, + LINE = 368, + COLON = 369, + EOL = 370, + INTERFACE = 371, + OUTPUT = 372, + PRAGMA_DEBUG_ON = 373, + PRAGMA_DEBUG_OFF = 374, + PRAGMA_OPTIMIZE_ON = 375, + PRAGMA_OPTIMIZE_OFF = 376, + PRAGMA_INVARIANT_ALL = 377, + LAYOUT_TOK = 378, + ASM = 379, + CLASS = 380, + UNION = 381, + ENUM = 382, + TYPEDEF = 383, + TEMPLATE = 384, + THIS = 385, + PACKED_TOK = 386, + GOTO = 387, + INLINE_TOK = 388, + NOINLINE = 389, + VOLATILE = 390, + PUBLIC_TOK = 391, + STATIC = 392, + EXTERN = 393, + EXTERNAL = 394, + LONG_TOK = 395, + SHORT_TOK = 396, + DOUBLE_TOK = 397, + HALF = 398, + FIXED_TOK = 399, + UNSIGNED = 400, + INPUT_TOK = 401, + OUPTUT = 402, + HVEC2 = 403, + HVEC3 = 404, + HVEC4 = 405, + DVEC2 = 406, + DVEC3 = 407, + DVEC4 = 408, + FVEC2 = 409, + FVEC3 = 410, + FVEC4 = 411, + SAMPLER2DRECT = 412, + SAMPLER3DRECT = 413, + SAMPLER2DRECTSHADOW = 414, + SIZEOF = 415, + CAST = 416, + NAMESPACE = 417, + USING = 418, + ERROR_TOK = 419, + COMMON = 420, + PARTITION = 421, + ACTIVE = 422, + SAMPLERBUFFER = 423, + FILTER = 424, + IMAGE1D = 425, + IMAGE2D = 426, + IMAGE3D = 427, + IMAGECUBE = 428, + IMAGE1DARRAY = 429, + IMAGE2DARRAY = 430, + IIMAGE1D = 431, + IIMAGE2D = 432, + IIMAGE3D = 433, + IIMAGECUBE = 434, + IIMAGE1DARRAY = 435, + IIMAGE2DARRAY = 436, + UIMAGE1D = 437, + UIMAGE2D = 438, + UIMAGE3D = 439, + UIMAGECUBE = 440, + UIMAGE1DARRAY = 441, + UIMAGE2DARRAY = 442, + IMAGE1DSHADOW = 443, + IMAGE2DSHADOW = 444, + IMAGEBUFFER = 445, + IIMAGEBUFFER = 446, + UIMAGEBUFFER = 447, + ROW_MAJOR = 448 }; #endif @@ -375,7 +377,7 @@ typedef union YYSTYPE /* Line 214 of yacc.c */ -#line 379 "glsl_parser.cpp" +#line 381 "glsl_parser.cpp" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -400,7 +402,7 @@ typedef struct YYLTYPE /* Line 264 of yacc.c */ -#line 404 "glsl_parser.cpp" +#line 406 "glsl_parser.cpp" #ifdef short # undef short @@ -617,20 +619,20 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 5 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3923 +#define YYLAST 3984 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 216 +#define YYNTOKENS 218 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 88 +#define YYNNTS 94 /* YYNRULES -- Number of rules. */ -#define YYNRULES 275 +#define YYNRULES 287 /* YYNRULES -- Number of states. */ -#define YYNSTATES 411 +#define YYNSTATES 430 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 446 +#define YYMAXUTOK 448 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -641,16 +643,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, 200, 2, 2, 2, 204, 207, 2, - 192, 193, 202, 198, 197, 199, 196, 203, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 211, 213, - 205, 212, 206, 210, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 202, 2, 2, 2, 206, 209, 2, + 194, 195, 204, 200, 199, 201, 198, 205, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 213, 215, + 207, 214, 208, 212, 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, 194, 2, 195, 208, 2, 2, 2, 2, 2, + 2, 196, 2, 197, 210, 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, 214, 209, 215, 201, 2, 2, 2, + 2, 2, 2, 216, 211, 217, 203, 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, @@ -682,7 +684,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, 190, 191 + 185, 186, 187, 188, 189, 190, 191, 192, 193 }; #if YYDEBUG @@ -691,150 +693,155 @@ static const yytype_uint8 yytranslate[] = static const yytype_uint16 yyprhs[] = { 0, 0, 3, 4, 9, 10, 14, 17, 20, 23, - 26, 29, 30, 33, 39, 41, 44, 46, 48, 50, - 52, 54, 56, 60, 62, 67, 69, 73, 76, 79, - 81, 83, 85, 89, 92, 95, 98, 100, 103, 107, - 110, 112, 114, 116, 118, 121, 124, 127, 129, 131, - 133, 135, 137, 141, 145, 149, 151, 155, 159, 161, - 165, 169, 171, 175, 179, 183, 187, 189, 193, 197, - 199, 203, 205, 209, 211, 215, 217, 221, 223, 227, - 229, 233, 235, 241, 243, 247, 249, 251, 253, 255, - 257, 259, 261, 263, 265, 267, 269, 271, 275, 277, - 280, 283, 288, 291, 293, 295, 298, 302, 306, 309, - 315, 319, 322, 326, 329, 330, 332, 334, 336, 338, - 340, 344, 350, 357, 365, 374, 380, 382, 385, 390, - 396, 403, 411, 416, 419, 421, 424, 425, 427, 432, - 434, 438, 440, 442, 444, 446, 448, 450, 453, 456, - 458, 460, 463, 466, 469, 471, 474, 477, 479, 481, - 484, 486, 490, 495, 497, 499, 501, 503, 505, 507, - 509, 511, 513, 515, 517, 519, 521, 523, 525, 527, - 529, 531, 533, 535, 537, 539, 541, 543, 545, 547, - 549, 551, 553, 555, 557, 559, 561, 563, 565, 567, - 569, 571, 573, 575, 577, 579, 581, 583, 585, 587, - 589, 591, 593, 595, 597, 599, 601, 603, 605, 607, - 609, 615, 620, 622, 625, 629, 631, 635, 637, 642, - 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, - 664, 667, 671, 673, 675, 678, 682, 684, 687, 689, - 692, 698, 702, 704, 706, 711, 717, 721, 724, 730, - 738, 745, 747, 749, 751, 752, 755, 759, 762, 765, - 768, 772, 775, 777, 779, 781 + 26, 29, 30, 33, 35, 37, 39, 45, 47, 50, + 52, 54, 56, 58, 60, 62, 64, 68, 70, 75, + 77, 81, 84, 87, 89, 91, 93, 97, 100, 103, + 106, 108, 111, 115, 118, 120, 122, 124, 127, 130, + 133, 135, 138, 142, 145, 147, 150, 153, 156, 158, + 160, 162, 164, 166, 170, 174, 178, 180, 184, 188, + 190, 194, 198, 200, 204, 208, 212, 216, 218, 222, + 226, 228, 232, 234, 238, 240, 244, 246, 250, 252, + 256, 258, 262, 264, 270, 272, 276, 278, 280, 282, + 284, 286, 288, 290, 292, 294, 296, 298, 300, 304, + 306, 309, 312, 317, 320, 322, 324, 327, 331, 335, + 338, 344, 348, 351, 355, 358, 359, 361, 363, 365, + 367, 369, 373, 379, 386, 394, 403, 409, 411, 414, + 419, 425, 432, 440, 445, 448, 450, 453, 454, 456, + 461, 463, 467, 469, 471, 473, 475, 477, 479, 482, + 485, 487, 489, 492, 495, 498, 500, 503, 506, 508, + 510, 513, 515, 519, 524, 526, 528, 530, 532, 534, + 536, 538, 540, 542, 544, 546, 548, 550, 552, 554, + 556, 558, 560, 562, 564, 566, 568, 570, 572, 574, + 576, 578, 580, 582, 584, 586, 588, 590, 592, 594, + 596, 598, 600, 602, 604, 606, 608, 610, 612, 614, + 616, 618, 620, 622, 624, 626, 628, 630, 632, 634, + 636, 638, 644, 649, 651, 654, 658, 660, 664, 666, + 671, 673, 675, 677, 679, 681, 683, 685, 687, 689, + 691, 693, 696, 697, 702, 704, 706, 709, 713, 715, + 718, 720, 723, 729, 733, 735, 737, 742, 748, 752, + 755, 761, 769, 776, 778, 780, 782, 783, 786, 790, + 793, 796, 799, 803, 806, 808, 810, 812 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 217, 0, -1, -1, 219, 221, 218, 223, -1, -1, - 109, 78, 113, -1, 116, 113, -1, 117, 113, -1, - 118, 113, -1, 119, 113, -1, 120, 113, -1, -1, - 221, 222, -1, 110, 76, 112, 76, 113, -1, 302, - -1, 223, 302, -1, 76, -1, 224, -1, 78, -1, - 79, -1, 77, -1, 80, -1, 192, 251, 193, -1, - 225, -1, 226, 194, 227, 195, -1, 228, -1, 226, - 196, 76, -1, 226, 84, -1, 226, 85, -1, 251, - -1, 229, -1, 230, -1, 226, 196, 230, -1, 232, - 193, -1, 231, 193, -1, 233, 74, -1, 233, -1, - 233, 249, -1, 232, 197, 249, -1, 234, 192, -1, - 273, -1, 76, -1, 81, -1, 226, -1, 84, 235, - -1, 85, 235, -1, 236, 235, -1, 198, -1, 199, - -1, 200, -1, 201, -1, 235, -1, 237, 202, 235, - -1, 237, 203, 235, -1, 237, 204, 235, -1, 237, - -1, 238, 198, 237, -1, 238, 199, 237, -1, 238, - -1, 239, 82, 238, -1, 239, 83, 238, -1, 239, - -1, 240, 205, 239, -1, 240, 206, 239, -1, 240, - 86, 239, -1, 240, 87, 239, -1, 240, -1, 241, - 88, 240, -1, 241, 89, 240, -1, 241, -1, 242, - 207, 241, -1, 242, -1, 243, 208, 242, -1, 243, - -1, 244, 209, 243, -1, 244, -1, 245, 90, 244, - -1, 245, -1, 246, 92, 245, -1, 246, -1, 247, - 91, 246, -1, 247, -1, 247, 210, 251, 211, 249, - -1, 248, -1, 235, 250, 249, -1, 212, -1, 93, - -1, 94, -1, 96, -1, 95, -1, 102, -1, 97, - -1, 98, -1, 99, -1, 100, -1, 101, -1, 249, - -1, 251, 197, 249, -1, 248, -1, 254, 213, -1, - 262, 213, -1, 108, 277, 274, 213, -1, 255, 193, - -1, 257, -1, 256, -1, 257, 259, -1, 256, 197, - 259, -1, 264, 76, 192, -1, 273, 76, -1, 273, - 76, 194, 252, 195, -1, 270, 260, 258, -1, 260, - 258, -1, 270, 260, 261, -1, 260, 261, -1, -1, - 33, -1, 34, -1, 35, -1, 273, -1, 263, -1, - 262, 197, 76, -1, 262, 197, 76, 194, 195, -1, - 262, 197, 76, 194, 252, 195, -1, 262, 197, 76, - 194, 195, 212, 283, -1, 262, 197, 76, 194, 252, - 195, 212, 283, -1, 262, 197, 76, 212, 283, -1, - 264, -1, 264, 76, -1, 264, 76, 194, 195, -1, - 264, 76, 194, 252, 195, -1, 264, 76, 194, 195, - 212, 283, -1, 264, 76, 194, 252, 195, 212, 283, - -1, 264, 76, 212, 283, -1, 103, 76, -1, 273, - -1, 271, 273, -1, -1, 266, -1, 121, 192, 267, - 193, -1, 268, -1, 267, 197, 268, -1, 76, -1, - 40, -1, 39, -1, 38, -1, 4, -1, 272, -1, - 269, 271, -1, 103, 271, -1, 4, -1, 3, -1, - 265, 37, -1, 32, 37, -1, 265, 33, -1, 34, - -1, 32, 33, -1, 32, 34, -1, 36, -1, 274, - -1, 277, 274, -1, 275, -1, 275, 194, 195, -1, - 275, 194, 252, 195, -1, 276, -1, 278, -1, 76, - -1, 74, -1, 6, -1, 7, -1, 8, -1, 5, - -1, 29, -1, 30, -1, 31, -1, 20, -1, 21, - -1, 22, -1, 23, -1, 24, -1, 25, -1, 26, - -1, 27, -1, 28, -1, 41, -1, 42, -1, 43, - -1, 44, -1, 45, -1, 46, -1, 47, -1, 48, - -1, 49, -1, 50, -1, 51, -1, 155, -1, 52, - -1, 53, -1, 54, -1, 55, -1, 157, -1, 56, - -1, 57, -1, 58, -1, 59, -1, 60, -1, 61, - -1, 62, -1, 63, -1, 64, -1, 65, -1, 66, - -1, 67, -1, 68, -1, 69, -1, 70, -1, 71, - -1, 72, -1, 106, -1, 105, -1, 104, -1, 73, - 76, 214, 279, 215, -1, 73, 214, 279, 215, -1, - 280, -1, 279, 280, -1, 273, 281, 213, -1, 282, - -1, 281, 197, 282, -1, 76, -1, 76, 194, 252, - 195, -1, 249, -1, 253, -1, 287, -1, 286, -1, - 284, -1, 291, -1, 292, -1, 295, -1, 296, -1, - 297, -1, 301, -1, 214, 215, -1, 214, 290, 215, - -1, 289, -1, 286, -1, 214, 215, -1, 214, 290, - 215, -1, 285, -1, 290, 285, -1, 213, -1, 251, - 213, -1, 14, 192, 251, 193, 293, -1, 285, 12, - 285, -1, 285, -1, 251, -1, 264, 76, 212, 283, - -1, 17, 192, 251, 193, 287, -1, 18, 251, 211, - -1, 19, 211, -1, 75, 192, 294, 193, 288, -1, - 11, 285, 75, 192, 251, 193, 213, -1, 13, 192, - 298, 300, 193, 288, -1, 291, -1, 284, -1, 294, - -1, -1, 299, 213, -1, 299, 213, 251, -1, 10, - 213, -1, 9, 213, -1, 16, 213, -1, 16, 251, - 213, -1, 15, 213, -1, 303, -1, 253, -1, 220, - -1, 254, 289, -1 + 219, 0, -1, -1, 221, 223, 220, 226, -1, -1, + 111, 80, 115, -1, 118, 115, -1, 119, 115, -1, + 120, 115, -1, 121, 115, -1, 122, 115, -1, -1, + 223, 225, -1, 76, -1, 77, -1, 78, -1, 112, + 224, 114, 224, 115, -1, 310, -1, 226, 310, -1, + 76, -1, 78, -1, 227, -1, 80, -1, 81, -1, + 79, -1, 82, -1, 194, 258, 195, -1, 228, -1, + 229, 196, 230, 197, -1, 231, -1, 229, 198, 224, + -1, 229, 86, -1, 229, 87, -1, 258, -1, 232, + -1, 233, -1, 229, 198, 238, -1, 235, 195, -1, + 234, 195, -1, 236, 74, -1, 236, -1, 236, 256, + -1, 235, 199, 256, -1, 237, 194, -1, 280, -1, + 227, -1, 83, -1, 240, 195, -1, 239, 195, -1, + 241, 74, -1, 241, -1, 241, 256, -1, 240, 199, + 256, -1, 227, 194, -1, 229, -1, 86, 242, -1, + 87, 242, -1, 243, 242, -1, 200, -1, 201, -1, + 202, -1, 203, -1, 242, -1, 244, 204, 242, -1, + 244, 205, 242, -1, 244, 206, 242, -1, 244, -1, + 245, 200, 244, -1, 245, 201, 244, -1, 245, -1, + 246, 84, 245, -1, 246, 85, 245, -1, 246, -1, + 247, 207, 246, -1, 247, 208, 246, -1, 247, 88, + 246, -1, 247, 89, 246, -1, 247, -1, 248, 90, + 247, -1, 248, 91, 247, -1, 248, -1, 249, 209, + 248, -1, 249, -1, 250, 210, 249, -1, 250, -1, + 251, 211, 250, -1, 251, -1, 252, 92, 251, -1, + 252, -1, 253, 94, 252, -1, 253, -1, 254, 93, + 253, -1, 254, -1, 254, 212, 258, 213, 256, -1, + 255, -1, 242, 257, 256, -1, 214, -1, 95, -1, + 96, -1, 98, -1, 97, -1, 104, -1, 99, -1, + 100, -1, 101, -1, 102, -1, 103, -1, 256, -1, + 258, 199, 256, -1, 255, -1, 261, 215, -1, 269, + 215, -1, 110, 284, 281, 215, -1, 262, 195, -1, + 264, -1, 263, -1, 264, 266, -1, 263, 199, 266, + -1, 271, 227, 194, -1, 280, 224, -1, 280, 224, + 196, 259, 197, -1, 277, 267, 265, -1, 267, 265, + -1, 277, 267, 268, -1, 267, 268, -1, -1, 33, + -1, 34, -1, 35, -1, 280, -1, 270, -1, 269, + 199, 224, -1, 269, 199, 224, 196, 197, -1, 269, + 199, 224, 196, 259, 197, -1, 269, 199, 224, 196, + 197, 214, 290, -1, 269, 199, 224, 196, 259, 197, + 214, 290, -1, 269, 199, 224, 214, 290, -1, 271, + -1, 271, 224, -1, 271, 224, 196, 197, -1, 271, + 224, 196, 259, 197, -1, 271, 224, 196, 197, 214, + 290, -1, 271, 224, 196, 259, 197, 214, 290, -1, + 271, 224, 214, 290, -1, 105, 227, -1, 280, -1, + 278, 280, -1, -1, 273, -1, 123, 194, 274, 195, + -1, 275, -1, 274, 199, 275, -1, 224, -1, 40, + -1, 39, -1, 38, -1, 4, -1, 279, -1, 276, + 278, -1, 105, 278, -1, 4, -1, 3, -1, 272, + 37, -1, 32, 37, -1, 272, 33, -1, 34, -1, + 32, 33, -1, 32, 34, -1, 36, -1, 281, -1, + 284, 281, -1, 282, -1, 282, 196, 197, -1, 282, + 196, 259, 197, -1, 283, -1, 285, -1, 77, -1, + 74, -1, 6, -1, 7, -1, 8, -1, 5, -1, + 29, -1, 30, -1, 31, -1, 20, -1, 21, -1, + 22, -1, 23, -1, 24, -1, 25, -1, 26, -1, + 27, -1, 28, -1, 41, -1, 42, -1, 43, -1, + 44, -1, 45, -1, 46, -1, 47, -1, 48, -1, + 49, -1, 50, -1, 51, -1, 157, -1, 52, -1, + 53, -1, 54, -1, 55, -1, 159, -1, 56, -1, + 57, -1, 58, -1, 59, -1, 60, -1, 61, -1, + 62, -1, 63, -1, 64, -1, 65, -1, 66, -1, + 67, -1, 68, -1, 69, -1, 70, -1, 71, -1, + 72, -1, 108, -1, 107, -1, 106, -1, 73, 224, + 216, 286, 217, -1, 73, 216, 286, 217, -1, 287, + -1, 286, 287, -1, 280, 288, 215, -1, 289, -1, + 288, 199, 289, -1, 224, -1, 224, 196, 259, 197, + -1, 256, -1, 260, -1, 294, -1, 293, -1, 291, + -1, 299, -1, 300, -1, 303, -1, 304, -1, 305, + -1, 309, -1, 216, 217, -1, -1, 216, 295, 298, + 217, -1, 297, -1, 293, -1, 216, 217, -1, 216, + 298, 217, -1, 292, -1, 298, 292, -1, 215, -1, + 258, 215, -1, 14, 194, 258, 195, 301, -1, 292, + 12, 292, -1, 292, -1, 258, -1, 271, 224, 214, + 290, -1, 17, 194, 258, 195, 294, -1, 18, 258, + 213, -1, 19, 213, -1, 75, 194, 302, 195, 296, + -1, 11, 292, 75, 194, 258, 195, 215, -1, 13, + 194, 306, 308, 195, 296, -1, 299, -1, 291, -1, + 302, -1, -1, 307, 215, -1, 307, 215, 258, -1, + 10, 215, -1, 9, 215, -1, 16, 215, -1, 16, + 258, 215, -1, 15, 215, -1, 311, -1, 260, -1, + 222, -1, 261, 297, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 215, 215, 214, 221, 223, 263, 264, 265, 266, - 267, 279, 281, 285, 294, 302, 313, 317, 324, 331, - 338, 345, 352, 359, 360, 366, 370, 377, 383, 392, - 396, 400, 401, 410, 411, 415, 416, 420, 426, 438, - 442, 448, 455, 466, 467, 473, 479, 489, 490, 491, - 492, 496, 497, 503, 509, 518, 519, 525, 534, 535, - 541, 550, 551, 557, 563, 569, 578, 579, 585, 594, - 595, 604, 605, 614, 615, 624, 625, 634, 635, 644, - 645, 654, 655, 664, 665, 674, 675, 676, 677, 678, - 679, 680, 681, 682, 683, 684, 688, 692, 708, 712, - 716, 720, 729, 733, 734, 738, 743, 751, 762, 772, - 787, 794, 799, 810, 822, 823, 824, 825, 829, 833, - 834, 843, 852, 861, 870, 879, 892, 903, 912, 921, - 930, 939, 948, 957, 971, 978, 989, 990, 994, 1001, - 1002, 1009, 1043, 1044, 1045, 1049, 1053, 1054, 1058, 1066, - 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1078, 1082, - 1090, 1091, 1097, 1106, 1112, 1118, 1127, 1128, 1129, 1130, - 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, - 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, - 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, - 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, - 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1181, 1191, 1201, - 1214, 1220, 1229, 1234, 1242, 1257, 1262, 1270, 1276, 1285, - 1289, 1295, 1296, 1300, 1301, 1302, 1303, 1304, 1305, 1306, - 1310, 1316, 1325, 1326, 1330, 1336, 1345, 1355, 1367, 1373, - 1382, 1391, 1396, 1404, 1408, 1422, 1426, 1427, 1431, 1438, - 1445, 1455, 1456, 1460, 1462, 1468, 1473, 1482, 1488, 1494, - 1500, 1506, 1515, 1516, 1517, 1521 + 0, 220, 220, 219, 231, 233, 273, 274, 275, 276, + 277, 289, 291, 295, 296, 297, 301, 310, 318, 329, + 330, 334, 341, 348, 355, 362, 369, 376, 377, 383, + 387, 394, 400, 409, 413, 417, 418, 427, 428, 432, + 433, 437, 443, 455, 459, 465, 472, 482, 483, 487, + 488, 492, 498, 510, 521, 522, 528, 534, 544, 545, + 546, 547, 551, 552, 558, 564, 573, 574, 580, 589, + 590, 596, 605, 606, 612, 618, 624, 633, 634, 640, + 649, 650, 659, 660, 669, 670, 679, 680, 689, 690, + 699, 700, 709, 710, 719, 720, 729, 730, 731, 732, + 733, 734, 735, 736, 737, 738, 739, 743, 747, 763, + 767, 772, 776, 785, 789, 790, 794, 799, 807, 822, + 832, 847, 854, 859, 870, 882, 883, 884, 885, 889, + 893, 894, 904, 914, 924, 934, 944, 958, 969, 978, + 987, 996, 1005, 1014, 1023, 1037, 1044, 1055, 1056, 1060, + 1067, 1068, 1075, 1109, 1110, 1111, 1115, 1119, 1120, 1124, + 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1144, + 1148, 1156, 1157, 1163, 1172, 1178, 1184, 1193, 1194, 1195, + 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, + 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, + 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, + 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, + 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1247, 1257, + 1267, 1280, 1287, 1296, 1301, 1309, 1324, 1329, 1337, 1344, + 1353, 1357, 1363, 1364, 1368, 1369, 1370, 1371, 1372, 1373, + 1374, 1378, 1385, 1384, 1398, 1399, 1403, 1409, 1418, 1428, + 1440, 1446, 1455, 1464, 1469, 1477, 1481, 1495, 1499, 1500, + 1504, 1511, 1518, 1528, 1529, 1533, 1535, 1541, 1546, 1555, + 1561, 1567, 1573, 1579, 1588, 1589, 1590, 1594 }; #endif @@ -857,38 +864,40 @@ static const char *const yytname[] = "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", "USAMPLER2DARRAY", "STRUCT", "VOID_TOK", "WHILE", "IDENTIFIER", - "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT", - "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", - "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", - "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", - "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT", - "LOWP", "MEDIUMP", "HIGHP", "SUPERP", "PRECISION", "VERSION", - "EXTENSION", "LINE", "COLON", "EOL", "INTERFACE", "OUTPUT", - "PRAGMA_DEBUG_ON", "PRAGMA_DEBUG_OFF", "PRAGMA_OPTIMIZE_ON", - "PRAGMA_OPTIMIZE_OFF", "PRAGMA_INVARIANT_ALL", "LAYOUT_TOK", "ASM", - "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE", "THIS", "PACKED_TOK", - "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE", "PUBLIC_TOK", "STATIC", - "EXTERN", "EXTERNAL", "LONG_TOK", "SHORT_TOK", "DOUBLE_TOK", "HALF", - "FIXED_TOK", "UNSIGNED", "INPUT_TOK", "OUPTUT", "HVEC2", "HVEC3", - "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3", "FVEC4", - "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW", "SIZEOF", - "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", "'('", "')'", "'['", "']'", "'.'", "','", - "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", "'>'", "'&'", - "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'", "'}'", "$accept", - "translation_unit", "$@1", "version_statement", "pragma_statement", - "extension_statement_list", "extension_statement", - "external_declaration_list", "variable_identifier", "primary_expression", - "postfix_expression", "integer_expression", "function_call", - "function_call_or_method", "function_call_generic", - "function_call_header_no_parameters", + "TYPE_IDENTIFIER", "NEW_IDENTIFIER", "FLOATCONSTANT", "INTCONSTANT", + "UINTCONSTANT", "BOOLCONSTANT", "FIELD_SELECTION", "LEFT_OP", "RIGHT_OP", + "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", + "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", + "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", + "OR_ASSIGN", "SUB_ASSIGN", "INVARIANT", "LOWP", "MEDIUMP", "HIGHP", + "SUPERP", "PRECISION", "VERSION", "EXTENSION", "LINE", "COLON", "EOL", + "INTERFACE", "OUTPUT", "PRAGMA_DEBUG_ON", "PRAGMA_DEBUG_OFF", + "PRAGMA_OPTIMIZE_ON", "PRAGMA_OPTIMIZE_OFF", "PRAGMA_INVARIANT_ALL", + "LAYOUT_TOK", "ASM", "CLASS", "UNION", "ENUM", "TYPEDEF", "TEMPLATE", + "THIS", "PACKED_TOK", "GOTO", "INLINE_TOK", "NOINLINE", "VOLATILE", + "PUBLIC_TOK", "STATIC", "EXTERN", "EXTERNAL", "LONG_TOK", "SHORT_TOK", + "DOUBLE_TOK", "HALF", "FIXED_TOK", "UNSIGNED", "INPUT_TOK", "OUPTUT", + "HVEC2", "HVEC3", "HVEC4", "DVEC2", "DVEC3", "DVEC4", "FVEC2", "FVEC3", + "FVEC4", "SAMPLER2DRECT", "SAMPLER3DRECT", "SAMPLER2DRECTSHADOW", + "SIZEOF", "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", "'('", "')'", "'['", "']'", + "'.'", "','", "'+'", "'-'", "'!'", "'~'", "'*'", "'/'", "'%'", "'<'", + "'>'", "'&'", "'^'", "'|'", "'?'", "':'", "'='", "';'", "'{'", "'}'", + "$accept", "translation_unit", "$@1", "version_statement", + "pragma_statement", "extension_statement_list", "any_identifier", + "extension_statement", "external_declaration_list", + "variable_identifier", "primary_expression", "postfix_expression", + "integer_expression", "function_call", "function_call_or_method", + "function_call_generic", "function_call_header_no_parameters", "function_call_header_with_parameters", "function_call_header", - "function_identifier", "unary_expression", "unary_operator", + "function_identifier", "method_call_generic", + "method_call_header_no_parameters", "method_call_header_with_parameters", + "method_call_header", "unary_expression", "unary_operator", "multiplicative_expression", "additive_expression", "shift_expression", "relational_expression", "equality_expression", "and_expression", "exclusive_or_expression", "inclusive_or_expression", @@ -908,7 +917,7 @@ static const char *const yytname[] = "struct_specifier", "struct_declaration_list", "struct_declaration", "struct_declarator_list", "struct_declarator", "initializer", "declaration_statement", "statement", "simple_statement", - "compound_statement", "statement_no_new_scope", + "compound_statement", "$@2", "statement_no_new_scope", "compound_statement_no_new_scope", "statement_list", "expression_statement", "selection_statement", "selection_rest_statement", "condition", "switch_statement", @@ -942,76 +951,78 @@ 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, - 445, 446, 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, 446, 447, 448, 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, 216, 218, 217, 219, 219, 220, 220, 220, 220, - 220, 221, 221, 222, 223, 223, 224, 225, 225, 225, - 225, 225, 225, 226, 226, 226, 226, 226, 226, 227, - 228, 229, 229, 230, 230, 231, 231, 232, 232, 233, - 234, 234, 234, 235, 235, 235, 235, 236, 236, 236, - 236, 237, 237, 237, 237, 238, 238, 238, 239, 239, - 239, 240, 240, 240, 240, 240, 241, 241, 241, 242, - 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, - 247, 248, 248, 249, 249, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 251, 251, 252, 253, - 253, 253, 254, 255, 255, 256, 256, 257, 258, 258, - 259, 259, 259, 259, 260, 260, 260, 260, 261, 262, - 262, 262, 262, 262, 262, 262, 263, 263, 263, 263, - 263, 263, 263, 263, 264, 264, 265, 265, 266, 267, - 267, 268, 269, 269, 269, 270, 271, 271, 271, 272, - 272, 272, 272, 272, 272, 272, 272, 272, 273, 273, - 274, 274, 274, 275, 275, 275, 276, 276, 276, 276, - 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, - 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, - 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, - 276, 276, 276, 276, 276, 276, 276, 276, 276, 276, - 276, 276, 276, 276, 276, 276, 276, 277, 277, 277, - 278, 278, 279, 279, 280, 281, 281, 282, 282, 283, - 284, 285, 285, 286, 286, 286, 286, 286, 286, 286, - 287, 287, 288, 288, 289, 289, 290, 290, 291, 291, - 292, 293, 293, 294, 294, 295, 296, 296, 297, 297, - 297, 298, 298, 299, 299, 300, 300, 301, 301, 301, - 301, 301, 302, 302, 302, 303 + 0, 218, 220, 219, 221, 221, 222, 222, 222, 222, + 222, 223, 223, 224, 224, 224, 225, 226, 226, 227, + 227, 228, 228, 228, 228, 228, 228, 229, 229, 229, + 229, 229, 229, 230, 231, 232, 232, 233, 233, 234, + 234, 235, 235, 236, 237, 237, 237, 238, 238, 239, + 239, 240, 240, 241, 242, 242, 242, 242, 243, 243, + 243, 243, 244, 244, 244, 244, 245, 245, 245, 246, + 246, 246, 247, 247, 247, 247, 247, 248, 248, 248, + 249, 249, 250, 250, 251, 251, 252, 252, 253, 253, + 254, 254, 255, 255, 256, 256, 257, 257, 257, 257, + 257, 257, 257, 257, 257, 257, 257, 258, 258, 259, + 260, 260, 260, 261, 262, 262, 263, 263, 264, 265, + 265, 266, 266, 266, 266, 267, 267, 267, 267, 268, + 269, 269, 269, 269, 269, 269, 269, 270, 270, 270, + 270, 270, 270, 270, 270, 271, 271, 272, 272, 273, + 274, 274, 275, 276, 276, 276, 277, 278, 278, 278, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 280, + 280, 281, 281, 281, 282, 282, 282, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 284, 284, + 284, 285, 285, 286, 286, 287, 288, 288, 289, 289, + 290, 291, 292, 292, 293, 293, 293, 293, 293, 293, + 293, 294, 295, 294, 296, 296, 297, 297, 298, 298, + 299, 299, 300, 301, 301, 302, 302, 303, 304, 304, + 305, 305, 305, 306, 306, 307, 307, 308, 308, 309, + 309, 309, 309, 309, 310, 310, 310, 311 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 0, 4, 0, 3, 2, 2, 2, 2, - 2, 0, 2, 5, 1, 2, 1, 1, 1, 1, - 1, 1, 3, 1, 4, 1, 3, 2, 2, 1, - 1, 1, 3, 2, 2, 2, 1, 2, 3, 2, - 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, - 1, 1, 3, 3, 3, 1, 3, 3, 1, 3, - 3, 1, 3, 3, 3, 3, 1, 3, 3, 1, - 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, - 3, 1, 5, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 1, 2, - 2, 4, 2, 1, 1, 2, 3, 3, 2, 5, - 3, 2, 3, 2, 0, 1, 1, 1, 1, 1, - 3, 5, 6, 7, 8, 5, 1, 2, 4, 5, - 6, 7, 4, 2, 1, 2, 0, 1, 4, 1, - 3, 1, 1, 1, 1, 1, 1, 2, 2, 1, - 1, 2, 2, 2, 1, 2, 2, 1, 1, 2, - 1, 3, 4, 1, 1, 1, 1, 1, 1, 1, + 2, 0, 2, 1, 1, 1, 5, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 4, 1, + 3, 2, 2, 1, 1, 1, 3, 2, 2, 2, + 1, 2, 3, 2, 1, 1, 1, 2, 2, 2, + 1, 2, 3, 2, 1, 2, 2, 2, 1, 1, + 1, 1, 1, 3, 3, 3, 1, 3, 3, 1, + 3, 3, 1, 3, 3, 3, 3, 1, 3, 3, + 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, + 1, 3, 1, 5, 1, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 2, 2, 4, 2, 1, 1, 2, 3, 3, 2, + 5, 3, 2, 3, 2, 0, 1, 1, 1, 1, + 1, 3, 5, 6, 7, 8, 5, 1, 2, 4, + 5, 6, 7, 4, 2, 1, 2, 0, 1, 4, + 1, 3, 1, 1, 1, 1, 1, 1, 2, 2, + 1, 1, 2, 2, 2, 1, 2, 2, 1, 1, + 2, 1, 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 5, 4, 1, 2, 3, 1, 3, 1, 4, 1, + 1, 5, 4, 1, 2, 3, 1, 3, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 3, 1, 1, 2, 3, 1, 2, 1, 2, - 5, 3, 1, 1, 4, 5, 3, 2, 5, 7, - 6, 1, 1, 1, 0, 2, 3, 2, 2, 2, - 3, 2, 1, 1, 1, 2 + 1, 2, 0, 4, 1, 1, 2, 3, 1, 2, + 1, 2, 5, 3, 1, 1, 4, 5, 3, 2, + 5, 7, 6, 1, 1, 1, 0, 2, 3, 2, + 2, 2, 3, 2, 1, 1, 1, 2 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1019,645 +1030,668 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 4, 0, 0, 11, 0, 1, 2, 5, 0, 136, - 12, 0, 150, 149, 170, 167, 168, 169, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 171, 172, 173, - 0, 154, 157, 144, 143, 142, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 195, 196, 197, - 198, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 0, 166, - 165, 136, 219, 218, 217, 0, 0, 0, 0, 0, - 0, 0, 194, 199, 274, 136, 273, 0, 0, 104, - 114, 0, 119, 126, 0, 137, 136, 0, 146, 134, - 158, 160, 163, 0, 164, 14, 272, 0, 155, 156, - 152, 0, 0, 133, 136, 148, 0, 6, 7, 8, - 9, 10, 0, 15, 99, 136, 275, 102, 114, 145, - 115, 116, 117, 105, 0, 114, 0, 100, 127, 153, - 151, 147, 135, 0, 159, 0, 0, 0, 0, 222, - 0, 141, 0, 139, 0, 0, 136, 0, 0, 0, - 0, 0, 0, 0, 0, 16, 20, 18, 19, 21, - 42, 0, 0, 0, 47, 48, 49, 50, 248, 136, - 244, 17, 23, 43, 25, 30, 31, 0, 0, 36, - 0, 51, 0, 55, 58, 61, 66, 69, 71, 73, - 75, 77, 79, 81, 83, 96, 0, 230, 0, 134, - 233, 246, 232, 231, 136, 234, 235, 236, 237, 238, - 239, 106, 111, 113, 118, 0, 120, 107, 0, 0, - 161, 51, 98, 0, 40, 13, 0, 227, 0, 225, - 221, 223, 101, 138, 0, 268, 267, 0, 136, 0, - 271, 269, 0, 0, 0, 257, 136, 44, 45, 0, - 240, 136, 27, 28, 0, 0, 34, 33, 0, 166, - 37, 39, 86, 87, 89, 88, 91, 92, 93, 94, - 95, 90, 85, 0, 46, 0, 0, 0, 0, 0, + 4, 0, 0, 11, 0, 1, 2, 5, 0, 147, + 12, 13, 14, 15, 0, 161, 160, 181, 178, 179, + 180, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 182, 183, 184, 0, 165, 168, 155, 154, 153, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 206, 207, 208, 209, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 0, 177, 176, 147, 230, 229, 228, 0, 0, + 0, 0, 0, 0, 0, 205, 210, 286, 147, 285, + 0, 0, 115, 125, 0, 130, 137, 0, 148, 147, + 0, 157, 145, 169, 171, 174, 0, 175, 17, 284, + 0, 166, 167, 163, 0, 0, 19, 20, 147, 144, + 159, 0, 6, 7, 8, 9, 10, 0, 18, 110, + 147, 287, 113, 125, 156, 126, 127, 128, 116, 0, + 125, 0, 111, 13, 15, 138, 0, 164, 162, 158, + 146, 0, 170, 0, 0, 0, 233, 0, 0, 152, + 0, 150, 0, 0, 147, 0, 0, 0, 0, 0, + 0, 0, 0, 24, 22, 23, 25, 46, 0, 0, + 0, 58, 59, 60, 61, 260, 252, 256, 21, 27, + 54, 29, 34, 35, 0, 0, 40, 0, 62, 0, + 66, 69, 72, 77, 80, 82, 84, 86, 88, 90, + 92, 94, 107, 0, 241, 0, 145, 244, 258, 243, + 242, 147, 245, 246, 247, 248, 249, 250, 117, 122, + 124, 129, 0, 131, 0, 0, 118, 172, 62, 109, + 0, 44, 16, 238, 0, 236, 232, 234, 0, 112, + 149, 0, 280, 279, 0, 147, 0, 283, 281, 0, + 0, 0, 269, 147, 55, 56, 0, 251, 147, 31, + 32, 0, 0, 38, 37, 0, 177, 41, 43, 97, + 98, 100, 99, 102, 103, 104, 105, 106, 101, 96, + 0, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 249, 245, 247, 108, - 110, 112, 0, 0, 128, 0, 229, 132, 162, 220, - 0, 0, 224, 140, 0, 262, 261, 136, 0, 270, - 0, 256, 253, 0, 0, 22, 241, 0, 29, 26, - 32, 38, 84, 52, 53, 54, 56, 57, 59, 60, - 64, 65, 62, 63, 67, 68, 70, 72, 74, 76, - 78, 80, 0, 97, 0, 121, 0, 125, 0, 129, - 0, 226, 0, 263, 0, 0, 136, 0, 0, 136, - 24, 0, 0, 0, 122, 130, 0, 228, 0, 265, - 136, 252, 250, 255, 0, 243, 258, 242, 82, 109, - 123, 0, 131, 0, 266, 260, 136, 254, 124, 259, - 251 + 0, 0, 0, 261, 257, 259, 119, 121, 123, 0, + 0, 139, 0, 240, 143, 173, 0, 0, 235, 231, + 151, 0, 274, 273, 147, 0, 282, 0, 268, 265, + 0, 0, 26, 147, 0, 33, 30, 0, 36, 0, + 0, 50, 42, 95, 63, 64, 65, 67, 68, 70, + 71, 75, 76, 73, 74, 78, 79, 81, 83, 85, + 87, 89, 91, 0, 108, 0, 132, 0, 136, 0, + 140, 0, 237, 0, 275, 0, 0, 147, 0, 0, + 147, 253, 28, 53, 48, 47, 0, 177, 51, 0, + 0, 0, 133, 141, 0, 239, 0, 277, 147, 264, + 262, 267, 0, 255, 270, 254, 52, 93, 120, 134, + 0, 142, 0, 278, 272, 147, 266, 135, 271, 263 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 2, 9, 3, 84, 6, 10, 85, 181, 182, - 183, 337, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 283, 206, 233, 207, 208, 88, - 89, 90, 222, 133, 134, 223, 91, 92, 93, 94, - 95, 152, 153, 96, 135, 97, 98, 234, 100, 101, - 102, 103, 104, 148, 149, 238, 239, 317, 210, 211, - 212, 213, 396, 397, 214, 215, 216, 392, 334, 217, - 218, 219, 327, 374, 375, 220, 105, 106 + -1, 2, 9, 3, 87, 6, 159, 10, 88, 188, + 189, 190, 344, 191, 192, 193, 194, 195, 196, 197, + 348, 349, 350, 351, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 290, + 213, 240, 214, 215, 91, 92, 93, 229, 138, 139, + 230, 94, 95, 96, 97, 98, 160, 161, 99, 140, + 100, 101, 241, 103, 104, 105, 106, 107, 155, 156, + 244, 245, 324, 217, 218, 219, 220, 268, 414, 415, + 221, 222, 223, 410, 341, 224, 225, 226, 334, 385, + 386, 227, 108, 109 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -307 +#define YYPACT_NINF -359 static const yytype_int16 yypact[] = { - -56, -46, 80, -307, -30, -307, -32, -307, 16, 3505, - -307, -14, -307, -307, -307, -307, -307, -307, -307, -307, - -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, - 78, -307, -307, -307, -307, -307, -307, -307, -307, -307, - -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, - -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, - -307, -307, -307, -307, -307, -307, -307, -307, -71, -307, - -307, 10, -307, -307, -307, 17, -13, -4, 4, 15, - 20, -48, -307, -307, -307, 3385, -307, -78, -44, -20, - 0, -157, -307, 99, 48, -307, 369, 3694, -307, -307, - -307, 2, -307, 3766, -307, -307, -307, 105, -307, -307, - -307, -10, 3694, -307, 369, -307, 3766, -307, -307, -307, - -307, -307, 141, -307, -307, 281, -307, -307, 35, -307, - -307, -307, -307, -307, 3694, 150, 143, -307, -147, -307, - -307, -307, -307, 2475, -307, 81, 3694, 144, 1860, -307, - 9, -307, -79, -307, 11, 12, 1133, 34, 36, 18, - 2094, 37, 3021, 21, 41, -60, -307, -307, -307, -307, - -307, 3021, 3021, 3021, -307, -307, -307, -307, -307, 494, - -307, -307, -307, -22, -307, -307, -307, 43, -73, 3203, - 42, -72, 3021, -1, -7, 116, -76, 118, 30, 32, - 29, 151, 152, -84, -307, -307, -156, -307, 33, 50, - -307, -307, -307, -307, 707, -307, -307, -307, -307, -307, - -307, -307, -307, -307, 167, 3694, -140, -307, 2657, 3021, - -307, -307, -307, 53, -307, -307, 1977, 51, -146, -307, - -307, -307, -307, -307, 141, -307, -307, 174, 1544, 3021, - -307, -307, -142, 3021, -145, -307, 2293, -307, -307, -59, - -307, 920, -307, -307, 3021, 3622, -307, -307, 3021, 57, - -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, - -307, -307, -307, 3021, -307, 3021, 3021, 3021, 3021, 3021, - 3021, 3021, 3021, 3021, 3021, 3021, 3021, 3021, 3021, 3021, - 3021, 3021, 3021, 3021, 3021, 3021, -307, -307, -307, 59, - -307, -307, 2839, 3021, 44, 60, -307, -307, -307, -307, - 3021, 144, -307, -307, 62, -307, -307, 1743, -52, -307, - -51, -307, 61, 181, 66, -307, -307, 65, 61, 69, - -307, -307, -307, -307, -307, -307, -1, -1, -7, -7, - 116, 116, 116, 116, -76, -76, 118, 30, 32, 29, - 151, 152, -137, -307, 3021, 52, 67, -307, 3021, 54, - 68, -307, 3021, -307, 55, 72, 1133, 56, 63, 1345, - -307, 3021, 74, 3021, 64, -307, 3021, -307, -17, 3021, - 1345, 255, -307, -307, 3021, -307, -307, -307, -307, -307, - -307, 3021, -307, 58, 61, -307, 1133, -307, -307, -307, - -307 + -101, -57, 46, -359, -52, -359, -55, -359, 120, 3633, + -359, -359, -359, -359, -36, -359, -359, -359, -359, -359, + -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, + -359, -359, -359, 50, -359, -359, -359, -359, -359, -359, + -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, + -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, + -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, + -359, -39, -359, -359, 234, -359, -359, -359, 96, -25, + -22, -2, 3, 8, -106, -359, -359, -359, 3511, -359, + -100, -66, -48, 0, -163, -359, 129, 77, -359, 15, + 3752, -359, -359, -359, -40, -359, 3825, -359, -359, -359, + 120, -359, -359, -359, 3752, -32, -359, -359, 15, -359, + -359, 3825, -359, -359, -359, -359, -359, 120, -359, -359, + 404, -359, -359, 27, -359, -359, -359, -359, -359, 3752, + 175, 120, -359, 24, 32, -172, 33, -359, -359, -359, + -359, 2407, -359, 115, 120, 1784, -359, 3752, 17, -359, + -67, -359, 19, 25, 1049, 48, 49, 30, 2022, 53, + 2959, 35, 55, -359, -359, -359, -359, -359, 2959, 2959, + 2959, -359, -359, -359, -359, -359, 34, -359, 56, -359, + -65, -359, -359, -359, 60, -60, 3143, 62, -27, 2959, + 9, -1, 58, -83, 103, 51, 47, 64, 166, 167, + -86, -359, -359, -159, -359, 52, 68, -359, -359, -359, + -359, 619, -359, -359, -359, -359, -359, -359, -359, -359, + -359, 120, 3752, -166, 2591, 2959, -359, -359, -359, -359, + 67, -359, -359, 73, -117, -359, -359, -359, 1903, -359, + -359, 120, -359, -359, 196, 1464, 2959, -359, -359, -103, + 2959, -184, -359, 2223, -359, -359, -59, -359, 1049, -359, + -359, 2959, 129, -359, -359, 2959, 81, -359, -359, -359, + -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, + 2959, -359, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, + 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, 2959, + 2959, 2959, 2959, -359, -359, -359, 82, -359, -359, 2775, + 2959, 63, 83, -359, -359, -359, 2959, 120, -359, -359, + -359, 85, -359, -359, 1665, -58, -359, -50, -359, 84, + 120, 86, -359, 834, 87, 84, -359, 88, -359, 90, + -45, 3327, -359, -359, -359, -359, -359, 9, 9, -1, + -1, 58, 58, 58, 58, -83, -83, 103, 51, 47, + 64, 166, 167, -118, -359, 2959, 72, 91, -359, 2959, + 75, 93, -359, 2959, -359, 76, 92, 1049, 78, 79, + 1263, -359, -359, -359, -359, -359, 2959, 97, -359, 2959, + 98, 2959, 89, -359, 2959, -359, -17, 2959, 1263, 284, + -359, -359, 2959, -359, -359, -359, -359, -359, -359, -359, + 2959, -359, 94, 84, -359, 1049, -359, -359, -359, -359 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -307, -307, -307, -307, -307, -307, -307, -307, -307, -307, - -307, -307, -307, -307, 7, -307, -307, -307, -307, -134, - -307, -77, -81, -105, -83, -25, -21, -26, -24, -23, - 13, -307, -141, -186, -307, -154, -216, 6, 22, -307, - -307, -307, 89, 153, 145, 138, -307, -307, -238, -307, - -307, -307, 38, -307, -307, -35, -307, -9, -39, -307, - -307, 208, -307, 147, -131, -307, 47, -293, 121, -155, - -306, -6, -16, 277, 196, 128, -307, -307, 71, -307, - -307, -307, -307, -307, -307, -307, 292, -307 + -359, -359, -359, -359, -359, -359, -7, -359, -359, -71, + -359, -359, -359, -359, -359, -359, -359, -359, -359, -359, + -359, -359, -359, -359, -134, -359, -79, -78, -111, -82, + -8, -6, -5, -10, -4, -11, -359, -140, -168, -359, + -154, -222, 4, 11, -359, -359, -359, 69, 171, 168, + 74, -359, -359, -254, -359, -359, -359, 65, -359, -359, + -33, -359, -9, -63, -359, -359, 229, -359, 154, -147, + -359, -14, -293, 59, -162, -358, -73, -359, -91, 228, + 54, 66, -359, -359, -15, -359, -359, -359, -359, -359, + -359, -359, 235, -359 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -265 +#define YYTABLE_NINF -277 static const yytype_int16 yytable[] = { - 99, 247, 232, 270, 129, 111, 252, 303, 254, 231, - 292, 293, 315, 12, 13, 86, -165, 241, 333, 259, - 367, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 87, 4, 130, 131, 132, 115, 257, 258, 129, - 136, 305, 30, 316, 31, 227, 32, 228, 33, 34, - 35, 321, 305, 1, 312, 305, 137, 306, 284, 308, - 305, 141, 262, 263, 144, 229, 331, 322, 130, 131, - 132, 329, 313, 395, 381, 385, 99, 150, 8, 115, - 5, 139, 341, 7, 395, 140, 113, 232, 142, 333, - 400, 86, 11, 402, 231, 328, 366, 342, 107, 330, - 117, 407, 332, 147, 370, 241, 308, 87, 408, 118, - 338, 108, 109, 114, 243, 110, 209, 119, 244, 363, - 267, 72, 73, 74, 268, 224, 304, 316, 120, 294, - 295, 81, -41, 121, 335, 124, 125, 147, 305, 147, - 282, 376, 377, 112, 122, 305, 305, 209, 382, 127, - 362, 343, 344, 345, 231, 231, 231, 231, 231, 231, - 231, 231, 231, 231, 231, 231, 231, 231, 231, 231, - 209, 232, 264, 332, 265, 138, 403, 128, 231, 232, - 305, 145, 316, 130, 131, 132, 231, 350, 351, 352, - 353, 288, 289, -103, 235, 398, 143, 316, 290, 291, - 316, 285, 286, 287, 146, 209, 296, 297, 316, 348, - 349, 346, 347, 354, 355, 316, 224, 151, 388, 226, - 237, 391, 242, 232, 245, 246, 248, 147, 249, 253, - 231, 250, 255, 256, 271, 404, 266, 298, 300, 209, - 299, 301, -40, 309, 302, 320, 124, 209, 318, 324, - -35, 410, 209, 364, 372, 369, 368, 378, 305, 379, - 380, -41, 384, 387, 383, 390, 386, 406, 389, 399, - 179, 409, 340, 356, 358, 394, 401, 359, 357, 360, - 225, 221, 323, 116, 12, 13, 14, 15, 16, 17, - 154, 155, 156, 236, 157, 158, 159, 160, 161, 162, - 163, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 310, 31, 361, 32, 209, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 102, 14, 254, 119, 134, 299, 300, 310, 247, 340, + 1, 239, 322, 89, 259, 312, 261, 238, 15, 16, + 90, 269, 270, 4, 234, 146, 266, 378, 277, 338, + 319, 134, 413, 135, 136, 137, 141, 11, 12, 13, + 312, 120, 235, 152, 264, 265, 5, 33, 320, 34, + 413, 35, 142, 36, 37, 38, 313, 8, 158, 315, + 135, 136, 137, 7, 115, 291, 149, 323, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 110, 102, + 340, 312, 327, 111, 112, 120, 403, 113, 127, 145, + 122, 150, 89, 123, 239, 399, 312, 377, 328, 90, + 238, 247, 335, 153, 381, 154, 337, 352, 419, 339, + 147, 421, 336, 124, 148, 129, 130, 345, 125, 426, + 118, 216, 353, 126, 301, 302, 311, 427, 250, 132, + 231, 271, 251, 272, 233, 274, 342, 387, 84, 275, + 312, 312, 297, 298, 374, 388, 154, 243, 154, 312, + 395, 133, 323, 400, 396, 216, 151, 373, 354, 355, + 356, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 114, 422, 239, + 339, 315, 312, 398, 157, 238, 239, 289, 361, 362, + 363, 364, 238, 303, 304, -114, 11, 12, 13, 295, + 296, 347, 75, 76, 77, 143, 12, 144, 135, 136, + 137, 323, 216, 292, 293, 294, 357, 358, -19, 359, + 360, 365, 366, 231, 316, 409, -20, 236, 416, 406, + 242, 417, 249, 323, 252, 239, 323, 15, 16, 154, + 253, 238, 255, 256, 323, 257, 216, 260, 262, 263, + -45, 267, 323, 423, 216, 273, 278, 306, 308, 216, + 305, 309, -44, 429, 325, 346, 33, 129, 34, 326, + 35, 331, 36, 37, 38, 307, -39, 379, 375, 383, + 380, 390, 393, 312, 392, 394, 401, 408, 402, 404, + 405, 407, -49, 412, 186, 418, 425, 367, 370, 372, + 368, 317, 369, 420, 228, 371, 318, 121, 232, 428, + 116, 248, 117, 382, 332, 411, 330, 424, 131, 384, + 243, 333, 343, 128, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 389, 216, 0, 0, 0, 0, 118, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 84, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 216, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 15, 16, 17, + 18, 19, 20, 162, 163, 164, 216, 165, 166, 167, + 168, 169, 170, 171, 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, 164, 165, 166, 167, - 168, 169, 170, 311, 126, 171, 172, 209, 371, 325, - 209, 393, 12, 13, 405, 261, 326, 123, 0, 0, - 0, 209, 0, 0, 71, 72, 73, 74, 0, 75, - 0, 0, 0, 0, 0, 0, 0, 209, 373, 0, - 0, 30, 81, 31, 0, 32, 0, 33, 34, 35, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 172, + 116, 73, 117, 173, 174, 175, 176, 177, 0, 0, + 178, 179, 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, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 82, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 85, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 114, 173, 0, 0, 0, 0, 0, 174, - 175, 176, 177, 0, 0, 0, 0, 0, 0, 0, - 81, 0, 0, 0, 178, 179, 180, 12, 13, 14, - 15, 16, 17, 154, 155, 156, 0, 157, 158, 159, - 160, 161, 162, 163, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 0, 31, 0, - 32, 0, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 164, - 165, 166, 167, 168, 169, 170, 0, 0, 171, 172, + 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, + 0, 0, 0, 0, 181, 182, 183, 184, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, + 186, 187, 15, 16, 17, 18, 19, 20, 162, 163, + 164, 0, 165, 166, 167, 168, 169, 170, 171, 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, 172, 116, 73, 117, 173, 174, + 175, 176, 177, 0, 0, 178, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 71, 72, 73, - 74, 0, 75, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, + 0, 0, 0, 0, 74, 75, 76, 77, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, - 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 85, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, - 0, 0, 174, 175, 176, 177, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 178, 179, 260, - 12, 13, 14, 15, 16, 17, 154, 155, 156, 0, - 157, 158, 159, 160, 161, 162, 163, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 0, 31, 0, 32, 0, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 164, 165, 166, 167, 168, 169, 170, 0, - 0, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 72, 73, 74, 0, 75, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 180, 0, 0, 0, 0, 0, 181, + 182, 183, 184, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 185, 186, 314, 15, 16, 17, + 18, 19, 20, 162, 163, 164, 0, 165, 166, 167, + 168, 169, 170, 171, 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, 172, + 116, 73, 117, 173, 174, 175, 176, 177, 0, 0, + 178, 179, 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, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 82, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 85, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, - 0, 0, 0, 0, 0, 174, 175, 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 178, 179, 307, 12, 13, 14, 15, 16, 17, 154, - 155, 156, 0, 157, 158, 159, 160, 161, 162, 163, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 0, 31, 0, 32, 0, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 164, 165, 166, 167, 168, - 169, 170, 0, 0, 171, 172, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, + 0, 0, 0, 0, 181, 182, 183, 184, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 185, + 186, 391, 15, 16, 17, 18, 19, 20, 162, 163, + 164, 0, 165, 166, 167, 168, 169, 170, 171, 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, 172, 116, 73, 117, 173, 174, + 175, 176, 177, 0, 0, 178, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 71, 72, 73, 74, 0, 75, 0, + 0, 0, 0, 0, 74, 75, 76, 77, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 82, 0, 83, 0, 0, + 0, 0, 0, 0, 0, 0, 85, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 173, 0, 0, 0, 0, 0, 174, 175, - 176, 177, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 178, 179, 336, 12, 13, 14, 15, - 16, 17, 154, 155, 156, 0, 157, 158, 159, 160, - 161, 162, 163, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 0, 31, 0, 32, - 0, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 164, 165, - 166, 167, 168, 169, 170, 0, 0, 171, 172, 0, + 0, 0, 0, 180, 0, 0, 0, 0, 0, 181, + 182, 183, 184, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 185, 186, 15, 16, 17, 18, + 19, 20, 162, 163, 164, 0, 165, 166, 167, 168, + 169, 170, 171, 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, 172, 116, + 73, 117, 173, 174, 175, 176, 177, 0, 0, 178, + 179, 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, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 71, 72, 73, 74, - 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 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, 82, 0, - 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 85, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, - 0, 174, 175, 176, 177, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 178, 179, 12, 13, - 14, 15, 16, 17, 154, 155, 156, 0, 157, 158, - 159, 160, 161, 162, 163, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 0, 31, - 0, 32, 0, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 164, 165, 166, 167, 168, 169, 170, 0, 0, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 71, 72, - 73, 74, 0, 75, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 180, 0, 0, + 0, 0, 0, 181, 182, 183, 184, 15, 16, 17, + 18, 19, 20, 0, 0, 0, 0, 0, 185, 130, + 0, 0, 0, 0, 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, + 116, 73, 117, 173, 174, 175, 176, 177, 0, 0, + 178, 179, 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, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 0, 83, 0, 0, 0, 0, 0, 0, 0, + 0, 85, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, - 0, 0, 0, 174, 175, 176, 177, 12, 13, 14, - 15, 16, 17, 0, 0, 0, 0, 0, 178, 125, - 0, 0, 0, 0, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 0, 31, 0, - 32, 0, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 0, - 165, 166, 167, 168, 169, 170, 0, 0, 171, 172, + 0, 0, 0, 0, 0, 0, 0, 0, 180, 0, + 0, 0, 0, 0, 181, 182, 183, 184, 15, 16, + 17, 18, 19, 20, 0, 0, 0, 0, 0, 185, + 0, 0, 0, 0, 0, 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, 116, 73, 117, 173, 174, 175, 176, 177, 0, + 0, 178, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 71, 72, 73, - 74, 0, 75, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, + 118, 75, 76, 77, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 84, 17, + 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, + 0, 0, 85, 0, 86, 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, 180, + 0, 73, 0, 0, 0, 181, 182, 183, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -276, 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, 17, 18, + 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 0, 0, 0, 0, 0, + 0, 85, 0, 86, 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, 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, 82, - 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 246, 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, 17, 18, 19, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 0, 0, 0, 0, 0, 0, + 85, 0, 86, 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, 116, 73, + 117, 173, 174, 175, 176, 177, 0, 0, 178, 179, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 329, 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, 0, 0, - 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, - 0, 0, 174, 175, 176, 177, 12, 13, 14, 15, - 16, 17, 0, 0, 0, 0, 0, 178, 0, 0, - 0, 0, 0, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 0, 31, 0, 32, - 0, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 0, 165, - 166, 167, 168, 169, 170, 0, 0, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 114, 72, 73, 74, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 81, 14, 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 0, 0, 0, 0, 0, 0, 82, 0, - 83, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 0, 0, 0, 0, 0, 0, 180, 0, 0, 0, + 0, 0, 181, 182, 183, 184, 15, 16, 17, 18, + 19, 20, 0, 0, 0, 0, 0, 258, 0, 0, + 0, 0, 0, 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, 173, 70, 0, 0, 0, - 0, 174, 175, 176, 177, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -264, 0, 0, 0, - 0, 0, 0, 0, 72, 73, 74, 0, 0, 0, + 65, 66, 67, 68, 69, 70, 71, 72, 0, 116, + 73, 117, 173, 174, 175, 176, 177, 0, 0, 178, + 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 75, + 76, 77, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 14, 15, 16, 17, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 0, - 0, 0, 0, 0, 0, 82, 0, 83, 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, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, - 0, 72, 73, 74, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, - 15, 16, 17, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 0, 0, 0, 0, - 0, 0, 82, 0, 83, 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, 0, - 165, 166, 167, 168, 169, 170, 0, 0, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 319, 0, 0, 0, 0, 0, 72, 73, - 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 85, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 17, 18, 19, 20, 0, 180, 0, 0, + 0, 0, 0, 181, 182, 183, 184, 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, 116, 73, 117, 173, 174, 175, 176, + 177, 0, 0, 178, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, - 0, 83, 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, 0, 0, 0, 173, 0, 0, 0, - 0, 0, 174, 175, 176, 177, 12, 13, 14, 15, - 16, 17, 0, 0, 0, 0, 0, 251, 0, 0, - 0, 0, 0, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 0, 31, 0, 32, - 0, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 0, 165, - 166, 167, 168, 169, 170, 0, 0, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 114, 72, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 85, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, - 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, + 0, 180, 0, 0, 237, 0, 0, 181, 182, 183, + 184, 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, 116, 73, 117, + 173, 174, 175, 176, 177, 0, 0, 178, 179, 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, - 14, 15, 16, 17, 0, 173, 0, 0, 0, 0, - 0, 174, 175, 176, 177, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 0, 0, 0, - 0, 0, 0, 0, 0, 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, - 0, 165, 166, 167, 168, 169, 170, 0, 0, 171, - 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, - 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, + 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 82, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 18, 19, 20, 0, 180, 0, 0, 321, 0, + 0, 181, 182, 183, 184, 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, 116, 73, 117, 173, 174, 175, 176, 177, 0, + 0, 178, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 14, 15, 16, 17, 0, 173, 0, 0, - 230, 0, 0, 174, 175, 176, 177, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 0, - 0, 0, 0, 0, 0, 0, 0, 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, 0, 165, 166, 167, 168, 169, 170, 0, - 0, 171, 172, 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, 72, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 85, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 82, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 18, 19, 20, 0, 180, + 0, 0, 376, 0, 0, 181, 182, 183, 184, 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, 116, 73, 117, 173, 174, + 175, 176, 177, 0, 0, 178, 179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 14, 15, 16, 17, 0, 173, - 0, 0, 314, 0, 0, 174, 175, 176, 177, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 165, 166, 167, 168, 169, - 170, 0, 0, 171, 172, 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, 72, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 85, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 82, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 18, + 19, 20, 0, 180, 0, 0, 0, 0, 0, 181, + 182, 183, 184, 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, 276, 0, 116, + 73, 117, 173, 174, 175, 176, 177, 0, 0, 178, + 179, 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, 14, 15, 16, 17, - 0, 173, 0, 0, 365, 0, 0, 174, 175, 176, - 177, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 0, 0, 0, 0, 0, 0, 0, - 0, 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, 0, 165, 166, 167, - 168, 169, 170, 0, 0, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 72, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 85, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 82, 0, 83, 0, + 0, 0, 17, 18, 19, 20, 0, 180, 0, 0, + 0, 0, 0, 181, 182, 183, 184, 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, 397, 0, 116, 73, 117, 173, 174, 175, 176, + 177, 0, 0, 178, 179, 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, 14, 15, - 16, 17, 0, 173, 0, 0, 0, 0, 0, 174, - 175, 176, 177, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 0, 0, 0, 0, 0, - 0, 0, 0, 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, 269, 0, 165, - 166, 167, 168, 169, 170, 0, 0, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 72, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 85, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, - 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, -3, 0, 0, 15, 16, 17, 18, 19, 20, + 0, 180, 0, 0, 0, 0, 0, 181, 182, 183, + 184, 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, 0, 73, 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, 173, 0, 0, 0, 0, - 0, 174, 175, 176, 177, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 0, 31, - 0, 32, 0, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 71, 72, - 73, 74, 0, 75, 0, 0, 0, 0, 0, 0, - 0, 76, 77, 78, 79, 80, 81, 0, 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, 0, 31, - 82, 32, 83, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 0, 70, 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, 79, + 80, 81, 82, 83, 84, 0, 15, 16, 17, 18, + 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 0, 34, 85, 35, + 86, 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, 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, 71, 72, - 73, 74, 0, 75, 0, 0, 0, 0, 0, 0, - 0, 76, 77, 78, 79, 80, 81, 14, 15, 16, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, - 82, 0, 83, 36, 37, 38, 39, 40, 41, 42, + 0, 0, 0, 0, 0, 0, 0, 0, 74, 75, + 76, 77, 0, 78, 0, 0, 0, 0, 0, 0, + 0, 79, 80, 81, 82, 83, 84, 17, 18, 19, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 0, 0, 0, 0, 0, 0, + 85, 0, 86, 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, 0, 73, + 17, 18, 19, 20, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 0, 75, 76, + 77, 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, 0, 339, 14, - 15, 16, 17, 170, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 72, 73, 74, 0, - 0, 0, 0, 0, 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, 0, - 70, 14, 15, 16, 17, 0, 0, 82, 0, 83, - 0, 0, 0, 0, 0, 0, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 72, 73, - 74, 0, 0, 0, 0, 0, 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, 0, 70, 0, 0, 0, 0, 0, 0, 82, - 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 0, 0, 73, 0, 0, 0, 0, 0, 0, 85, + 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 82, 0, 83 + 0, 0, 85, 0, 86 }; static const yytype_int16 yycheck[] = { - 9, 156, 143, 189, 4, 76, 160, 91, 162, 143, - 86, 87, 228, 3, 4, 9, 76, 148, 256, 173, - 313, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 9, 78, 33, 34, 35, 71, 171, 172, 4, - 197, 197, 32, 229, 34, 192, 36, 194, 38, 39, - 40, 197, 197, 109, 194, 197, 213, 213, 192, 214, - 197, 96, 84, 85, 103, 212, 211, 213, 33, 34, - 35, 213, 212, 379, 211, 368, 85, 116, 110, 114, - 0, 33, 268, 113, 390, 37, 76, 228, 97, 327, - 383, 85, 76, 386, 228, 249, 312, 283, 112, 253, - 113, 394, 256, 112, 320, 236, 261, 85, 401, 113, - 264, 33, 34, 103, 193, 37, 125, 113, 197, 305, - 193, 104, 105, 106, 197, 134, 210, 313, 113, 205, - 206, 121, 192, 113, 193, 213, 214, 146, 197, 148, - 212, 193, 193, 214, 192, 197, 197, 156, 364, 193, - 304, 285, 286, 287, 288, 289, 290, 291, 292, 293, + 9, 8, 164, 74, 4, 88, 89, 93, 155, 263, + 111, 151, 234, 9, 168, 199, 170, 151, 3, 4, + 9, 86, 87, 80, 196, 96, 180, 320, 196, 213, + 196, 4, 390, 33, 34, 35, 199, 76, 77, 78, + 199, 74, 214, 106, 178, 179, 0, 32, 214, 34, + 408, 36, 215, 38, 39, 40, 215, 112, 121, 221, + 33, 34, 35, 115, 71, 199, 99, 235, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 114, 88, + 334, 199, 199, 33, 34, 118, 379, 37, 194, 96, + 115, 100, 88, 115, 234, 213, 199, 319, 215, 88, + 234, 248, 256, 110, 326, 114, 260, 275, 401, 263, + 33, 404, 215, 115, 37, 215, 216, 271, 115, 412, + 105, 130, 290, 115, 207, 208, 212, 420, 195, 195, + 139, 196, 199, 198, 141, 195, 195, 195, 123, 199, + 199, 199, 84, 85, 312, 195, 155, 154, 157, 199, + 195, 199, 320, 375, 199, 164, 196, 311, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, - 179, 312, 194, 327, 196, 76, 193, 197, 312, 320, - 197, 76, 368, 33, 34, 35, 320, 292, 293, 294, - 295, 198, 199, 193, 113, 381, 194, 383, 82, 83, - 386, 202, 203, 204, 214, 214, 88, 89, 394, 290, - 291, 288, 289, 296, 297, 401, 225, 76, 372, 76, - 76, 376, 213, 364, 213, 213, 192, 236, 192, 192, - 364, 213, 211, 192, 192, 389, 193, 207, 209, 248, - 208, 90, 192, 76, 92, 194, 213, 256, 195, 75, - 193, 406, 261, 194, 192, 195, 212, 76, 197, 193, - 195, 192, 195, 195, 212, 193, 212, 12, 213, 195, - 214, 213, 265, 298, 300, 212, 212, 301, 299, 302, - 135, 128, 244, 75, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 146, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 225, 34, 303, 36, 327, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 225, 87, 84, 85, 376, 321, 248, - 379, 377, 3, 4, 390, 179, 248, 85, -1, -1, - -1, 390, -1, -1, 103, 104, 105, 106, -1, 108, - -1, -1, -1, -1, -1, -1, -1, 406, 327, -1, - -1, 32, 121, 34, -1, 36, -1, 38, 39, 40, + 304, 305, 306, 307, 308, 309, 310, 216, 195, 319, + 334, 343, 199, 351, 216, 319, 326, 214, 299, 300, + 301, 302, 326, 90, 91, 195, 76, 77, 78, 200, + 201, 272, 106, 107, 108, 76, 77, 78, 33, 34, + 35, 379, 221, 204, 205, 206, 295, 296, 194, 297, + 298, 303, 304, 232, 231, 387, 194, 194, 396, 383, + 115, 399, 215, 401, 215, 375, 404, 3, 4, 248, + 215, 375, 194, 194, 412, 215, 255, 194, 213, 194, + 194, 217, 420, 407, 263, 195, 194, 210, 92, 268, + 209, 94, 194, 425, 197, 272, 32, 215, 34, 196, + 36, 75, 38, 39, 40, 211, 195, 214, 196, 194, + 197, 195, 194, 199, 197, 195, 214, 195, 197, 214, + 197, 215, 195, 214, 216, 197, 12, 305, 308, 310, + 306, 232, 307, 214, 133, 309, 232, 78, 140, 215, + 76, 157, 78, 327, 255, 388, 251, 408, 90, 334, + 327, 255, 268, 88, -1, 334, -1, -1, -1, -1, + -1, -1, -1, 340, 343, -1, -1, -1, -1, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 155, -1, 157, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 103, 192, -1, -1, -1, -1, -1, 198, - 199, 200, 201, -1, -1, -1, -1, -1, -1, -1, - 121, -1, -1, -1, 213, 214, 215, 3, 4, 5, - 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, + -1, -1, -1, -1, -1, -1, -1, -1, 387, -1, + -1, 390, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 408, + -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 425, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, 34, -1, 36, -1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, -1, -1, 84, 85, + 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, + 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, -1, 110, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, - 106, -1, 108, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, - -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 157, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 192, -1, -1, -1, - -1, -1, 198, 199, 200, 201, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 213, 214, 215, - 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, - -1, 34, -1, 36, -1, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, -1, - -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 194, -1, + -1, -1, -1, -1, 200, 201, 202, 203, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 215, + 216, 217, 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, -1, 34, -1, 36, -1, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, -1, -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 103, 104, 105, 106, -1, 108, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 121, -1, + -1, -1, -1, -1, 105, 106, 107, 108, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 155, -1, 157, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 157, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 192, - -1, -1, -1, -1, -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 213, 214, 215, 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, -1, 34, -1, 36, -1, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, -1, -1, 84, 85, -1, -1, -1, -1, + -1, -1, -1, 194, -1, -1, -1, -1, -1, 200, + 201, 202, 203, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 215, 216, 217, 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, -1, 34, -1, + 36, -1, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, + 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, -1, 110, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 103, 104, 105, 106, -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 157, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 155, -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 194, -1, + -1, -1, -1, -1, 200, 201, 202, 203, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 215, + 216, 217, 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, -1, 34, -1, 36, -1, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, -1, -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 105, 106, 107, 108, -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 192, -1, -1, -1, -1, -1, 198, 199, - 200, 201, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 213, 214, 215, 3, 4, 5, 6, + -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 157, -1, 159, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 194, -1, -1, -1, -1, -1, 200, + 201, 202, 203, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 215, 216, 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, -1, 34, -1, 36, @@ -1665,326 +1699,320 @@ static const yytype_int16 yycheck[] = 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, -1, -1, 84, 85, -1, + 77, 78, 79, 80, 81, 82, 83, -1, -1, 86, + 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 105, 106, + 107, 108, -1, 110, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, - -1, 108, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 155, -1, - 157, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 157, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 192, -1, -1, -1, -1, - -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 213, 214, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + -1, -1, -1, -1, -1, -1, -1, 194, -1, -1, + -1, -1, -1, 200, 201, 202, 203, 3, 4, 5, + 6, 7, 8, -1, -1, -1, -1, -1, 215, 216, + -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, -1, 34, -1, + 36, -1, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, + 76, 77, 78, 79, 80, 81, 82, 83, -1, -1, + 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, + 106, 107, 108, -1, 110, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 123, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 157, -1, 159, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 194, -1, + -1, -1, -1, -1, 200, 201, 202, 203, 3, 4, + 5, 6, 7, 8, -1, -1, -1, -1, -1, 215, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, 34, -1, 36, -1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, -1, -1, 84, - 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, - 105, 106, -1, 108, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 121, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 155, -1, 157, -1, -1, -1, -1, -1, -1, -1, + -1, 76, 77, 78, 79, 80, 81, 82, 83, -1, + -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 192, -1, -1, - -1, -1, -1, 198, 199, 200, 201, 3, 4, 5, - 6, 7, 8, -1, -1, -1, -1, -1, 213, 214, + 105, 106, 107, 108, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 123, 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, -1, 34, -1, - 36, -1, 38, 39, 40, 41, 42, 43, 44, 45, + 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, + -1, -1, 157, -1, 159, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - 76, 77, 78, 79, 80, 81, -1, -1, 84, 85, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 194, + -1, 77, -1, -1, -1, 200, 201, 202, 203, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 215, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 106, 107, 108, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5, 6, + 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, + -1, 157, -1, 159, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, + 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 103, 104, 105, - 106, -1, 108, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 121, -1, -1, -1, -1, + -1, 217, -1, -1, -1, -1, -1, -1, -1, 106, + 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5, 6, 7, + 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, + 157, -1, 159, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, -1, 76, 77, + 78, 79, 80, 81, 82, 83, -1, -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 217, -1, -1, -1, -1, -1, -1, -1, 106, 107, + 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, - -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 192, -1, -1, -1, - -1, -1, 198, 199, 200, 201, 3, 4, 5, 6, - 7, 8, -1, -1, -1, -1, -1, 213, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, + -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 194, -1, -1, -1, + -1, -1, 200, 201, 202, 203, 3, 4, 5, 6, + 7, 8, -1, -1, -1, -1, -1, 215, -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, 34, -1, 36, -1, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, 76, - 77, 78, 79, 80, 81, -1, -1, 84, 85, -1, + 77, 78, 79, 80, 81, 82, 83, -1, -1, 86, + 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 105, 106, + 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 123, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 121, 5, 6, 7, 8, -1, + 157, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, -1, -1, -1, -1, -1, -1, 155, -1, - 157, 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, 192, 76, -1, -1, -1, - -1, 198, 199, 200, 201, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 213, -1, -1, -1, - -1, -1, -1, -1, 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 5, 6, 7, 8, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, + -1, -1, 5, 6, 7, 8, -1, 194, -1, -1, + -1, -1, -1, 200, 201, 202, 203, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, - -1, -1, -1, -1, -1, 155, -1, 157, 41, 42, + -1, -1, -1, -1, -1, -1, -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, -1, 76, -1, -1, -1, -1, -1, -1, + 73, 74, -1, 76, 77, 78, 79, 80, 81, 82, + 83, -1, -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 215, -1, -1, -1, -1, - -1, 104, 105, 106, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, - 6, 7, 8, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, - -1, -1, 155, -1, 157, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - 76, 77, 78, 79, 80, 81, -1, -1, 84, 85, + -1, -1, -1, 106, 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 215, -1, -1, -1, -1, -1, 104, 105, - 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 155, - -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 157, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 192, -1, -1, -1, - -1, -1, 198, 199, 200, 201, 3, 4, 5, 6, - 7, 8, -1, -1, -1, -1, -1, 213, -1, -1, - -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, -1, 34, -1, 36, - -1, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, -1, 76, - 77, 78, 79, 80, 81, -1, -1, 84, 85, -1, + -1, -1, -1, -1, -1, -1, 5, 6, 7, 8, + -1, 194, -1, -1, 197, -1, -1, 200, 201, 202, + 203, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, -1, 76, 77, 78, + 79, 80, 81, 82, 83, -1, -1, 86, 87, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 106, 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 103, 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 155, -1, - 157, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 157, -1, + 159, -1, -1, -1, -1, -1, -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, 192, -1, -1, -1, -1, - -1, 198, 199, 200, 201, 20, 21, 22, 23, 24, + 5, 6, 7, 8, -1, 194, -1, -1, 197, -1, + -1, 200, 201, 202, 203, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - -1, 76, 77, 78, 79, 80, 81, -1, -1, 84, - 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 104, - 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 76, 77, 78, 79, 80, 81, 82, 83, -1, + -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 155, -1, 157, -1, -1, -1, -1, -1, -1, -1, + -1, 106, 107, 108, -1, -1, -1, -1, -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, 192, -1, -1, - 195, -1, -1, 198, 199, 200, 201, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, -1, 76, 77, 78, 79, 80, 81, -1, - -1, 84, 85, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 157, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 155, -1, 157, -1, -1, -1, -1, -1, - -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, 192, - -1, -1, 195, -1, -1, 198, 199, 200, 201, 20, + -1, -1, -1, -1, 5, 6, 7, 8, -1, 194, + -1, -1, 197, -1, -1, 200, 201, 202, 203, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, 76, 77, 78, 79, 80, - 81, -1, -1, 84, 85, -1, -1, -1, -1, -1, + 81, 82, 83, -1, -1, 86, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 104, 105, 106, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 106, 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 155, -1, 157, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 157, -1, 159, -1, -1, -1, -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, 192, -1, -1, 195, -1, -1, 198, 199, 200, - 201, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, -1, 76, 77, 78, - 79, 80, 81, -1, -1, 84, 85, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 5, 6, + 7, 8, -1, 194, -1, -1, -1, -1, -1, 200, + 201, 202, 203, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, -1, 76, + 77, 78, 79, 80, 81, 82, 83, -1, -1, 86, + 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 106, + 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 157, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 155, -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5, 6, 7, 8, -1, 194, -1, -1, + -1, -1, -1, 200, 201, 202, 203, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, -1, 76, 77, 78, 79, 80, 81, 82, + 83, -1, -1, 86, 87, -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, 192, -1, -1, -1, -1, -1, 198, - 199, 200, 201, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, -1, 76, - 77, 78, 79, 80, 81, -1, -1, 84, 85, -1, + -1, -1, -1, 106, 107, 108, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 104, 105, 106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 157, -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 155, -1, - 157, -1, -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, 192, -1, -1, -1, -1, - -1, 198, 199, 200, 201, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, -1, 34, - -1, 36, -1, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 0, -1, -1, 3, 4, 5, 6, 7, 8, + -1, 194, -1, -1, -1, -1, -1, 200, 201, 202, + 203, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, -1, 34, -1, 36, -1, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, -1, -1, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, - 105, 106, -1, 108, -1, -1, -1, -1, -1, -1, - -1, 116, 117, 118, 119, 120, 121, -1, 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, -1, 34, - 155, 36, 157, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, - 105, 106, -1, 108, -1, -1, -1, -1, -1, -1, - -1, 116, 117, 118, 119, 120, 121, 5, 6, 7, + -1, -1, -1, -1, -1, -1, 105, 106, 107, 108, + -1, 110, -1, -1, -1, -1, -1, -1, -1, 118, + 119, 120, 121, 122, 123, -1, 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, -1, 34, 157, 36, + 159, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, -1, -1, + 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 105, 106, + 107, 108, -1, 110, -1, -1, -1, -1, -1, -1, + -1, 118, 119, 120, 121, 122, 123, 5, 6, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, - 155, -1, 157, 41, 42, 43, 44, 45, 46, 47, + 157, -1, 159, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, -1, 76, 5, - 6, 7, 8, 81, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 104, 105, 106, -1, - -1, -1, -1, -1, -1, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, -1, - 76, 5, 6, 7, 8, -1, -1, 155, -1, 157, - -1, -1, -1, -1, -1, -1, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 104, 105, - 106, -1, -1, -1, -1, -1, -1, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, -1, 76, -1, -1, -1, -1, -1, -1, 155, - -1, 157, -1, -1, -1, -1, -1, -1, -1, -1, + 68, 69, 70, 71, 72, 73, 74, -1, -1, 77, + 5, 6, 7, 8, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, -1, 106, 107, + 108, -1, -1, -1, -1, -1, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + -1, -1, 77, -1, -1, -1, -1, -1, -1, 157, + -1, 159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 155, -1, 157 + -1, -1, 157, -1, 159 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 109, 217, 219, 78, 0, 221, 113, 110, 218, - 222, 76, 3, 4, 5, 6, 7, 8, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 34, 36, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 76, 103, 104, 105, 106, 108, 116, 117, 118, 119, - 120, 121, 155, 157, 220, 223, 253, 254, 255, 256, - 257, 262, 263, 264, 265, 266, 269, 271, 272, 273, - 274, 275, 276, 277, 278, 302, 303, 112, 33, 34, - 37, 76, 214, 76, 103, 271, 277, 113, 113, 113, - 113, 113, 192, 302, 213, 214, 289, 193, 197, 4, - 33, 34, 35, 259, 260, 270, 197, 213, 76, 33, - 37, 271, 273, 194, 274, 76, 214, 273, 279, 280, - 274, 76, 267, 268, 9, 10, 11, 13, 14, 15, - 16, 17, 18, 19, 75, 76, 77, 78, 79, 80, - 81, 84, 85, 192, 198, 199, 200, 201, 213, 214, - 215, 224, 225, 226, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 251, 253, 254, 273, - 284, 285, 286, 287, 290, 291, 292, 295, 296, 297, - 301, 259, 258, 261, 273, 260, 76, 192, 194, 212, - 195, 235, 248, 252, 273, 113, 279, 76, 281, 282, - 215, 280, 213, 193, 197, 213, 213, 285, 192, 192, - 213, 213, 251, 192, 251, 211, 192, 235, 235, 251, - 215, 290, 84, 85, 194, 196, 193, 193, 197, 74, - 249, 192, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 212, 250, 235, 202, 203, 204, 198, 199, - 82, 83, 86, 87, 205, 206, 88, 89, 207, 208, - 209, 90, 92, 91, 210, 197, 213, 215, 285, 76, - 258, 261, 194, 212, 195, 252, 249, 283, 195, 215, - 194, 197, 213, 268, 75, 284, 291, 298, 251, 213, - 251, 211, 251, 264, 294, 193, 215, 227, 251, 76, - 230, 249, 249, 235, 235, 235, 237, 237, 238, 238, - 239, 239, 239, 239, 240, 240, 241, 242, 243, 244, - 245, 246, 251, 249, 194, 195, 252, 283, 212, 195, - 252, 282, 192, 294, 299, 300, 193, 193, 76, 193, - 195, 211, 252, 212, 195, 283, 212, 195, 251, 213, - 193, 285, 293, 287, 212, 286, 288, 289, 249, 195, - 283, 212, 283, 193, 251, 288, 12, 283, 283, 213, - 285 + 0, 111, 219, 221, 80, 0, 223, 115, 112, 220, + 225, 76, 77, 78, 224, 3, 4, 5, 6, 7, + 8, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 34, 36, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 77, 105, 106, 107, 108, 110, 118, + 119, 120, 121, 122, 123, 157, 159, 222, 226, 260, + 261, 262, 263, 264, 269, 270, 271, 272, 273, 276, + 278, 279, 280, 281, 282, 283, 284, 285, 310, 311, + 114, 33, 34, 37, 216, 224, 76, 78, 105, 227, + 278, 284, 115, 115, 115, 115, 115, 194, 310, 215, + 216, 297, 195, 199, 4, 33, 34, 35, 266, 267, + 277, 199, 215, 76, 78, 224, 227, 33, 37, 278, + 280, 196, 281, 224, 280, 286, 287, 216, 281, 224, + 274, 275, 9, 10, 11, 13, 14, 15, 16, 17, + 18, 19, 75, 79, 80, 81, 82, 83, 86, 87, + 194, 200, 201, 202, 203, 215, 216, 217, 227, 228, + 229, 231, 232, 233, 234, 235, 236, 237, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 258, 260, 261, 280, 291, 292, 293, + 294, 298, 299, 300, 303, 304, 305, 309, 266, 265, + 268, 280, 267, 224, 196, 214, 194, 197, 242, 255, + 259, 280, 115, 224, 288, 289, 217, 287, 286, 215, + 195, 199, 215, 215, 292, 194, 194, 215, 215, 258, + 194, 258, 213, 194, 242, 242, 258, 217, 295, 86, + 87, 196, 198, 195, 195, 199, 74, 256, 194, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 214, + 257, 242, 204, 205, 206, 200, 201, 84, 85, 88, + 89, 207, 208, 90, 91, 209, 210, 211, 92, 94, + 93, 212, 199, 215, 217, 292, 224, 265, 268, 196, + 214, 197, 259, 256, 290, 197, 196, 199, 215, 217, + 275, 75, 291, 299, 306, 258, 215, 258, 213, 258, + 271, 302, 195, 298, 230, 258, 224, 227, 238, 239, + 240, 241, 256, 256, 242, 242, 242, 244, 244, 245, + 245, 246, 246, 246, 246, 247, 247, 248, 249, 250, + 251, 252, 253, 258, 256, 196, 197, 259, 290, 214, + 197, 259, 289, 194, 302, 307, 308, 195, 195, 224, + 195, 217, 197, 194, 195, 195, 199, 74, 256, 213, + 259, 214, 197, 290, 214, 197, 258, 215, 195, 292, + 301, 294, 214, 293, 296, 297, 256, 256, 197, 290, + 214, 290, 195, 258, 296, 12, 290, 290, 215, 292 }; #define yyerrok (yyerrstatus = 0) @@ -2675,7 +2703,7 @@ YYLTYPE yylloc; } /* Line 1251 of yacc.c */ -#line 2679 "glsl_parser.cpp" +#line 2707 "glsl_parser.cpp" yylsp[0] = yylloc; goto yysetstate; @@ -2863,17 +2891,28 @@ yyreduce: case 2: /* Line 1464 of yacc.c */ -#line 215 "glsl_parser.ypp" +#line 220 "glsl_parser.ypp" { _mesa_glsl_initialize_types(state); ;} break; - case 5: + case 3: /* Line 1464 of yacc.c */ #line 224 "glsl_parser.ypp" { + delete state->symbols; + state->symbols = new(ralloc_parent(state)) glsl_symbol_table; + _mesa_glsl_initialize_types(state); + ;} + break; + + case 5: + +/* Line 1464 of yacc.c */ +#line 234 "glsl_parser.ypp" + { bool supported = false; switch ((yyvsp[(2) - (3)].n)) { @@ -2914,7 +2953,7 @@ yyreduce: case 10: /* Line 1464 of yacc.c */ -#line 268 "glsl_parser.ypp" +#line 278 "glsl_parser.ypp" { if (state->language_version < 120) { _mesa_glsl_warning(& (yylsp[(1) - (2)]), state, @@ -2926,10 +2965,10 @@ yyreduce: ;} break; - case 13: + case 16: /* Line 1464 of yacc.c */ -#line 286 "glsl_parser.ypp" +#line 302 "glsl_parser.ypp" { if (!_mesa_glsl_process_extension((yyvsp[(2) - (5)].identifier), & (yylsp[(2) - (5)]), (yyvsp[(4) - (5)].identifier), & (yylsp[(4) - (5)]), state)) { YYERROR; @@ -2937,10 +2976,10 @@ yyreduce: ;} break; - case 14: + case 17: /* Line 1464 of yacc.c */ -#line 295 "glsl_parser.ypp" +#line 311 "glsl_parser.ypp" { /* FINISHME: The NULL test is required because pragmas are set to * FINISHME: NULL. (See production rule for external_declaration.) @@ -2950,10 +2989,10 @@ yyreduce: ;} break; - case 15: + case 18: /* Line 1464 of yacc.c */ -#line 303 "glsl_parser.ypp" +#line 319 "glsl_parser.ypp" { /* FINISHME: The NULL test is required because pragmas are set to * FINISHME: NULL. (See production rule for external_declaration.) @@ -2963,10 +3002,10 @@ yyreduce: ;} break; - case 17: + case 21: /* Line 1464 of yacc.c */ -#line 318 "glsl_parser.ypp" +#line 335 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_identifier, NULL, NULL, NULL); @@ -2975,10 +3014,10 @@ yyreduce: ;} break; - case 18: + case 22: /* Line 1464 of yacc.c */ -#line 325 "glsl_parser.ypp" +#line 342 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_int_constant, NULL, NULL, NULL); @@ -2987,10 +3026,10 @@ yyreduce: ;} break; - case 19: + case 23: /* Line 1464 of yacc.c */ -#line 332 "glsl_parser.ypp" +#line 349 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_uint_constant, NULL, NULL, NULL); @@ -2999,10 +3038,10 @@ yyreduce: ;} break; - case 20: + case 24: /* Line 1464 of yacc.c */ -#line 339 "glsl_parser.ypp" +#line 356 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_float_constant, NULL, NULL, NULL); @@ -3011,10 +3050,10 @@ yyreduce: ;} break; - case 21: + case 25: /* Line 1464 of yacc.c */ -#line 346 "glsl_parser.ypp" +#line 363 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_bool_constant, NULL, NULL, NULL); @@ -3023,19 +3062,19 @@ yyreduce: ;} break; - case 22: + case 26: /* Line 1464 of yacc.c */ -#line 353 "glsl_parser.ypp" +#line 370 "glsl_parser.ypp" { (yyval.expression) = (yyvsp[(2) - (3)].expression); ;} break; - case 24: + case 28: /* Line 1464 of yacc.c */ -#line 361 "glsl_parser.ypp" +#line 378 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_array_index, (yyvsp[(1) - (4)].expression), (yyvsp[(3) - (4)].expression), NULL); @@ -3043,19 +3082,19 @@ yyreduce: ;} break; - case 25: + case 29: /* Line 1464 of yacc.c */ -#line 367 "glsl_parser.ypp" +#line 384 "glsl_parser.ypp" { (yyval.expression) = (yyvsp[(1) - (1)].expression); ;} break; - case 26: + case 30: /* Line 1464 of yacc.c */ -#line 371 "glsl_parser.ypp" +#line 388 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), NULL, NULL); @@ -3064,10 +3103,10 @@ yyreduce: ;} break; - case 27: + case 31: /* Line 1464 of yacc.c */ -#line 378 "glsl_parser.ypp" +#line 395 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_post_inc, (yyvsp[(1) - (2)].expression), NULL, NULL); @@ -3075,10 +3114,10 @@ yyreduce: ;} break; - case 28: + case 32: /* Line 1464 of yacc.c */ -#line 384 "glsl_parser.ypp" +#line 401 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_post_dec, (yyvsp[(1) - (2)].expression), NULL, NULL); @@ -3086,10 +3125,10 @@ yyreduce: ;} break; - case 32: + case 36: /* Line 1464 of yacc.c */ -#line 402 "glsl_parser.ypp" +#line 419 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_field_selection, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression), NULL); @@ -3097,10 +3136,10 @@ yyreduce: ;} break; - case 37: + case 41: /* Line 1464 of yacc.c */ -#line 421 "glsl_parser.ypp" +#line 438 "glsl_parser.ypp" { (yyval.expression) = (yyvsp[(1) - (2)].expression); (yyval.expression)->set_location(yylloc); @@ -3108,10 +3147,10 @@ yyreduce: ;} break; - case 38: + case 42: /* Line 1464 of yacc.c */ -#line 427 "glsl_parser.ypp" +#line 444 "glsl_parser.ypp" { (yyval.expression) = (yyvsp[(1) - (3)].expression); (yyval.expression)->set_location(yylloc); @@ -3119,10 +3158,10 @@ yyreduce: ;} break; - case 40: + case 44: /* Line 1464 of yacc.c */ -#line 443 "glsl_parser.ypp" +#line 460 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_function_expression((yyvsp[(1) - (1)].type_specifier)); @@ -3130,10 +3169,10 @@ yyreduce: ;} break; - case 41: + case 45: /* Line 1464 of yacc.c */ -#line 449 "glsl_parser.ypp" +#line 466 "glsl_parser.ypp" { void *ctx = state; ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier)); @@ -3142,10 +3181,10 @@ yyreduce: ;} break; - case 42: + case 46: /* Line 1464 of yacc.c */ -#line 456 "glsl_parser.ypp" +#line 473 "glsl_parser.ypp" { void *ctx = state; ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (1)].identifier)); @@ -3154,10 +3193,44 @@ yyreduce: ;} break; - case 44: + case 51: + +/* Line 1464 of yacc.c */ +#line 493 "glsl_parser.ypp" + { + (yyval.expression) = (yyvsp[(1) - (2)].expression); + (yyval.expression)->set_location(yylloc); + (yyval.expression)->expressions.push_tail(& (yyvsp[(2) - (2)].expression)->link); + ;} + break; + + case 52: + +/* Line 1464 of yacc.c */ +#line 499 "glsl_parser.ypp" + { + (yyval.expression) = (yyvsp[(1) - (3)].expression); + (yyval.expression)->set_location(yylloc); + (yyval.expression)->expressions.push_tail(& (yyvsp[(3) - (3)].expression)->link); + ;} + break; + + case 53: + +/* Line 1464 of yacc.c */ +#line 511 "glsl_parser.ypp" + { + void *ctx = state; + ast_expression *callee = new(ctx) ast_expression((yyvsp[(1) - (2)].identifier)); + (yyval.expression) = new(ctx) ast_function_expression(callee); + (yyval.expression)->set_location(yylloc); + ;} + break; + + case 55: /* Line 1464 of yacc.c */ -#line 468 "glsl_parser.ypp" +#line 523 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_pre_inc, (yyvsp[(2) - (2)].expression), NULL, NULL); @@ -3165,10 +3238,10 @@ yyreduce: ;} break; - case 45: + case 56: /* Line 1464 of yacc.c */ -#line 474 "glsl_parser.ypp" +#line 529 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression(ast_pre_dec, (yyvsp[(2) - (2)].expression), NULL, NULL); @@ -3176,10 +3249,10 @@ yyreduce: ;} break; - case 46: + case 57: /* Line 1464 of yacc.c */ -#line 480 "glsl_parser.ypp" +#line 535 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression((yyvsp[(1) - (2)].n), (yyvsp[(2) - (2)].expression), NULL, NULL); @@ -3187,38 +3260,38 @@ yyreduce: ;} break; - case 47: + case 58: /* Line 1464 of yacc.c */ -#line 489 "glsl_parser.ypp" +#line 544 "glsl_parser.ypp" { (yyval.n) = ast_plus; ;} break; - case 48: + case 59: /* Line 1464 of yacc.c */ -#line 490 "glsl_parser.ypp" +#line 545 "glsl_parser.ypp" { (yyval.n) = ast_neg; ;} break; - case 49: + case 60: /* Line 1464 of yacc.c */ -#line 491 "glsl_parser.ypp" +#line 546 "glsl_parser.ypp" { (yyval.n) = ast_logic_not; ;} break; - case 50: + case 61: /* Line 1464 of yacc.c */ -#line 492 "glsl_parser.ypp" +#line 547 "glsl_parser.ypp" { (yyval.n) = ast_bit_not; ;} break; - case 52: + case 63: /* Line 1464 of yacc.c */ -#line 498 "glsl_parser.ypp" +#line 553 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_mul, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3226,10 +3299,10 @@ yyreduce: ;} break; - case 53: + case 64: /* Line 1464 of yacc.c */ -#line 504 "glsl_parser.ypp" +#line 559 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_div, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3237,10 +3310,10 @@ yyreduce: ;} break; - case 54: + case 65: /* Line 1464 of yacc.c */ -#line 510 "glsl_parser.ypp" +#line 565 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_mod, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3248,10 +3321,10 @@ yyreduce: ;} break; - case 56: + case 67: /* Line 1464 of yacc.c */ -#line 520 "glsl_parser.ypp" +#line 575 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_add, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3259,10 +3332,10 @@ yyreduce: ;} break; - case 57: + case 68: /* Line 1464 of yacc.c */ -#line 526 "glsl_parser.ypp" +#line 581 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_sub, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3270,10 +3343,10 @@ yyreduce: ;} break; - case 59: + case 70: /* Line 1464 of yacc.c */ -#line 536 "glsl_parser.ypp" +#line 591 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_lshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3281,10 +3354,10 @@ yyreduce: ;} break; - case 60: + case 71: /* Line 1464 of yacc.c */ -#line 542 "glsl_parser.ypp" +#line 597 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_rshift, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3292,10 +3365,10 @@ yyreduce: ;} break; - case 62: + case 73: /* Line 1464 of yacc.c */ -#line 552 "glsl_parser.ypp" +#line 607 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_less, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3303,10 +3376,10 @@ yyreduce: ;} break; - case 63: + case 74: /* Line 1464 of yacc.c */ -#line 558 "glsl_parser.ypp" +#line 613 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_greater, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3314,10 +3387,10 @@ yyreduce: ;} break; - case 64: + case 75: /* Line 1464 of yacc.c */ -#line 564 "glsl_parser.ypp" +#line 619 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_lequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3325,10 +3398,10 @@ yyreduce: ;} break; - case 65: + case 76: /* Line 1464 of yacc.c */ -#line 570 "glsl_parser.ypp" +#line 625 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_gequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3336,10 +3409,10 @@ yyreduce: ;} break; - case 67: + case 78: /* Line 1464 of yacc.c */ -#line 580 "glsl_parser.ypp" +#line 635 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_equal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3347,10 +3420,10 @@ yyreduce: ;} break; - case 68: + case 79: /* Line 1464 of yacc.c */ -#line 586 "glsl_parser.ypp" +#line 641 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_nequal, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3358,10 +3431,10 @@ yyreduce: ;} break; - case 70: + case 81: /* Line 1464 of yacc.c */ -#line 596 "glsl_parser.ypp" +#line 651 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3369,10 +3442,10 @@ yyreduce: ;} break; - case 72: + case 83: /* Line 1464 of yacc.c */ -#line 606 "glsl_parser.ypp" +#line 661 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3380,10 +3453,10 @@ yyreduce: ;} break; - case 74: + case 85: /* Line 1464 of yacc.c */ -#line 616 "glsl_parser.ypp" +#line 671 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_bit_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3391,10 +3464,10 @@ yyreduce: ;} break; - case 76: + case 87: /* Line 1464 of yacc.c */ -#line 626 "glsl_parser.ypp" +#line 681 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_and, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3402,10 +3475,10 @@ yyreduce: ;} break; - case 78: + case 89: /* Line 1464 of yacc.c */ -#line 636 "glsl_parser.ypp" +#line 691 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_xor, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3413,10 +3486,10 @@ yyreduce: ;} break; - case 80: + case 91: /* Line 1464 of yacc.c */ -#line 646 "glsl_parser.ypp" +#line 701 "glsl_parser.ypp" { void *ctx = state; (yyval.expression) = new(ctx) ast_expression_bin(ast_logic_or, (yyvsp[(1) - (3)].expression), (yyvsp[(3) - (3)].expression)); @@ -3424,10 +3497,10 @@ yyreduce: ;} break; - case 82: + case 93: /* Line 1464 of yacc.c */ -#line 656 "glsl_parser.ypp" +#line 711 "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)); @@ -3435,10 +3508,10 @@ yyreduce: ;} break; - case 84: + case 95: /* Line 1464 of yacc.c */ -#line 666 "glsl_parser.ypp" +#line 721 "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); @@ -3446,96 +3519,96 @@ yyreduce: ;} break; - case 85: + case 96: /* Line 1464 of yacc.c */ -#line 674 "glsl_parser.ypp" +#line 729 "glsl_parser.ypp" { (yyval.n) = ast_assign; ;} break; - case 86: + case 97: /* Line 1464 of yacc.c */ -#line 675 "glsl_parser.ypp" +#line 730 "glsl_parser.ypp" { (yyval.n) = ast_mul_assign; ;} break; - case 87: + case 98: /* Line 1464 of yacc.c */ -#line 676 "glsl_parser.ypp" +#line 731 "glsl_parser.ypp" { (yyval.n) = ast_div_assign; ;} break; - case 88: + case 99: /* Line 1464 of yacc.c */ -#line 677 "glsl_parser.ypp" +#line 732 "glsl_parser.ypp" { (yyval.n) = ast_mod_assign; ;} break; - case 89: + case 100: /* Line 1464 of yacc.c */ -#line 678 "glsl_parser.ypp" +#line 733 "glsl_parser.ypp" { (yyval.n) = ast_add_assign; ;} break; - case 90: + case 101: /* Line 1464 of yacc.c */ -#line 679 "glsl_parser.ypp" +#line 734 "glsl_parser.ypp" { (yyval.n) = ast_sub_assign; ;} break; - case 91: + case 102: /* Line 1464 of yacc.c */ -#line 680 "glsl_parser.ypp" +#line 735 "glsl_parser.ypp" { (yyval.n) = ast_ls_assign; ;} break; - case 92: + case 103: /* Line 1464 of yacc.c */ -#line 681 "glsl_parser.ypp" +#line 736 "glsl_parser.ypp" { (yyval.n) = ast_rs_assign; ;} break; - case 93: + case 104: /* Line 1464 of yacc.c */ -#line 682 "glsl_parser.ypp" +#line 737 "glsl_parser.ypp" { (yyval.n) = ast_and_assign; ;} break; - case 94: + case 105: /* Line 1464 of yacc.c */ -#line 683 "glsl_parser.ypp" +#line 738 "glsl_parser.ypp" { (yyval.n) = ast_xor_assign; ;} break; - case 95: + case 106: /* Line 1464 of yacc.c */ -#line 684 "glsl_parser.ypp" +#line 739 "glsl_parser.ypp" { (yyval.n) = ast_or_assign; ;} break; - case 96: + case 107: /* Line 1464 of yacc.c */ -#line 689 "glsl_parser.ypp" +#line 744 "glsl_parser.ypp" { (yyval.expression) = (yyvsp[(1) - (1)].expression); ;} break; - case 97: + case 108: /* Line 1464 of yacc.c */ -#line 693 "glsl_parser.ypp" +#line 748 "glsl_parser.ypp" { void *ctx = state; if ((yyvsp[(1) - (3)].expression)->oper != ast_sequence) { @@ -3550,28 +3623,29 @@ yyreduce: ;} break; - case 99: + case 110: /* Line 1464 of yacc.c */ -#line 713 "glsl_parser.ypp" +#line 768 "glsl_parser.ypp" { + state->symbols->pop_scope(); (yyval.node) = (yyvsp[(1) - (2)].function); ;} break; - case 100: + case 111: /* Line 1464 of yacc.c */ -#line 717 "glsl_parser.ypp" +#line 773 "glsl_parser.ypp" { (yyval.node) = (yyvsp[(1) - (2)].declarator_list); ;} break; - case 101: + case 112: /* Line 1464 of yacc.c */ -#line 721 "glsl_parser.ypp" +#line 777 "glsl_parser.ypp" { (yyvsp[(3) - (4)].type_specifier)->precision = (yyvsp[(2) - (4)].n); (yyvsp[(3) - (4)].type_specifier)->is_precision_statement = true; @@ -3579,43 +3653,47 @@ yyreduce: ;} break; - case 105: + case 116: /* Line 1464 of yacc.c */ -#line 739 "glsl_parser.ypp" +#line 795 "glsl_parser.ypp" { (yyval.function) = (yyvsp[(1) - (2)].function); (yyval.function)->parameters.push_tail(& (yyvsp[(2) - (2)].parameter_declarator)->link); ;} break; - case 106: + case 117: /* Line 1464 of yacc.c */ -#line 744 "glsl_parser.ypp" +#line 800 "glsl_parser.ypp" { (yyval.function) = (yyvsp[(1) - (3)].function); (yyval.function)->parameters.push_tail(& (yyvsp[(3) - (3)].parameter_declarator)->link); ;} break; - case 107: + case 118: /* Line 1464 of yacc.c */ -#line 752 "glsl_parser.ypp" +#line 808 "glsl_parser.ypp" { void *ctx = state; (yyval.function) = new(ctx) ast_function(); (yyval.function)->set_location(yylloc); (yyval.function)->return_type = (yyvsp[(1) - (3)].fully_specified_type); (yyval.function)->identifier = (yyvsp[(2) - (3)].identifier); + + state->symbols->add_function((yyval.function)->identifier, + new(state) ir_function((yyvsp[(2) - (3)].identifier))); + state->symbols->push_scope(); ;} break; - case 108: + case 119: /* Line 1464 of yacc.c */ -#line 763 "glsl_parser.ypp" +#line 823 "glsl_parser.ypp" { void *ctx = state; (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); @@ -3627,10 +3705,10 @@ yyreduce: ;} break; - case 109: + case 120: /* Line 1464 of yacc.c */ -#line 773 "glsl_parser.ypp" +#line 833 "glsl_parser.ypp" { void *ctx = state; (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); @@ -3644,10 +3722,10 @@ yyreduce: ;} break; - case 110: + case 121: /* Line 1464 of yacc.c */ -#line 788 "glsl_parser.ypp" +#line 848 "glsl_parser.ypp" { (yyvsp[(1) - (3)].type_qualifier).i |= (yyvsp[(2) - (3)].type_qualifier).i; @@ -3656,20 +3734,20 @@ yyreduce: ;} break; - case 111: + case 122: /* Line 1464 of yacc.c */ -#line 795 "glsl_parser.ypp" +#line 855 "glsl_parser.ypp" { (yyval.parameter_declarator) = (yyvsp[(2) - (2)].parameter_declarator); (yyval.parameter_declarator)->type->qualifier = (yyvsp[(1) - (2)].type_qualifier).q; ;} break; - case 112: + case 123: /* Line 1464 of yacc.c */ -#line 800 "glsl_parser.ypp" +#line 860 "glsl_parser.ypp" { void *ctx = state; (yyvsp[(1) - (3)].type_qualifier).i |= (yyvsp[(2) - (3)].type_qualifier).i; @@ -3682,10 +3760,10 @@ yyreduce: ;} break; - case 113: + case 124: /* Line 1464 of yacc.c */ -#line 811 "glsl_parser.ypp" +#line 871 "glsl_parser.ypp" { void *ctx = state; (yyval.parameter_declarator) = new(ctx) ast_parameter_declarator(); @@ -3696,38 +3774,38 @@ yyreduce: ;} break; - case 114: + case 125: /* Line 1464 of yacc.c */ -#line 822 "glsl_parser.ypp" +#line 882 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; ;} break; - case 115: + case 126: /* Line 1464 of yacc.c */ -#line 823 "glsl_parser.ypp" +#line 883 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; ;} break; - case 116: + case 127: /* Line 1464 of yacc.c */ -#line 824 "glsl_parser.ypp" +#line 884 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.out = 1; ;} break; - case 117: + case 128: /* Line 1464 of yacc.c */ -#line 825 "glsl_parser.ypp" +#line 885 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; (yyval.type_qualifier).q.out = 1; ;} break; - case 120: + case 131: /* Line 1464 of yacc.c */ -#line 835 "glsl_parser.ypp" +#line 895 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (3)].identifier), false, NULL, NULL); @@ -3735,13 +3813,14 @@ yyreduce: (yyval.declarator_list) = (yyvsp[(1) - (3)].declarator_list); (yyval.declarator_list)->declarations.push_tail(&decl->link); + state->symbols->add_variable((yyvsp[(3) - (3)].identifier), new(state) ir_variable(NULL, (yyvsp[(3) - (3)].identifier), ir_var_auto)); ;} break; - case 121: + case 132: /* Line 1464 of yacc.c */ -#line 844 "glsl_parser.ypp" +#line 905 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), true, NULL, NULL); @@ -3749,13 +3828,14 @@ yyreduce: (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list); (yyval.declarator_list)->declarations.push_tail(&decl->link); + state->symbols->add_variable((yyvsp[(3) - (5)].identifier), new(state) ir_variable(NULL, (yyvsp[(3) - (5)].identifier), ir_var_auto)); ;} break; - case 122: + case 133: /* Line 1464 of yacc.c */ -#line 853 "glsl_parser.ypp" +#line 915 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (6)].identifier), true, (yyvsp[(5) - (6)].expression), NULL); @@ -3763,13 +3843,14 @@ yyreduce: (yyval.declarator_list) = (yyvsp[(1) - (6)].declarator_list); (yyval.declarator_list)->declarations.push_tail(&decl->link); + state->symbols->add_variable((yyvsp[(3) - (6)].identifier), new(state) ir_variable(NULL, (yyvsp[(3) - (6)].identifier), ir_var_auto)); ;} break; - case 123: + case 134: /* Line 1464 of yacc.c */ -#line 862 "glsl_parser.ypp" +#line 925 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (7)].identifier), true, NULL, (yyvsp[(7) - (7)].expression)); @@ -3777,13 +3858,14 @@ yyreduce: (yyval.declarator_list) = (yyvsp[(1) - (7)].declarator_list); (yyval.declarator_list)->declarations.push_tail(&decl->link); + state->symbols->add_variable((yyvsp[(3) - (7)].identifier), new(state) ir_variable(NULL, (yyvsp[(3) - (7)].identifier), ir_var_auto)); ;} break; - case 124: + case 135: /* Line 1464 of yacc.c */ -#line 871 "glsl_parser.ypp" +#line 935 "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)); @@ -3791,13 +3873,14 @@ yyreduce: (yyval.declarator_list) = (yyvsp[(1) - (8)].declarator_list); (yyval.declarator_list)->declarations.push_tail(&decl->link); + state->symbols->add_variable((yyvsp[(3) - (8)].identifier), new(state) ir_variable(NULL, (yyvsp[(3) - (8)].identifier), ir_var_auto)); ;} break; - case 125: + case 136: /* Line 1464 of yacc.c */ -#line 880 "glsl_parser.ypp" +#line 945 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(3) - (5)].identifier), false, NULL, (yyvsp[(5) - (5)].expression)); @@ -3805,13 +3888,14 @@ yyreduce: (yyval.declarator_list) = (yyvsp[(1) - (5)].declarator_list); (yyval.declarator_list)->declarations.push_tail(&decl->link); + state->symbols->add_variable((yyvsp[(3) - (5)].identifier), new(state) ir_variable(NULL, (yyvsp[(3) - (5)].identifier), ir_var_auto)); ;} break; - case 126: + case 137: /* Line 1464 of yacc.c */ -#line 893 "glsl_parser.ypp" +#line 959 "glsl_parser.ypp" { void *ctx = state; if ((yyvsp[(1) - (1)].fully_specified_type)->specifier->type_specifier != ast_struct) { @@ -3824,10 +3908,10 @@ yyreduce: ;} break; - case 127: + case 138: /* Line 1464 of yacc.c */ -#line 904 "glsl_parser.ypp" +#line 970 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL); @@ -3838,10 +3922,10 @@ yyreduce: ;} break; - case 128: + case 139: /* Line 1464 of yacc.c */ -#line 913 "glsl_parser.ypp" +#line 979 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), true, NULL, NULL); @@ -3852,10 +3936,10 @@ yyreduce: ;} break; - case 129: + case 140: /* Line 1464 of yacc.c */ -#line 922 "glsl_parser.ypp" +#line 988 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (5)].identifier), true, (yyvsp[(4) - (5)].expression), NULL); @@ -3866,10 +3950,10 @@ yyreduce: ;} break; - case 130: + case 141: /* Line 1464 of yacc.c */ -#line 931 "glsl_parser.ypp" +#line 997 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (6)].identifier), true, NULL, (yyvsp[(6) - (6)].expression)); @@ -3880,10 +3964,10 @@ yyreduce: ;} break; - case 131: + case 142: /* Line 1464 of yacc.c */ -#line 940 "glsl_parser.ypp" +#line 1006 "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)); @@ -3894,10 +3978,10 @@ yyreduce: ;} break; - case 132: + case 143: /* Line 1464 of yacc.c */ -#line 949 "glsl_parser.ypp" +#line 1015 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression)); @@ -3908,10 +3992,10 @@ yyreduce: ;} break; - case 133: + case 144: /* Line 1464 of yacc.c */ -#line 958 "glsl_parser.ypp" +#line 1024 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (2)].identifier), false, NULL, NULL); @@ -3924,10 +4008,10 @@ yyreduce: ;} break; - case 134: + case 145: /* Line 1464 of yacc.c */ -#line 972 "glsl_parser.ypp" +#line 1038 "glsl_parser.ypp" { void *ctx = state; (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type(); @@ -3936,10 +4020,10 @@ yyreduce: ;} break; - case 135: + case 146: /* Line 1464 of yacc.c */ -#line 979 "glsl_parser.ypp" +#line 1045 "glsl_parser.ypp" { void *ctx = state; (yyval.fully_specified_type) = new(ctx) ast_fully_specified_type(); @@ -3949,35 +4033,35 @@ yyreduce: ;} break; - case 136: + case 147: /* Line 1464 of yacc.c */ -#line 989 "glsl_parser.ypp" +#line 1055 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; ;} break; - case 138: + case 149: /* Line 1464 of yacc.c */ -#line 995 "glsl_parser.ypp" +#line 1061 "glsl_parser.ypp" { (yyval.type_qualifier) = (yyvsp[(3) - (4)].type_qualifier); ;} break; - case 140: + case 151: /* Line 1464 of yacc.c */ -#line 1003 "glsl_parser.ypp" +#line 1069 "glsl_parser.ypp" { (yyval.type_qualifier).i = (yyvsp[(1) - (3)].type_qualifier).i | (yyvsp[(3) - (3)].type_qualifier).i; ;} break; - case 141: + case 152: /* Line 1464 of yacc.c */ -#line 1010 "glsl_parser.ypp" +#line 1076 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; @@ -4010,139 +4094,139 @@ yyreduce: ;} break; - case 142: + case 153: /* Line 1464 of yacc.c */ -#line 1043 "glsl_parser.ypp" +#line 1109 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.smooth = 1; ;} break; - case 143: + case 154: /* Line 1464 of yacc.c */ -#line 1044 "glsl_parser.ypp" +#line 1110 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.flat = 1; ;} break; - case 144: + case 155: /* Line 1464 of yacc.c */ -#line 1045 "glsl_parser.ypp" +#line 1111 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.noperspective = 1; ;} break; - case 145: + case 156: /* Line 1464 of yacc.c */ -#line 1049 "glsl_parser.ypp" +#line 1115 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.constant = 1; ;} break; - case 147: + case 158: /* Line 1464 of yacc.c */ -#line 1055 "glsl_parser.ypp" +#line 1121 "glsl_parser.ypp" { (yyval.type_qualifier).i = (yyvsp[(1) - (2)].type_qualifier).i | (yyvsp[(2) - (2)].type_qualifier).i; ;} break; - case 148: + case 159: /* Line 1464 of yacc.c */ -#line 1059 "glsl_parser.ypp" +#line 1125 "glsl_parser.ypp" { (yyval.type_qualifier) = (yyvsp[(2) - (2)].type_qualifier); (yyval.type_qualifier).q.invariant = 1; ;} break; - case 149: + case 160: /* Line 1464 of yacc.c */ -#line 1066 "glsl_parser.ypp" +#line 1132 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.constant = 1; ;} break; - case 150: + case 161: /* Line 1464 of yacc.c */ -#line 1067 "glsl_parser.ypp" +#line 1133 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.attribute = 1; ;} break; - case 151: + case 162: /* Line 1464 of yacc.c */ -#line 1068 "glsl_parser.ypp" +#line 1134 "glsl_parser.ypp" { (yyval.type_qualifier).i = (yyvsp[(1) - (2)].type_qualifier).i; (yyval.type_qualifier).q.varying = 1; ;} break; - case 152: + case 163: /* Line 1464 of yacc.c */ -#line 1069 "glsl_parser.ypp" +#line 1135 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.varying = 1; ;} break; - case 153: + case 164: /* Line 1464 of yacc.c */ -#line 1070 "glsl_parser.ypp" +#line 1136 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.in = 1; ;} break; - case 154: + case 165: /* Line 1464 of yacc.c */ -#line 1071 "glsl_parser.ypp" +#line 1137 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.out = 1; ;} break; - case 155: + case 166: /* Line 1464 of yacc.c */ -#line 1072 "glsl_parser.ypp" +#line 1138 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.in = 1; ;} break; - case 156: + case 167: /* Line 1464 of yacc.c */ -#line 1073 "glsl_parser.ypp" +#line 1139 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.centroid = 1; (yyval.type_qualifier).q.out = 1; ;} break; - case 157: + case 168: /* Line 1464 of yacc.c */ -#line 1074 "glsl_parser.ypp" +#line 1140 "glsl_parser.ypp" { (yyval.type_qualifier).i = 0; (yyval.type_qualifier).q.uniform = 1; ;} break; - case 158: + case 169: /* Line 1464 of yacc.c */ -#line 1079 "glsl_parser.ypp" +#line 1145 "glsl_parser.ypp" { (yyval.type_specifier) = (yyvsp[(1) - (1)].type_specifier); ;} break; - case 159: + case 170: /* Line 1464 of yacc.c */ -#line 1083 "glsl_parser.ypp" +#line 1149 "glsl_parser.ypp" { (yyval.type_specifier) = (yyvsp[(2) - (2)].type_specifier); (yyval.type_specifier)->precision = (yyvsp[(1) - (2)].n); ;} break; - case 161: + case 172: /* Line 1464 of yacc.c */ -#line 1092 "glsl_parser.ypp" +#line 1158 "glsl_parser.ypp" { (yyval.type_specifier) = (yyvsp[(1) - (3)].type_specifier); (yyval.type_specifier)->is_array = true; @@ -4150,10 +4234,10 @@ yyreduce: ;} break; - case 162: + case 173: /* Line 1464 of yacc.c */ -#line 1098 "glsl_parser.ypp" +#line 1164 "glsl_parser.ypp" { (yyval.type_specifier) = (yyvsp[(1) - (4)].type_specifier); (yyval.type_specifier)->is_array = true; @@ -4161,10 +4245,10 @@ yyreduce: ;} break; - case 163: + case 174: /* Line 1464 of yacc.c */ -#line 1107 "glsl_parser.ypp" +#line 1173 "glsl_parser.ypp" { void *ctx = state; (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].n)); @@ -4172,10 +4256,10 @@ yyreduce: ;} break; - case 164: + case 175: /* Line 1464 of yacc.c */ -#line 1113 "glsl_parser.ypp" +#line 1179 "glsl_parser.ypp" { void *ctx = state; (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].struct_specifier)); @@ -4183,10 +4267,10 @@ yyreduce: ;} break; - case 165: + case 176: /* Line 1464 of yacc.c */ -#line 1119 "glsl_parser.ypp" +#line 1185 "glsl_parser.ypp" { void *ctx = state; (yyval.type_specifier) = new(ctx) ast_type_specifier((yyvsp[(1) - (1)].identifier)); @@ -4194,367 +4278,367 @@ yyreduce: ;} break; - case 166: + case 177: /* Line 1464 of yacc.c */ -#line 1127 "glsl_parser.ypp" +#line 1193 "glsl_parser.ypp" { (yyval.n) = ast_void; ;} break; - case 167: + case 178: /* Line 1464 of yacc.c */ -#line 1128 "glsl_parser.ypp" +#line 1194 "glsl_parser.ypp" { (yyval.n) = ast_float; ;} break; - case 168: + case 179: /* Line 1464 of yacc.c */ -#line 1129 "glsl_parser.ypp" +#line 1195 "glsl_parser.ypp" { (yyval.n) = ast_int; ;} break; - case 169: + case 180: /* Line 1464 of yacc.c */ -#line 1130 "glsl_parser.ypp" +#line 1196 "glsl_parser.ypp" { (yyval.n) = ast_uint; ;} break; - case 170: + case 181: /* Line 1464 of yacc.c */ -#line 1131 "glsl_parser.ypp" +#line 1197 "glsl_parser.ypp" { (yyval.n) = ast_bool; ;} break; - case 171: + case 182: /* Line 1464 of yacc.c */ -#line 1132 "glsl_parser.ypp" +#line 1198 "glsl_parser.ypp" { (yyval.n) = ast_vec2; ;} break; - case 172: + case 183: /* Line 1464 of yacc.c */ -#line 1133 "glsl_parser.ypp" +#line 1199 "glsl_parser.ypp" { (yyval.n) = ast_vec3; ;} break; - case 173: + case 184: /* Line 1464 of yacc.c */ -#line 1134 "glsl_parser.ypp" +#line 1200 "glsl_parser.ypp" { (yyval.n) = ast_vec4; ;} break; - case 174: + case 185: /* Line 1464 of yacc.c */ -#line 1135 "glsl_parser.ypp" +#line 1201 "glsl_parser.ypp" { (yyval.n) = ast_bvec2; ;} break; - case 175: + case 186: /* Line 1464 of yacc.c */ -#line 1136 "glsl_parser.ypp" +#line 1202 "glsl_parser.ypp" { (yyval.n) = ast_bvec3; ;} break; - case 176: + case 187: /* Line 1464 of yacc.c */ -#line 1137 "glsl_parser.ypp" +#line 1203 "glsl_parser.ypp" { (yyval.n) = ast_bvec4; ;} break; - case 177: + case 188: /* Line 1464 of yacc.c */ -#line 1138 "glsl_parser.ypp" +#line 1204 "glsl_parser.ypp" { (yyval.n) = ast_ivec2; ;} break; - case 178: + case 189: /* Line 1464 of yacc.c */ -#line 1139 "glsl_parser.ypp" +#line 1205 "glsl_parser.ypp" { (yyval.n) = ast_ivec3; ;} break; - case 179: + case 190: /* Line 1464 of yacc.c */ -#line 1140 "glsl_parser.ypp" +#line 1206 "glsl_parser.ypp" { (yyval.n) = ast_ivec4; ;} break; - case 180: + case 191: /* Line 1464 of yacc.c */ -#line 1141 "glsl_parser.ypp" +#line 1207 "glsl_parser.ypp" { (yyval.n) = ast_uvec2; ;} break; - case 181: + case 192: /* Line 1464 of yacc.c */ -#line 1142 "glsl_parser.ypp" +#line 1208 "glsl_parser.ypp" { (yyval.n) = ast_uvec3; ;} break; - case 182: + case 193: /* Line 1464 of yacc.c */ -#line 1143 "glsl_parser.ypp" +#line 1209 "glsl_parser.ypp" { (yyval.n) = ast_uvec4; ;} break; - case 183: + case 194: /* Line 1464 of yacc.c */ -#line 1144 "glsl_parser.ypp" +#line 1210 "glsl_parser.ypp" { (yyval.n) = ast_mat2; ;} break; - case 184: + case 195: /* Line 1464 of yacc.c */ -#line 1145 "glsl_parser.ypp" +#line 1211 "glsl_parser.ypp" { (yyval.n) = ast_mat2x3; ;} break; - case 185: + case 196: /* Line 1464 of yacc.c */ -#line 1146 "glsl_parser.ypp" +#line 1212 "glsl_parser.ypp" { (yyval.n) = ast_mat2x4; ;} break; - case 186: + case 197: /* Line 1464 of yacc.c */ -#line 1147 "glsl_parser.ypp" +#line 1213 "glsl_parser.ypp" { (yyval.n) = ast_mat3x2; ;} break; - case 187: + case 198: /* Line 1464 of yacc.c */ -#line 1148 "glsl_parser.ypp" +#line 1214 "glsl_parser.ypp" { (yyval.n) = ast_mat3; ;} break; - case 188: + case 199: /* Line 1464 of yacc.c */ -#line 1149 "glsl_parser.ypp" +#line 1215 "glsl_parser.ypp" { (yyval.n) = ast_mat3x4; ;} break; - case 189: + case 200: /* Line 1464 of yacc.c */ -#line 1150 "glsl_parser.ypp" +#line 1216 "glsl_parser.ypp" { (yyval.n) = ast_mat4x2; ;} break; - case 190: + case 201: /* Line 1464 of yacc.c */ -#line 1151 "glsl_parser.ypp" +#line 1217 "glsl_parser.ypp" { (yyval.n) = ast_mat4x3; ;} break; - case 191: + case 202: /* Line 1464 of yacc.c */ -#line 1152 "glsl_parser.ypp" +#line 1218 "glsl_parser.ypp" { (yyval.n) = ast_mat4; ;} break; - case 192: + case 203: /* Line 1464 of yacc.c */ -#line 1153 "glsl_parser.ypp" +#line 1219 "glsl_parser.ypp" { (yyval.n) = ast_sampler1d; ;} break; - case 193: + case 204: /* Line 1464 of yacc.c */ -#line 1154 "glsl_parser.ypp" +#line 1220 "glsl_parser.ypp" { (yyval.n) = ast_sampler2d; ;} break; - case 194: + case 205: /* Line 1464 of yacc.c */ -#line 1155 "glsl_parser.ypp" +#line 1221 "glsl_parser.ypp" { (yyval.n) = ast_sampler2drect; ;} break; - case 195: + case 206: /* Line 1464 of yacc.c */ -#line 1156 "glsl_parser.ypp" +#line 1222 "glsl_parser.ypp" { (yyval.n) = ast_sampler3d; ;} break; - case 196: + case 207: /* Line 1464 of yacc.c */ -#line 1157 "glsl_parser.ypp" +#line 1223 "glsl_parser.ypp" { (yyval.n) = ast_samplercube; ;} break; - case 197: + case 208: /* Line 1464 of yacc.c */ -#line 1158 "glsl_parser.ypp" +#line 1224 "glsl_parser.ypp" { (yyval.n) = ast_sampler1dshadow; ;} break; - case 198: + case 209: /* Line 1464 of yacc.c */ -#line 1159 "glsl_parser.ypp" +#line 1225 "glsl_parser.ypp" { (yyval.n) = ast_sampler2dshadow; ;} break; - case 199: + case 210: /* Line 1464 of yacc.c */ -#line 1160 "glsl_parser.ypp" +#line 1226 "glsl_parser.ypp" { (yyval.n) = ast_sampler2drectshadow; ;} break; - case 200: + case 211: /* Line 1464 of yacc.c */ -#line 1161 "glsl_parser.ypp" +#line 1227 "glsl_parser.ypp" { (yyval.n) = ast_samplercubeshadow; ;} break; - case 201: + case 212: /* Line 1464 of yacc.c */ -#line 1162 "glsl_parser.ypp" +#line 1228 "glsl_parser.ypp" { (yyval.n) = ast_sampler1darray; ;} break; - case 202: + case 213: /* Line 1464 of yacc.c */ -#line 1163 "glsl_parser.ypp" +#line 1229 "glsl_parser.ypp" { (yyval.n) = ast_sampler2darray; ;} break; - case 203: + case 214: /* Line 1464 of yacc.c */ -#line 1164 "glsl_parser.ypp" +#line 1230 "glsl_parser.ypp" { (yyval.n) = ast_sampler1darrayshadow; ;} break; - case 204: + case 215: /* Line 1464 of yacc.c */ -#line 1165 "glsl_parser.ypp" +#line 1231 "glsl_parser.ypp" { (yyval.n) = ast_sampler2darrayshadow; ;} break; - case 205: + case 216: /* Line 1464 of yacc.c */ -#line 1166 "glsl_parser.ypp" +#line 1232 "glsl_parser.ypp" { (yyval.n) = ast_isampler1d; ;} break; - case 206: + case 217: /* Line 1464 of yacc.c */ -#line 1167 "glsl_parser.ypp" +#line 1233 "glsl_parser.ypp" { (yyval.n) = ast_isampler2d; ;} break; - case 207: + case 218: /* Line 1464 of yacc.c */ -#line 1168 "glsl_parser.ypp" +#line 1234 "glsl_parser.ypp" { (yyval.n) = ast_isampler3d; ;} break; - case 208: + case 219: /* Line 1464 of yacc.c */ -#line 1169 "glsl_parser.ypp" +#line 1235 "glsl_parser.ypp" { (yyval.n) = ast_isamplercube; ;} break; - case 209: + case 220: /* Line 1464 of yacc.c */ -#line 1170 "glsl_parser.ypp" +#line 1236 "glsl_parser.ypp" { (yyval.n) = ast_isampler1darray; ;} break; - case 210: + case 221: /* Line 1464 of yacc.c */ -#line 1171 "glsl_parser.ypp" +#line 1237 "glsl_parser.ypp" { (yyval.n) = ast_isampler2darray; ;} break; - case 211: + case 222: /* Line 1464 of yacc.c */ -#line 1172 "glsl_parser.ypp" +#line 1238 "glsl_parser.ypp" { (yyval.n) = ast_usampler1d; ;} break; - case 212: + case 223: /* Line 1464 of yacc.c */ -#line 1173 "glsl_parser.ypp" +#line 1239 "glsl_parser.ypp" { (yyval.n) = ast_usampler2d; ;} break; - case 213: + case 224: /* Line 1464 of yacc.c */ -#line 1174 "glsl_parser.ypp" +#line 1240 "glsl_parser.ypp" { (yyval.n) = ast_usampler3d; ;} break; - case 214: + case 225: /* Line 1464 of yacc.c */ -#line 1175 "glsl_parser.ypp" +#line 1241 "glsl_parser.ypp" { (yyval.n) = ast_usamplercube; ;} break; - case 215: + case 226: /* Line 1464 of yacc.c */ -#line 1176 "glsl_parser.ypp" +#line 1242 "glsl_parser.ypp" { (yyval.n) = ast_usampler1darray; ;} break; - case 216: + case 227: /* Line 1464 of yacc.c */ -#line 1177 "glsl_parser.ypp" +#line 1243 "glsl_parser.ypp" { (yyval.n) = ast_usampler2darray; ;} break; - case 217: + case 228: /* Line 1464 of yacc.c */ -#line 1181 "glsl_parser.ypp" +#line 1247 "glsl_parser.ypp" { if (!state->es_shader && state->language_version < 130) _mesa_glsl_error(& (yylsp[(1) - (1)]), state, @@ -4567,10 +4651,10 @@ yyreduce: ;} break; - case 218: + case 229: /* Line 1464 of yacc.c */ -#line 1191 "glsl_parser.ypp" +#line 1257 "glsl_parser.ypp" { if (!state->es_shader && state->language_version < 130) _mesa_glsl_error(& (yylsp[(1) - (1)]), state, @@ -4583,10 +4667,10 @@ yyreduce: ;} break; - case 219: + case 230: /* Line 1464 of yacc.c */ -#line 1201 "glsl_parser.ypp" +#line 1267 "glsl_parser.ypp" { if (!state->es_shader && state->language_version < 130) _mesa_glsl_error(& (yylsp[(1) - (1)]), state, @@ -4599,21 +4683,22 @@ yyreduce: ;} break; - case 220: + case 231: /* Line 1464 of yacc.c */ -#line 1215 "glsl_parser.ypp" +#line 1281 "glsl_parser.ypp" { void *ctx = state; (yyval.struct_specifier) = new(ctx) ast_struct_specifier((yyvsp[(2) - (5)].identifier), (yyvsp[(4) - (5)].node)); (yyval.struct_specifier)->set_location(yylloc); + state->symbols->add_type((yyvsp[(2) - (5)].identifier), glsl_type::void_type); ;} break; - case 221: + case 232: /* Line 1464 of yacc.c */ -#line 1221 "glsl_parser.ypp" +#line 1288 "glsl_parser.ypp" { void *ctx = state; (yyval.struct_specifier) = new(ctx) ast_struct_specifier(NULL, (yyvsp[(3) - (4)].node)); @@ -4621,30 +4706,30 @@ yyreduce: ;} break; - case 222: + case 233: /* Line 1464 of yacc.c */ -#line 1230 "glsl_parser.ypp" +#line 1297 "glsl_parser.ypp" { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].declarator_list); (yyvsp[(1) - (1)].declarator_list)->link.self_link(); ;} break; - case 223: + case 234: /* Line 1464 of yacc.c */ -#line 1235 "glsl_parser.ypp" +#line 1302 "glsl_parser.ypp" { (yyval.node) = (ast_node *) (yyvsp[(1) - (2)].node); (yyval.node)->link.insert_before(& (yyvsp[(2) - (2)].declarator_list)->link); ;} break; - case 224: + case 235: /* Line 1464 of yacc.c */ -#line 1243 "glsl_parser.ypp" +#line 1310 "glsl_parser.ypp" { void *ctx = state; ast_fully_specified_type *type = new(ctx) ast_fully_specified_type(); @@ -4658,41 +4743,42 @@ yyreduce: ;} break; - case 225: + case 236: /* Line 1464 of yacc.c */ -#line 1258 "glsl_parser.ypp" +#line 1325 "glsl_parser.ypp" { (yyval.declaration) = (yyvsp[(1) - (1)].declaration); (yyvsp[(1) - (1)].declaration)->link.self_link(); ;} break; - case 226: + case 237: /* Line 1464 of yacc.c */ -#line 1263 "glsl_parser.ypp" +#line 1330 "glsl_parser.ypp" { (yyval.declaration) = (yyvsp[(1) - (3)].declaration); (yyval.declaration)->link.insert_before(& (yyvsp[(3) - (3)].declaration)->link); ;} break; - case 227: + case 238: /* Line 1464 of yacc.c */ -#line 1271 "glsl_parser.ypp" +#line 1338 "glsl_parser.ypp" { void *ctx = state; (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (1)].identifier), false, NULL, NULL); (yyval.declaration)->set_location(yylloc); + state->symbols->add_variable((yyvsp[(1) - (1)].identifier), new(state) ir_variable(NULL, (yyvsp[(1) - (1)].identifier), ir_var_auto)); ;} break; - case 228: + case 239: /* Line 1464 of yacc.c */ -#line 1277 "glsl_parser.ypp" +#line 1345 "glsl_parser.ypp" { void *ctx = state; (yyval.declaration) = new(ctx) ast_declaration((yyvsp[(1) - (4)].identifier), true, (yyvsp[(3) - (4)].expression), NULL); @@ -4700,31 +4786,31 @@ yyreduce: ;} break; - case 231: + case 242: /* Line 1464 of yacc.c */ -#line 1295 "glsl_parser.ypp" +#line 1363 "glsl_parser.ypp" { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;} break; - case 236: + case 247: /* Line 1464 of yacc.c */ -#line 1303 "glsl_parser.ypp" +#line 1371 "glsl_parser.ypp" { (yyval.node) = NULL; ;} break; - case 237: + case 248: /* Line 1464 of yacc.c */ -#line 1304 "glsl_parser.ypp" +#line 1372 "glsl_parser.ypp" { (yyval.node) = NULL; ;} break; - case 240: + case 251: /* Line 1464 of yacc.c */ -#line 1311 "glsl_parser.ypp" +#line 1379 "glsl_parser.ypp" { void *ctx = state; (yyval.compound_statement) = new(ctx) ast_compound_statement(true, NULL); @@ -4732,28 +4818,38 @@ yyreduce: ;} break; - case 241: + case 252: + +/* Line 1464 of yacc.c */ +#line 1385 "glsl_parser.ypp" + { + state->symbols->push_scope(); + ;} + break; + + case 253: /* Line 1464 of yacc.c */ -#line 1317 "glsl_parser.ypp" +#line 1389 "glsl_parser.ypp" { void *ctx = state; - (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(2) - (3)].node)); + (yyval.compound_statement) = new(ctx) ast_compound_statement(true, (yyvsp[(3) - (4)].node)); (yyval.compound_statement)->set_location(yylloc); + state->symbols->pop_scope(); ;} break; - case 242: + case 254: /* Line 1464 of yacc.c */ -#line 1325 "glsl_parser.ypp" +#line 1398 "glsl_parser.ypp" { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].compound_statement); ;} break; - case 244: + case 256: /* Line 1464 of yacc.c */ -#line 1331 "glsl_parser.ypp" +#line 1404 "glsl_parser.ypp" { void *ctx = state; (yyval.compound_statement) = new(ctx) ast_compound_statement(false, NULL); @@ -4761,10 +4857,10 @@ yyreduce: ;} break; - case 245: + case 257: /* Line 1464 of yacc.c */ -#line 1337 "glsl_parser.ypp" +#line 1410 "glsl_parser.ypp" { void *ctx = state; (yyval.compound_statement) = new(ctx) ast_compound_statement(false, (yyvsp[(2) - (3)].node)); @@ -4772,10 +4868,10 @@ yyreduce: ;} break; - case 246: + case 258: /* Line 1464 of yacc.c */ -#line 1346 "glsl_parser.ypp" +#line 1419 "glsl_parser.ypp" { if ((yyvsp[(1) - (1)].node) == NULL) { _mesa_glsl_error(& (yylsp[(1) - (1)]), state, "<nil> statement\n"); @@ -4787,10 +4883,10 @@ yyreduce: ;} break; - case 247: + case 259: /* Line 1464 of yacc.c */ -#line 1356 "glsl_parser.ypp" +#line 1429 "glsl_parser.ypp" { if ((yyvsp[(2) - (2)].node) == NULL) { _mesa_glsl_error(& (yylsp[(2) - (2)]), state, "<nil> statement\n"); @@ -4801,10 +4897,10 @@ yyreduce: ;} break; - case 248: + case 260: /* Line 1464 of yacc.c */ -#line 1368 "glsl_parser.ypp" +#line 1441 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_expression_statement(NULL); @@ -4812,10 +4908,10 @@ yyreduce: ;} break; - case 249: + case 261: /* Line 1464 of yacc.c */ -#line 1374 "glsl_parser.ypp" +#line 1447 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_expression_statement((yyvsp[(1) - (2)].expression)); @@ -4823,10 +4919,10 @@ yyreduce: ;} break; - case 250: + case 262: /* Line 1464 of yacc.c */ -#line 1383 "glsl_parser.ypp" +#line 1456 "glsl_parser.ypp" { (yyval.node) = new(state) ast_selection_statement((yyvsp[(3) - (5)].expression), (yyvsp[(5) - (5)].selection_rest_statement).then_statement, (yyvsp[(5) - (5)].selection_rest_statement).else_statement); @@ -4834,39 +4930,39 @@ yyreduce: ;} break; - case 251: + case 263: /* Line 1464 of yacc.c */ -#line 1392 "glsl_parser.ypp" +#line 1465 "glsl_parser.ypp" { (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (3)].node); (yyval.selection_rest_statement).else_statement = (yyvsp[(3) - (3)].node); ;} break; - case 252: + case 264: /* Line 1464 of yacc.c */ -#line 1397 "glsl_parser.ypp" +#line 1470 "glsl_parser.ypp" { (yyval.selection_rest_statement).then_statement = (yyvsp[(1) - (1)].node); (yyval.selection_rest_statement).else_statement = NULL; ;} break; - case 253: + case 265: /* Line 1464 of yacc.c */ -#line 1405 "glsl_parser.ypp" +#line 1478 "glsl_parser.ypp" { (yyval.node) = (ast_node *) (yyvsp[(1) - (1)].expression); ;} break; - case 254: + case 266: /* Line 1464 of yacc.c */ -#line 1409 "glsl_parser.ypp" +#line 1482 "glsl_parser.ypp" { void *ctx = state; ast_declaration *decl = new(ctx) ast_declaration((yyvsp[(2) - (4)].identifier), false, NULL, (yyvsp[(4) - (4)].expression)); @@ -4879,10 +4975,10 @@ yyreduce: ;} break; - case 258: + case 270: /* Line 1464 of yacc.c */ -#line 1432 "glsl_parser.ypp" +#line 1505 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_while, @@ -4891,10 +4987,10 @@ yyreduce: ;} break; - case 259: + case 271: /* Line 1464 of yacc.c */ -#line 1439 "glsl_parser.ypp" +#line 1512 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_do_while, @@ -4903,10 +4999,10 @@ yyreduce: ;} break; - case 260: + case 272: /* Line 1464 of yacc.c */ -#line 1446 "glsl_parser.ypp" +#line 1519 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_iteration_statement(ast_iteration_statement::ast_for, @@ -4915,39 +5011,39 @@ yyreduce: ;} break; - case 264: + case 276: /* Line 1464 of yacc.c */ -#line 1462 "glsl_parser.ypp" +#line 1535 "glsl_parser.ypp" { (yyval.node) = NULL; ;} break; - case 265: + case 277: /* Line 1464 of yacc.c */ -#line 1469 "glsl_parser.ypp" +#line 1542 "glsl_parser.ypp" { (yyval.for_rest_statement).cond = (yyvsp[(1) - (2)].node); (yyval.for_rest_statement).rest = NULL; ;} break; - case 266: + case 278: /* Line 1464 of yacc.c */ -#line 1474 "glsl_parser.ypp" +#line 1547 "glsl_parser.ypp" { (yyval.for_rest_statement).cond = (yyvsp[(1) - (3)].node); (yyval.for_rest_statement).rest = (yyvsp[(3) - (3)].expression); ;} break; - case 267: + case 279: /* Line 1464 of yacc.c */ -#line 1483 "glsl_parser.ypp" +#line 1556 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_continue, NULL); @@ -4955,10 +5051,10 @@ yyreduce: ;} break; - case 268: + case 280: /* Line 1464 of yacc.c */ -#line 1489 "glsl_parser.ypp" +#line 1562 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_break, NULL); @@ -4966,10 +5062,10 @@ yyreduce: ;} break; - case 269: + case 281: /* Line 1464 of yacc.c */ -#line 1495 "glsl_parser.ypp" +#line 1568 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, NULL); @@ -4977,10 +5073,10 @@ yyreduce: ;} break; - case 270: + case 282: /* Line 1464 of yacc.c */ -#line 1501 "glsl_parser.ypp" +#line 1574 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_return, (yyvsp[(2) - (3)].expression)); @@ -4988,10 +5084,10 @@ yyreduce: ;} break; - case 271: + case 283: /* Line 1464 of yacc.c */ -#line 1507 "glsl_parser.ypp" +#line 1580 "glsl_parser.ypp" { void *ctx = state; (yyval.node) = new(ctx) ast_jump_statement(ast_jump_statement::ast_discard, NULL); @@ -4999,44 +5095,46 @@ yyreduce: ;} break; - case 272: + case 284: /* Line 1464 of yacc.c */ -#line 1515 "glsl_parser.ypp" +#line 1588 "glsl_parser.ypp" { (yyval.node) = (yyvsp[(1) - (1)].function_definition); ;} break; - case 273: + case 285: /* Line 1464 of yacc.c */ -#line 1516 "glsl_parser.ypp" +#line 1589 "glsl_parser.ypp" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 274: + case 286: /* Line 1464 of yacc.c */ -#line 1517 "glsl_parser.ypp" +#line 1590 "glsl_parser.ypp" { (yyval.node) = NULL; ;} break; - case 275: + case 287: /* Line 1464 of yacc.c */ -#line 1522 "glsl_parser.ypp" +#line 1595 "glsl_parser.ypp" { void *ctx = state; (yyval.function_definition) = new(ctx) ast_function_definition(); (yyval.function_definition)->set_location(yylloc); (yyval.function_definition)->prototype = (yyvsp[(1) - (2)].function); (yyval.function_definition)->body = (yyvsp[(2) - (2)].compound_statement); + + state->symbols->pop_scope(); ;} break; /* Line 1464 of yacc.c */ -#line 5040 "glsl_parser.cpp" +#line 5138 "glsl_parser.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); diff --git a/src/glsl/glsl_parser.h b/src/glsl/glsl_parser.h index 3c6707335ea..4f4e1b79a47 100644 --- a/src/glsl/glsl_parser.h +++ b/src/glsl/glsl_parser.h @@ -112,121 +112,123 @@ VOID_TOK = 329, WHILE = 330, IDENTIFIER = 331, - FLOATCONSTANT = 332, - INTCONSTANT = 333, - UINTCONSTANT = 334, - BOOLCONSTANT = 335, - FIELD_SELECTION = 336, - LEFT_OP = 337, - RIGHT_OP = 338, - INC_OP = 339, - DEC_OP = 340, - LE_OP = 341, - GE_OP = 342, - EQ_OP = 343, - NE_OP = 344, - AND_OP = 345, - OR_OP = 346, - XOR_OP = 347, - MUL_ASSIGN = 348, - DIV_ASSIGN = 349, - ADD_ASSIGN = 350, - MOD_ASSIGN = 351, - LEFT_ASSIGN = 352, - RIGHT_ASSIGN = 353, - AND_ASSIGN = 354, - XOR_ASSIGN = 355, - OR_ASSIGN = 356, - SUB_ASSIGN = 357, - INVARIANT = 358, - LOWP = 359, - MEDIUMP = 360, - HIGHP = 361, - SUPERP = 362, - PRECISION = 363, - VERSION = 364, - EXTENSION = 365, - LINE = 366, - COLON = 367, - EOL = 368, - INTERFACE = 369, - OUTPUT = 370, - PRAGMA_DEBUG_ON = 371, - PRAGMA_DEBUG_OFF = 372, - PRAGMA_OPTIMIZE_ON = 373, - PRAGMA_OPTIMIZE_OFF = 374, - PRAGMA_INVARIANT_ALL = 375, - LAYOUT_TOK = 376, - ASM = 377, - CLASS = 378, - UNION = 379, - ENUM = 380, - TYPEDEF = 381, - TEMPLATE = 382, - THIS = 383, - PACKED_TOK = 384, - GOTO = 385, - INLINE_TOK = 386, - NOINLINE = 387, - VOLATILE = 388, - PUBLIC_TOK = 389, - STATIC = 390, - EXTERN = 391, - EXTERNAL = 392, - LONG_TOK = 393, - SHORT_TOK = 394, - DOUBLE_TOK = 395, - HALF = 396, - FIXED_TOK = 397, - UNSIGNED = 398, - INPUT_TOK = 399, - OUPTUT = 400, - HVEC2 = 401, - HVEC3 = 402, - HVEC4 = 403, - DVEC2 = 404, - DVEC3 = 405, - DVEC4 = 406, - FVEC2 = 407, - FVEC3 = 408, - FVEC4 = 409, - SAMPLER2DRECT = 410, - SAMPLER3DRECT = 411, - SAMPLER2DRECTSHADOW = 412, - SIZEOF = 413, - CAST = 414, - NAMESPACE = 415, - USING = 416, - ERROR_TOK = 417, - COMMON = 418, - PARTITION = 419, - ACTIVE = 420, - SAMPLERBUFFER = 421, - FILTER = 422, - IMAGE1D = 423, - IMAGE2D = 424, - IMAGE3D = 425, - IMAGECUBE = 426, - IMAGE1DARRAY = 427, - IMAGE2DARRAY = 428, - IIMAGE1D = 429, - IIMAGE2D = 430, - IIMAGE3D = 431, - IIMAGECUBE = 432, - IIMAGE1DARRAY = 433, - IIMAGE2DARRAY = 434, - UIMAGE1D = 435, - UIMAGE2D = 436, - UIMAGE3D = 437, - UIMAGECUBE = 438, - UIMAGE1DARRAY = 439, - UIMAGE2DARRAY = 440, - IMAGE1DSHADOW = 441, - IMAGE2DSHADOW = 442, - IMAGEBUFFER = 443, - IIMAGEBUFFER = 444, - UIMAGEBUFFER = 445, - ROW_MAJOR = 446 + TYPE_IDENTIFIER = 332, + NEW_IDENTIFIER = 333, + FLOATCONSTANT = 334, + INTCONSTANT = 335, + UINTCONSTANT = 336, + BOOLCONSTANT = 337, + FIELD_SELECTION = 338, + LEFT_OP = 339, + RIGHT_OP = 340, + INC_OP = 341, + DEC_OP = 342, + LE_OP = 343, + GE_OP = 344, + EQ_OP = 345, + NE_OP = 346, + AND_OP = 347, + OR_OP = 348, + XOR_OP = 349, + MUL_ASSIGN = 350, + DIV_ASSIGN = 351, + ADD_ASSIGN = 352, + MOD_ASSIGN = 353, + LEFT_ASSIGN = 354, + RIGHT_ASSIGN = 355, + AND_ASSIGN = 356, + XOR_ASSIGN = 357, + OR_ASSIGN = 358, + SUB_ASSIGN = 359, + INVARIANT = 360, + LOWP = 361, + MEDIUMP = 362, + HIGHP = 363, + SUPERP = 364, + PRECISION = 365, + VERSION = 366, + EXTENSION = 367, + LINE = 368, + COLON = 369, + EOL = 370, + INTERFACE = 371, + OUTPUT = 372, + PRAGMA_DEBUG_ON = 373, + PRAGMA_DEBUG_OFF = 374, + PRAGMA_OPTIMIZE_ON = 375, + PRAGMA_OPTIMIZE_OFF = 376, + PRAGMA_INVARIANT_ALL = 377, + LAYOUT_TOK = 378, + ASM = 379, + CLASS = 380, + UNION = 381, + ENUM = 382, + TYPEDEF = 383, + TEMPLATE = 384, + THIS = 385, + PACKED_TOK = 386, + GOTO = 387, + INLINE_TOK = 388, + NOINLINE = 389, + VOLATILE = 390, + PUBLIC_TOK = 391, + STATIC = 392, + EXTERN = 393, + EXTERNAL = 394, + LONG_TOK = 395, + SHORT_TOK = 396, + DOUBLE_TOK = 397, + HALF = 398, + FIXED_TOK = 399, + UNSIGNED = 400, + INPUT_TOK = 401, + OUPTUT = 402, + HVEC2 = 403, + HVEC3 = 404, + HVEC4 = 405, + DVEC2 = 406, + DVEC3 = 407, + DVEC4 = 408, + FVEC2 = 409, + FVEC3 = 410, + FVEC4 = 411, + SAMPLER2DRECT = 412, + SAMPLER3DRECT = 413, + SAMPLER2DRECTSHADOW = 414, + SIZEOF = 415, + CAST = 416, + NAMESPACE = 417, + USING = 418, + ERROR_TOK = 419, + COMMON = 420, + PARTITION = 421, + ACTIVE = 422, + SAMPLERBUFFER = 423, + FILTER = 424, + IMAGE1D = 425, + IMAGE2D = 426, + IMAGE3D = 427, + IMAGECUBE = 428, + IMAGE1DARRAY = 429, + IMAGE2DARRAY = 430, + IIMAGE1D = 431, + IIMAGE2D = 432, + IIMAGE3D = 433, + IIMAGECUBE = 434, + IIMAGE1DARRAY = 435, + IIMAGE2DARRAY = 436, + UIMAGE1D = 437, + UIMAGE2D = 438, + UIMAGE3D = 439, + UIMAGECUBE = 440, + UIMAGE1DARRAY = 441, + UIMAGE2DARRAY = 442, + IMAGE1DSHADOW = 443, + IMAGE2DSHADOW = 444, + IMAGEBUFFER = 445, + IIMAGEBUFFER = 446, + UIMAGEBUFFER = 447, + ROW_MAJOR = 448 }; #endif @@ -273,7 +275,7 @@ typedef union YYSTYPE /* Line 1685 of yacc.c */ -#line 277 "glsl_parser.h" +#line 279 "glsl_parser.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ |