From a3f878790f9f6bd2309a42399c9fefb00825e94d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branislav=20Zahradn=C3=ADk?= Date: Mon, 28 Dec 2020 14:17:22 +0100 Subject: [PATCH 1/7] Cleanup remnants after distinguising C- and perly- literals --- toke.c | 1 - 1 file changed, 1 deletion(-) diff --git a/toke.c b/toke.c index 18e342efd52b..ffe7bab4b425 100644 --- a/toke.c +++ b/toke.c @@ -2054,7 +2054,6 @@ static int S_postderef(pTHX_ int const funny, char const next) { assert(funny == DOLSHARP - || memCHRs("$@%&*", funny) || funny == PERLY_DOLLAR || funny == PERLY_SNAIL || funny == PERLY_PERCENT_SIGN From fb2ac982b74772573c6b5ac81da908a39f25d709 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branislav=20Zahradn=C3=ADk?= Date: Mon, 28 Dec 2020 14:16:29 +0100 Subject: [PATCH 2/7] Favour switch over if/else if to improve readability --- op.c | 11 ++++++----- toke.c | 13 +++++++------ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/op.c b/op.c index c17d1b07d2a7..b9217a331525 100644 --- a/op.c +++ b/op.c @@ -9191,17 +9191,18 @@ Perl_newASSIGNOP(pTHX_ I32 flags, OP *left, I32 optype, OP *right) OP *o; I32 assign_type; - if (optype) { - if (optype == OP_ANDASSIGN || optype == OP_ORASSIGN || optype == OP_DORASSIGN) { + switch (optype) { + case 0: break; + case OP_ANDASSIGN: + case OP_ORASSIGN: + case OP_DORASSIGN: right = scalar(right); return newLOGOP(optype, 0, op_lvalue(scalar(left), optype), newBINOP(OP_SASSIGN, OPpASSIGN_BACKWARDS<<8, right, right)); - } - else { + default: return newBINOP(optype, OPf_STACKED, op_lvalue(scalar(left), optype), scalar(right)); - } } if ((assign_type = assignment_type(left)) == ASSIGN_LIST) { diff --git a/toke.c b/toke.c index ffe7bab4b425..669d48036a12 100644 --- a/toke.c +++ b/toke.c @@ -535,12 +535,13 @@ S_ao(pTHX_ int toketype) { if (*PL_bufptr == '=') { PL_bufptr++; - if (toketype == ANDAND) - pl_yylval.ival = OP_ANDASSIGN; - else if (toketype == OROR) - pl_yylval.ival = OP_ORASSIGN; - else if (toketype == DORDOR) - pl_yylval.ival = OP_DORASSIGN; + + switch (toketype) { + case ANDAND: pl_yylval.ival = OP_ANDASSIGN; break; + case OROR: pl_yylval.ival = OP_ORASSIGN; break; + case DORDOR: pl_yylval.ival = OP_DORASSIGN; break; + } + toketype = ASSIGNOP; } return REPORT(toketype); From 75b7f18c030c0e12db9b8e715b0838a664c18907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branislav=20Zahradn=C3=ADk?= Date: Tue, 8 Jun 2021 17:20:16 +0200 Subject: [PATCH 3/7] Gather all MY variants into single rule --- perly.act | 198 +++++++++++++++++++++++++++--------------------------- perly.h | 8 +-- perly.tab | 112 +++++++++++++++--------------- perly.y | 7 +- 4 files changed, 163 insertions(+), 162 deletions(-) diff --git a/perly.act b/perly.act index 00192e61d72f..29a63fe871f4 100644 --- a/perly.act +++ b/perly.act @@ -1640,37 +1640,37 @@ case 2: case 211: #line 1180 "perly.y" - { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } + { (yyval.opval) = (ps[0].val.opval); } break; case 212: #line 1182 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } + { (yyval.opval) = localize((ps[0].val.opval),0); } break; case 213: #line 1184 "perly.y" - { (yyval.opval) = localize((ps[0].val.opval),0); } + { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; case 214: #line 1186 "perly.y" - { (yyval.opval) = sawparens((ps[-1].val.opval)); } + { (yyval.opval) = (ps[0].val.opval); } break; case 215: #line 1188 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } + { (yyval.opval) = sawparens(newNULLLIST()); } break; case 216: #line 1190 "perly.y" - { (yyval.opval) = sawparens(newNULLLIST()); } + { (yyval.opval) = (ps[0].val.opval); } break; @@ -1694,24 +1694,18 @@ case 2: case 220: #line 1198 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } + { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} break; case 221: #line 1200 "perly.y" - { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} + { (yyval.opval) = (ps[0].val.opval); } break; case 222: #line 1202 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } - - break; - - case 223: -#line 1204 "perly.y" { (yyval.opval) = op_prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -1724,8 +1718,8 @@ case 2: break; - case 224: -#line 1214 "perly.y" + case 223: +#line 1212 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVASLICE, 0, @@ -1738,8 +1732,8 @@ case 2: break; - case 225: -#line 1224 "perly.y" + case 224: +#line 1222 "perly.y" { (yyval.opval) = op_prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -1752,8 +1746,8 @@ case 2: break; - case 226: -#line 1234 "perly.y" + case 225: +#line 1232 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVHSLICE, 0, @@ -1766,27 +1760,27 @@ case 2: break; - case 227: -#line 1244 "perly.y" + case 226: +#line 1242 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 228: -#line 1246 "perly.y" + case 227: +#line 1244 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); } break; - case 229: -#line 1248 "perly.y" + case 228: +#line 1246 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval))); } break; - case 230: -#line 1251 "perly.y" + case 229: +#line 1249 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval)))); @@ -1794,67 +1788,73 @@ case 2: break; - case 231: -#line 1256 "perly.y" + case 230: +#line 1254 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; + case 231: +#line 1258 "perly.y" + { (yyval.opval) = newSVREF((ps[-3].val.opval)); } + + break; + case 232: #line 1260 "perly.y" - { (yyval.opval) = newSVREF((ps[-3].val.opval)); } + { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; case 233: #line 1262 "perly.y" - { (yyval.opval) = newAVREF((ps[-3].val.opval)); } + { (yyval.opval) = newHVREF((ps[-3].val.opval)); } break; case 234: #line 1264 "perly.y" - { (yyval.opval) = newHVREF((ps[-3].val.opval)); } + { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, + scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } break; case 235: -#line 1266 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, - scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } +#line 1267 "perly.y" + { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } break; case 236: #line 1269 "perly.y" - { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } + { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); + PL_hints |= HINT_BLOCK_SCOPE; } break; case 237: -#line 1271 "perly.y" - { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); - PL_hints |= HINT_BLOCK_SCOPE; } +#line 1272 "perly.y" + { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } break; case 238: #line 1274 "perly.y" - { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } + { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; case 239: #line 1276 "perly.y" - { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } + { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; case 240: #line 1278 "perly.y" - { (yyval.opval) = newOP((ps[0].val.ival), 0); } + { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; @@ -1866,81 +1866,75 @@ case 2: case 242: #line 1282 "perly.y" - { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } + { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } break; case 243: #line 1284 "perly.y" - { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } + { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } break; case 244: #line 1286 "perly.y" - { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } + { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; case 245: #line 1288 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } + { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, + op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; case 246: -#line 1290 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, - op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } +#line 1291 "perly.y" + { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; case 247: #line 1293 "perly.y" - { (yyval.opval) = newOP((ps[0].val.ival), 0); } + { (yyval.opval) = newOP((ps[-2].val.ival), 0);} break; case 248: #line 1295 "perly.y" - { (yyval.opval) = newOP((ps[-2].val.ival), 0);} + { (yyval.opval) = (ps[0].val.opval); } break; case 249: #line 1297 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } + { (yyval.opval) = (ps[-2].val.opval); } break; case 250: #line 1299 "perly.y" - { (yyval.opval) = (ps[-2].val.opval); } + { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; case 251: #line 1301 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } - - break; - - case 252: -#line 1303 "perly.y" { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT) ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0))) : newOP((ps[-2].val.ival), OPf_SPECIAL); } break; - case 253: -#line 1307 "perly.y" + case 252: +#line 1305 "perly.y" { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 254: -#line 1309 "perly.y" + case 253: +#line 1307 "perly.y" { if ( (ps[0].val.opval)->op_type != OP_TRANS && (ps[0].val.opval)->op_type != OP_TRANSR @@ -1954,116 +1948,122 @@ case 2: break; - case 255: -#line 1320 "perly.y" + case 254: +#line 1318 "perly.y" { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); } break; - case 259: -#line 1328 "perly.y" + case 258: +#line 1327 "perly.y" { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } break; - case 260: -#line 1330 "perly.y" + case 259: +#line 1329 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),1); } break; - case 261: -#line 1332 "perly.y" + case 260: +#line 1331 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); } break; + case 261: +#line 1333 "perly.y" + { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } + + break; + case 262: -#line 1337 "perly.y" +#line 1338 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; case 263: -#line 1339 "perly.y" +#line 1340 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; case 264: -#line 1342 "perly.y" +#line 1343 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 265: -#line 1344 "perly.y" +#line 1345 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 266: -#line 1346 "perly.y" +#line 1347 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 267: -#line 1351 "perly.y" +#line 1352 "perly.y" { (yyval.opval) = NULL; } break; case 268: -#line 1353 "perly.y" +#line 1354 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 269: -#line 1357 "perly.y" +#line 1358 "perly.y" { (yyval.opval) = NULL; } break; case 270: -#line 1359 "perly.y" +#line 1360 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 271: -#line 1363 "perly.y" +#line 1364 "perly.y" { (yyval.opval) = NULL; } break; case 272: -#line 1365 "perly.y" +#line 1366 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 273: -#line 1371 "perly.y" +#line 1372 "perly.y" { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } break; case 281: -#line 1388 "perly.y" +#line 1389 "perly.y" { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); } break; case 282: -#line 1392 "perly.y" +#line 1393 "perly.y" { (yyval.opval) = newSVREF((ps[0].val.opval)); } break; case 283: -#line 1396 "perly.y" +#line 1397 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } @@ -2071,7 +2071,7 @@ case 2: break; case 284: -#line 1402 "perly.y" +#line 1403 "perly.y" { (yyval.opval) = newHVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } @@ -2079,61 +2079,61 @@ case 2: break; case 285: -#line 1408 "perly.y" +#line 1409 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); } break; case 286: -#line 1410 "perly.y" +#line 1411 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; case 287: -#line 1414 "perly.y" +#line 1415 "perly.y" { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); } break; case 289: -#line 1419 "perly.y" +#line 1420 "perly.y" { (yyval.opval) = newAVREF((ps[-2].val.opval)); } break; case 291: -#line 1424 "perly.y" +#line 1425 "perly.y" { (yyval.opval) = newHVREF((ps[-2].val.opval)); } break; case 293: -#line 1429 "perly.y" +#line 1430 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); } break; case 294: -#line 1434 "perly.y" +#line 1435 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; case 295: -#line 1436 "perly.y" +#line 1437 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; case 296: -#line 1438 "perly.y" +#line 1439 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; case 297: -#line 1441 "perly.y" +#line 1442 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; @@ -2144,6 +2144,6 @@ case 2: /* Generated from: - * 427b422b0ce1154d834dc461973a3254729575694f98ab600032f67ccab7b9e5 perly.y + * 930997a2ecab41a5d780b65dcb341084a1ebf4253bedf06dba0b9c95408bc16d perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.h b/perly.h index e7917e4c404c..94fdf2dddcec 100644 --- a/perly.h +++ b/perly.h @@ -7,7 +7,7 @@ #define PERL_BISON_VERSION 30003 #ifdef PERL_CORE -/* A Bison parser, made by GNU Bison 3.3. */ +/* A Bison parser, made by GNU Bison 3.3.2. */ /* Bison interface for Yacc-like parsers in C @@ -188,7 +188,7 @@ S_is_opval_token(int type) { case QWLIST: case THING: case UNIOPSUB: - return 1; + return 1; } return 0; } @@ -200,7 +200,7 @@ union YYSTYPE { I32 ival; /* __DEFAULT__ (marker for regen_perly.pl; - must always be 1st union member) */ + must always be 1st union member) */ char *pval; OP *opval; GV *gvval; @@ -218,6 +218,6 @@ int yyparse (void); /* Generated from: - * 427b422b0ce1154d834dc461973a3254729575694f98ab600032f67ccab7b9e5 perly.y + * 930997a2ecab41a5d780b65dcb341084a1ebf4253bedf06dba0b9c95408bc16d perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.tab b/perly.tab index 91a88c5c4b64..800ed87657a1 100644 --- a/perly.tab +++ b/perly.tab @@ -94,14 +94,14 @@ static const yytype_uint16 yyrline[] = 1117, 1119, 1121, 1124, 1127, 1138, 1141, 1148, 1150, 1152, 1154, 1156, 1159, 1165, 1167, 1171, 1172, 1173, 1174, 1175, 1177, 1179, 1181, 1183, 1185, 1187, 1189, 1191, 1193, 1195, - 1197, 1199, 1201, 1203, 1213, 1223, 1233, 1243, 1245, 1247, - 1250, 1255, 1259, 1261, 1263, 1265, 1268, 1270, 1273, 1275, - 1277, 1279, 1281, 1283, 1285, 1287, 1289, 1292, 1294, 1296, - 1298, 1300, 1302, 1306, 1309, 1308, 1321, 1322, 1323, 1327, - 1329, 1331, 1336, 1338, 1341, 1343, 1345, 1350, 1352, 1356, - 1358, 1362, 1364, 1370, 1374, 1375, 1376, 1379, 1380, 1383, - 1384, 1387, 1391, 1395, 1401, 1407, 1409, 1413, 1417, 1418, - 1422, 1423, 1427, 1428, 1433, 1435, 1437, 1440 + 1197, 1199, 1201, 1211, 1221, 1231, 1241, 1243, 1245, 1248, + 1253, 1257, 1259, 1261, 1263, 1266, 1268, 1271, 1273, 1275, + 1277, 1279, 1281, 1283, 1285, 1287, 1290, 1292, 1294, 1296, + 1298, 1300, 1304, 1307, 1306, 1319, 1320, 1321, 1326, 1328, + 1330, 1332, 1337, 1339, 1342, 1344, 1346, 1351, 1353, 1357, + 1359, 1363, 1365, 1371, 1375, 1376, 1377, 1380, 1381, 1384, + 1385, 1388, 1392, 1396, 1402, 1408, 1410, 1414, 1418, 1419, + 1423, 1424, 1428, 1429, 1434, 1436, 1438, 1441 }; #endif @@ -251,22 +251,22 @@ static const yytype_uint16 yydefact[] = { 0, 2, 4, 6, 8, 10, 12, 14, 0, 18, 269, 0, 0, 0, 21, 121, 1, 21, 0, 0, - 0, 0, 0, 0, 0, 0, 256, 0, 0, 227, - 254, 215, 249, 251, 245, 91, 258, 91, 91, 237, - 247, 0, 0, 240, 267, 0, 0, 0, 0, 0, - 0, 243, 0, 0, 0, 0, 0, 0, 0, 270, - 131, 257, 222, 205, 167, 176, 168, 182, 206, 207, - 208, 134, 212, 5, 228, 217, 220, 219, 221, 218, + 0, 0, 0, 0, 0, 0, 255, 0, 0, 226, + 253, 214, 248, 250, 244, 91, 257, 91, 91, 236, + 246, 0, 0, 239, 267, 0, 0, 0, 0, 0, + 0, 242, 0, 0, 0, 0, 0, 0, 0, 270, + 131, 256, 221, 205, 167, 176, 168, 182, 206, 207, + 208, 134, 211, 5, 227, 216, 219, 218, 220, 217, 0, 0, 0, 18, 7, 67, 62, 29, 92, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 9, 0, 68, 0, 11, 26, 25, 0, 15, 116, 0, 294, 297, 296, 295, 281, 198, 0, 282, 188, 284, 189, 283, 287, 267, 0, - 0, 0, 0, 246, 0, 95, 97, 238, 0, 0, - 269, 269, 241, 242, 294, 268, 141, 295, 0, 285, - 204, 203, 0, 0, 93, 94, 267, 213, 0, 0, - 260, 264, 266, 265, 244, 239, 190, 191, 210, 195, - 196, 216, 0, 0, 0, 132, 0, 0, 0, 179, + 0, 0, 0, 245, 0, 95, 97, 237, 0, 0, + 269, 269, 240, 241, 294, 268, 141, 295, 0, 285, + 204, 203, 0, 0, 93, 94, 267, 212, 0, 0, + 259, 264, 266, 265, 243, 238, 190, 191, 210, 195, + 196, 215, 0, 0, 0, 132, 0, 0, 0, 179, 178, 0, 185, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 193, 194, 0, 0, 0, 0, 0, @@ -275,30 +275,30 @@ static const yytype_uint16 yydefact[] = 18, 42, 20, 0, 61, 0, 57, 60, 0, 0, 0, 0, 0, 0, 28, 27, 22, 102, 105, 104, 102, 112, 111, 115, 117, 122, 197, 139, 269, 0, - 0, 250, 144, 96, 97, 99, 18, 248, 252, 0, - 0, 0, 0, 135, 200, 0, 231, 0, 211, 0, - 217, 220, 219, 263, 0, 101, 259, 0, 214, 130, + 0, 249, 144, 96, 97, 99, 18, 247, 251, 0, + 0, 0, 0, 135, 200, 0, 230, 0, 261, 0, + 216, 219, 218, 263, 0, 101, 258, 0, 213, 130, 129, 133, 0, 0, 158, 0, 181, 187, 171, 164, 165, 162, 0, 173, 174, 172, 170, 169, 186, 183, 180, 177, 166, 175, 163, 0, 0, 0, 0, 291, - 289, 293, 146, 0, 0, 138, 147, 229, 0, 0, + 289, 293, 146, 0, 0, 138, 147, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 0, 31, 33, 0, 0, 83, 0, 0, 0, 279, 0, 280, 277, 0, 278, 274, 275, 276, 0, 0, 18, 0, 0, 21, 0, 79, 71, 66, 72, 85, 69, 70, 73, 74, 103, 107, 107, 113, 0, 271, 160, 267, - 18, 98, 118, 202, 253, 143, 142, 0, 199, 216, - 0, 261, 262, 100, 0, 0, 0, 151, 157, 0, - 235, 0, 0, 232, 234, 233, 236, 286, 155, 0, - 269, 230, 0, 149, 0, 223, 0, 224, 0, 16, + 18, 98, 118, 202, 252, 143, 142, 0, 199, 215, + 0, 260, 262, 100, 0, 0, 0, 151, 157, 0, + 234, 0, 0, 231, 233, 232, 235, 286, 155, 0, + 269, 229, 0, 149, 0, 222, 0, 223, 0, 16, 18, 30, 95, 97, 18, 35, 0, 0, 84, 0, 0, 86, 0, 0, 273, 18, 82, 87, 0, 0, 68, 50, 0, 0, 0, 0, 54, 108, 110, 106, 114, 140, 0, 0, 145, 0, 201, 121, 0, 119, - 136, 214, 161, 0, 154, 209, 0, 150, 156, 0, - 152, 225, 226, 148, 0, 97, 18, 58, 267, 80, + 136, 213, 161, 0, 154, 209, 0, 150, 156, 0, + 152, 224, 225, 148, 0, 97, 18, 58, 267, 80, 80, 0, 0, 0, 0, 0, 45, 0, 0, 0, - 0, 19, 18, 109, 272, 255, 21, 0, 21, 159, + 0, 19, 18, 109, 272, 254, 21, 0, 21, 159, 153, 137, 0, 18, 127, 34, 126, 21, 0, 0, 0, 75, 75, 0, 0, 78, 83, 0, 0, 40, 41, 0, 0, 120, 0, 23, 124, 32, 123, 0, @@ -511,28 +511,28 @@ static const yytype_int16 yytable[] = 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 40, 41, - 42, 43, 44, -217, 0, 45, 46, 47, 48, 49, - 50, 51, 0, 0, 207, 0, 208, -217, -217, 0, - 52, 0, 0, 0, 0, -217, -217, 0, 0, 0, + 42, 43, 44, -216, 0, 45, 46, 47, 48, 49, + 50, 51, 0, 0, 207, 0, 208, -216, -216, 0, + 52, 0, 0, 0, 0, -216, -216, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 0, 56, 57, 0, 0, 0, 0, -81, 58, 0, 0, - -217, -217, -217, -217, 0, 0, 0, -217, 0, -217, - 0, 0, 0, 0, -217, 0, 0, 0, 0, 0, - 0, -217, -217, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -217, 0, -217, -217, 0, -217, - -217, -217, -217, -217, -217, -217, -217, -217, -217, -217, - -217, -217, -217, -256, 186, 187, 0, -217, 0, 0, - -217, -217, -217, -217, -217, 0, 0, -256, -256, 0, - 0, 0, 0, 0, 0, -256, -256, 192, 193, 194, + -216, -216, -216, -216, 0, 0, 0, -216, 0, -216, + 0, 0, 0, 0, -216, 0, 0, 0, 0, 0, + 0, -216, -216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -216, 0, -216, -216, 0, -216, + -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, + -216, -216, -216, -255, 186, 187, 0, -216, 0, 0, + -216, -216, -216, -216, -216, 0, 0, -255, -255, 0, + 0, 0, 0, 0, 0, -255, -255, 192, 193, 194, 195, 196, 197, 198, 199, 200, 0, 0, 0, 0, 201, 0, 0, 202, 203, 204, 205, 0, 0, 0, - -256, -256, -256, -256, 0, 0, 0, -256, 0, -256, - 0, 0, 0, 0, -256, 0, 0, 0, 0, 0, - 0, -256, -256, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -256, 0, -256, -256, 0, -256, - -256, -256, -256, -256, -256, -256, -256, -256, -256, -256, - -256, -256, -256, 0, 0, 0, 0, -256, 0, 0, - -256, -256, -256, -256, -256, 18, 83, 0, 19, 0, + -255, -255, -255, -255, 0, 0, 0, -255, 0, -255, + 0, 0, 0, 0, -255, 0, 0, 0, 0, 0, + 0, -255, -255, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -255, 0, -255, -255, 0, -255, + -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, + -255, -255, -255, 0, 0, 0, 0, -255, 0, 0, + -255, -255, -255, -255, -255, 18, 83, 0, 19, 0, 0, 20, 0, 0, 21, 22, 23, 0, 0, 24, 25, 144, 27, 28, 29, 30, 116, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, @@ -1080,7 +1080,7 @@ static const yytype_uint8 yyr1[] = 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 192, 191, 191, 191, 191, 193, + 191, 191, 191, 192, 191, 191, 191, 191, 193, 193, 193, 193, 194, 194, 194, 194, 194, 195, 195, 196, 196, 197, 197, 198, 199, 199, 199, 200, 200, 201, 201, 202, 203, 204, 205, 206, 206, 207, 208, 208, @@ -1111,12 +1111,12 @@ static const yytype_uint8 yyr2[] = 3, 3, 1, 3, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 4, 3, 5, 4, 2, 2, 1, 1, 1, 1, 5, - 2, 3, 1, 2, 3, 1, 2, 1, 1, 1, - 1, 1, 1, 4, 4, 5, 5, 1, 1, 3, - 4, 3, 4, 4, 4, 4, 4, 1, 2, 2, - 1, 2, 2, 1, 2, 1, 2, 1, 3, 1, - 3, 1, 3, 4, 0, 6, 1, 1, 1, 3, - 2, 4, 3, 2, 1, 1, 1, 0, 1, 0, + 2, 1, 2, 3, 1, 2, 1, 1, 1, 1, + 1, 1, 4, 4, 5, 5, 1, 1, 3, 4, + 3, 4, 4, 4, 4, 4, 1, 2, 2, 1, + 2, 2, 1, 2, 1, 2, 1, 3, 1, 3, + 1, 3, 4, 0, 6, 1, 1, 1, 3, 2, + 4, 3, 3, 2, 1, 1, 1, 0, 1, 0, 1, 0, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 1, 3, 1, 3, 1, 3, 1, 1, 1, 1 @@ -1168,6 +1168,6 @@ static const toketypes yy_type_tab[] = }; /* Generated from: - * 427b422b0ce1154d834dc461973a3254729575694f98ab600032f67ccab7b9e5 perly.y + * 930997a2ecab41a5d780b65dcb341084a1ebf4253bedf06dba0b9c95408bc16d perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.y b/perly.y index 184fb0c1583d..8afbbf5ffc35 100644 --- a/perly.y +++ b/perly.y @@ -1176,8 +1176,6 @@ term[product] : termbinop { $$ = newCONDOP(0, $condition, $then, $else); } | REFGEN term[operand] /* \$x, \@y, \%z */ { $$ = newUNOP(OP_REFGEN, 0, $operand); } - | MY REFGEN term[operand] - { $$ = newUNOP(OP_REFGEN, 0, localize($operand,1)); } | myattrterm %prec UNIOP { $$ = $myattrterm; } | LOCAL term[operand] %prec UNIOP @@ -1324,12 +1322,15 @@ term[product] : termbinop ; /* "my" declarations, with optional attributes */ -myattrterm: MY myterm myattrlist +myattrterm + : MY myterm myattrlist { $$ = my_attrs($myterm,$myattrlist); } | MY myterm { $$ = localize($myterm,1); } | MY REFGEN myterm myattrlist { $$ = newUNOP(OP_REFGEN, 0, my_attrs($myterm,$myattrlist)); } + | MY REFGEN term[operand] + { $$ = newUNOP(OP_REFGEN, 0, localize($operand,1)); } ; /* Things that can be "my"'d */ From bdec9ebb9ed27d08f889f2f6ae8a42f70d892115 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branislav=20Zahradn=C3=ADk?= Date: Tue, 8 Jun 2021 17:55:22 +0200 Subject: [PATCH 4/7] Introduce rule `empty` returning NULL to save few keystrokes ... --- perly.act | 1052 +++++++++++++++------------------ perly.h | 2 +- perly.tab | 1681 +++++++++++++++++++++++++++-------------------------- perly.y | 63 +- 4 files changed, 1377 insertions(+), 1421 deletions(-) diff --git a/perly.act b/perly.act index 29a63fe871f4..c3263fd40ee1 100644 --- a/perly.act +++ b/perly.act @@ -5,7 +5,7 @@ */ case 2: -#line 138 "perly.y" +#line 139 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -14,7 +14,7 @@ case 2: break; case 3: -#line 143 "perly.y" +#line 144 "perly.y" { newPROG(block_end((ps[-1].val.ival),(ps[0].val.opval))); PL_compiling.cop_seq = 0; @@ -24,7 +24,7 @@ case 2: break; case 4: -#line 149 "perly.y" +#line 150 "perly.y" { parser->expect = XTERM; (yyval.ival) = 0; @@ -33,7 +33,7 @@ case 2: break; case 5: -#line 154 "perly.y" +#line 155 "perly.y" { PL_eval_root = (ps[0].val.opval); (yyval.ival) = 0; @@ -42,7 +42,7 @@ case 2: break; case 6: -#line 159 "perly.y" +#line 160 "perly.y" { parser->expect = XBLOCK; (yyval.ival) = 0; @@ -51,7 +51,7 @@ case 2: break; case 7: -#line 164 "perly.y" +#line 165 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[0].val.opval); @@ -63,7 +63,7 @@ case 2: break; case 8: -#line 172 "perly.y" +#line 173 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -72,7 +72,7 @@ case 2: break; case 9: -#line 177 "perly.y" +#line 178 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[0].val.opval); @@ -84,7 +84,7 @@ case 2: break; case 10: -#line 185 "perly.y" +#line 186 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -93,7 +93,7 @@ case 2: break; case 11: -#line 190 "perly.y" +#line 191 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[0].val.opval); @@ -105,7 +105,7 @@ case 2: break; case 12: -#line 198 "perly.y" +#line 199 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -114,7 +114,7 @@ case 2: break; case 13: -#line 203 "perly.y" +#line 204 "perly.y" { PL_eval_root = (ps[0].val.opval); (yyval.ival) = 0; @@ -123,7 +123,7 @@ case 2: break; case 14: -#line 208 "perly.y" +#line 209 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -132,7 +132,7 @@ case 2: break; case 15: -#line 213 "perly.y" +#line 214 "perly.y" { PL_eval_root = (ps[0].val.opval); (yyval.ival) = 0; @@ -141,7 +141,7 @@ case 2: break; case 16: -#line 221 "perly.y" +#line 222 "perly.y" { if (parser->copline > (line_t)(ps[-3].val.ival)) parser->copline = (line_t)(ps[-3].val.ival); (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval)); @@ -151,6 +151,12 @@ case 2: case 17: #line 229 "perly.y" + { (yyval.opval) = NULL; } + + break; + + case 18: +#line 234 "perly.y" { if (parser->copline > (line_t)(ps[-6].val.ival)) parser->copline = (line_t)(ps[-6].val.ival); (yyval.opval) = block_end((ps[-5].val.ival), (ps[-2].val.opval)); @@ -158,15 +164,15 @@ case 2: break; - case 18: -#line 236 "perly.y" + case 19: +#line 241 "perly.y" { (yyval.ival) = block_start(TRUE); parser->parsed_sub = 0; } break; - case 19: -#line 241 "perly.y" + case 20: +#line 246 "perly.y" { if (parser->copline > (line_t)(ps[-3].val.ival)) parser->copline = (line_t)(ps[-3].val.ival); (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval)); @@ -174,21 +180,15 @@ case 2: break; - case 20: -#line 248 "perly.y" + case 21: +#line 253 "perly.y" { (yyval.ival) = block_start(FALSE); parser->parsed_sub = 0; } break; - case 21: -#line 254 "perly.y" - { (yyval.opval) = NULL; } - - break; - - case 22: -#line 256 "perly.y" + case 23: +#line 261 "perly.y" { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval)); PL_pad_reset_pending = TRUE; if ((ps[-1].val.opval) && (ps[0].val.opval)) @@ -197,14 +197,8 @@ case 2: break; - case 23: -#line 265 "perly.y" - { (yyval.opval) = NULL; } - - break; - - case 24: -#line 267 "perly.y" + case 25: +#line 272 "perly.y" { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval)); PL_pad_reset_pending = TRUE; if ((ps[-1].val.opval) && (ps[0].val.opval)) @@ -213,22 +207,22 @@ case 2: break; - case 25: -#line 276 "perly.y" + case 26: +#line 281 "perly.y" { (yyval.opval) = (ps[0].val.opval) ? newSTATEOP(0, NULL, (ps[0].val.opval)) : NULL; } break; - case 26: -#line 280 "perly.y" + case 27: +#line 285 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 27: -#line 284 "perly.y" + case 28: +#line 289 "perly.y" { SV *label = cSVOPx_sv((ps[-1].val.opval)); (yyval.opval) = newSTATEOP(SvFLAGS(label) & SVf_UTF8, @@ -238,8 +232,8 @@ case 2: break; - case 28: -#line 291 "perly.y" + case 29: +#line 296 "perly.y" { SV *label = cSVOPx_sv((ps[-1].val.opval)); (yyval.opval) = newSTATEOP(SvFLAGS(label) & SVf_UTF8, @@ -249,14 +243,14 @@ case 2: break; - case 29: -#line 301 "perly.y" + case 30: +#line 306 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 30: -#line 303 "perly.y" + case 31: +#line 308 "perly.y" { CV *fmtcv = PL_compcv; newFORM((ps[-2].val.ival), (ps[-1].val.opval), (ps[0].val.opval)); @@ -269,8 +263,8 @@ case 2: break; - case 31: -#line 315 "perly.y" + case 32: +#line 320 "perly.y" { init_named_cv(PL_compcv, (ps[-1].val.opval)); parser->in_my = 0; @@ -279,8 +273,8 @@ case 2: break; - case 32: -#line 321 "perly.y" + case 33: +#line 326 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (ps[-5].val.opval)->op_type == OP_CONST @@ -294,8 +288,8 @@ case 2: break; - case 33: -#line 336 "perly.y" + case 34: +#line 341 "perly.y" { init_named_cv(PL_compcv, (ps[-1].val.opval)); parser->in_my = 0; @@ -304,8 +298,8 @@ case 2: break; - case 34: -#line 342 "perly.y" + case 35: +#line 347 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (ps[-4].val.opval)->op_type == OP_CONST @@ -319,8 +313,8 @@ case 2: break; - case 35: -#line 353 "perly.y" + case 36: +#line 358 "perly.y" { package((ps[-1].val.opval)); if ((ps[-2].val.opval)) @@ -330,14 +324,14 @@ case 2: break; - case 36: -#line 360 "perly.y" + case 37: +#line 365 "perly.y" { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ } break; - case 37: -#line 362 "perly.y" + case 38: +#line 367 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); utilize((ps[-6].val.ival), (ps[-5].val.ival), (ps[-3].val.opval), (ps[-2].val.opval), (ps[-1].val.opval)); @@ -347,8 +341,8 @@ case 2: break; - case 38: -#line 369 "perly.y" + case 39: +#line 374 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newCONDOP(0, (ps[-3].val.opval), op_scope((ps[-1].val.opval)), (ps[0].val.opval))); @@ -357,8 +351,8 @@ case 2: break; - case 39: -#line 375 "perly.y" + case 40: +#line 380 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newCONDOP(0, (ps[-3].val.opval), (ps[0].val.opval), op_scope((ps[-1].val.opval)))); @@ -367,8 +361,8 @@ case 2: break; - case 40: -#line 381 "perly.y" + case 41: +#line 386 "perly.y" { (yyval.opval) = block_end((ps[-3].val.ival), newGIVENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)), 0)); parser->copline = (line_t)(ps[-5].val.ival); @@ -376,20 +370,20 @@ case 2: break; - case 41: -#line 386 "perly.y" + case 42: +#line 391 "perly.y" { (yyval.opval) = block_end((ps[-3].val.ival), newWHENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)))); } break; - case 42: -#line 388 "perly.y" + case 43: +#line 393 "perly.y" { (yyval.opval) = newWHENOP(0, op_scope((ps[0].val.opval))); } break; - case 43: -#line 390 "perly.y" + case 44: +#line 395 "perly.y" { (yyval.opval) = block_end((ps[-5].val.ival), newWHILEOP(0, 1, NULL, @@ -399,8 +393,8 @@ case 2: break; - case 44: -#line 397 "perly.y" + case 45: +#line 402 "perly.y" { (yyval.opval) = block_end((ps[-5].val.ival), newWHILEOP(0, 1, NULL, @@ -410,20 +404,20 @@ case 2: break; - case 45: -#line 404 "perly.y" + case 46: +#line 409 "perly.y" { parser->expect = XTERM; } break; - case 46: -#line 406 "perly.y" + case 47: +#line 411 "perly.y" { parser->expect = XTERM; } break; - case 47: -#line 409 "perly.y" + case 48: +#line 414 "perly.y" { OP *initop = (ps[-9].val.opval); OP *forop = newWHILEOP(0, 1, NULL, @@ -441,8 +435,8 @@ case 2: break; - case 48: -#line 424 "perly.y" + case 49: +#line 429 "perly.y" { (yyval.opval) = block_end((ps[-6].val.ival), newFOROP(0, (ps[-5].val.opval), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); parser->copline = (line_t)(ps[-8].val.ival); @@ -450,8 +444,8 @@ case 2: break; - case 49: -#line 429 "perly.y" + case 50: +#line 434 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0, op_lvalue((ps[-6].val.opval), OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); @@ -460,14 +454,14 @@ case 2: break; - case 50: -#line 435 "perly.y" + case 51: +#line 440 "perly.y" { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } break; - case 51: -#line 437 "perly.y" + case 52: +#line 442 "perly.y" { (yyval.opval) = block_end( (ps[-7].val.ival), @@ -483,8 +477,8 @@ case 2: break; - case 52: -#line 450 "perly.y" + case 53: +#line 455 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newFOROP( 0, op_lvalue(newUNOP(OP_REFGEN, 0, @@ -495,8 +489,8 @@ case 2: break; - case 53: -#line 458 "perly.y" + case 54: +#line 463 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0, NULL, (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); @@ -505,20 +499,20 @@ case 2: break; - case 54: -#line 464 "perly.y" + case 55: +#line 469 "perly.y" { parser->in_my = 1; } break; - case 55: -#line 466 "perly.y" + case 56: +#line 471 "perly.y" { parser->in_my = 0; intro_my(); } break; - case 56: -#line 468 "perly.y" + case 57: +#line 473 "perly.y" { (yyval.opval) = newTRYCATCHOP(0, (ps[-8].val.opval), (ps[-3].val.opval), block_end((ps[-4].val.ival), op_scope((ps[0].val.opval)))); @@ -526,8 +520,8 @@ case 2: break; - case 57: -#line 473 "perly.y" + case 58: +#line 478 "perly.y" { /* a block is a loop that happens once */ (yyval.opval) = newWHILEOP(0, 1, NULL, @@ -536,8 +530,8 @@ case 2: break; - case 58: -#line 479 "perly.y" + case 59: +#line 484 "perly.y" { package((ps[-2].val.opval)); if ((ps[-3].val.opval)) { @@ -547,8 +541,8 @@ case 2: break; - case 59: -#line 486 "perly.y" + case 60: +#line 491 "perly.y" { /* a block is a loop that happens once */ (yyval.opval) = newWHILEOP(0, 1, NULL, @@ -559,16 +553,16 @@ case 2: break; - case 60: -#line 494 "perly.y" + case 61: +#line 499 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; - case 61: -#line 498 "perly.y" + case 62: +#line 503 "perly.y" { (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); @@ -576,8 +570,8 @@ case 2: break; - case 62: -#line 503 "perly.y" + case 63: +#line 508 "perly.y" { (yyval.opval) = NULL; parser->copline = NOLINE; @@ -585,8 +579,8 @@ case 2: break; - case 63: -#line 511 "perly.y" + case 64: +#line 516 "perly.y" { OP *list; if ((ps[0].val.opval)) { OP *term = (ps[0].val.opval); @@ -604,75 +598,63 @@ case 2: break; - case 64: -#line 528 "perly.y" - { (yyval.opval) = NULL; } - - break; - - case 65: -#line 530 "perly.y" + case 66: +#line 535 "perly.y" { (yyval.opval) = op_unscope((ps[-1].val.opval)); } break; - case 67: -#line 538 "perly.y" + case 68: +#line 543 "perly.y" { (yyval.opval) = NULL; } break; - case 68: -#line 540 "perly.y" + case 69: +#line 545 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 69: -#line 542 "perly.y" + case 70: +#line 547 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[0].val.opval), (ps[-2].val.opval)); } break; - case 70: -#line 544 "perly.y" + case 71: +#line 549 "perly.y" { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[0].val.opval), (ps[-2].val.opval)); } break; - case 71: -#line 546 "perly.y" + case 72: +#line 551 "perly.y" { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[0].val.opval)), (ps[-2].val.opval)); } break; - case 72: -#line 548 "perly.y" + case 73: +#line 553 "perly.y" { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[0].val.opval), (ps[-2].val.opval)); } break; - case 73: -#line 550 "perly.y" + case 74: +#line 555 "perly.y" { (yyval.opval) = newFOROP(0, NULL, (ps[0].val.opval), (ps[-2].val.opval), NULL); parser->copline = (line_t)(ps[-1].val.ival); } break; - case 74: -#line 553 "perly.y" - { (yyval.opval) = newWHENOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); } - - break; - case 75: #line 558 "perly.y" - { (yyval.opval) = NULL; } + { (yyval.opval) = newWHENOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); } break; - case 76: -#line 560 "perly.y" + case 77: +#line 565 "perly.y" { ((ps[0].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = op_scope((ps[0].val.opval)); @@ -680,8 +662,8 @@ case 2: break; - case 77: -#line 565 "perly.y" + case 78: +#line 570 "perly.y" { parser->copline = (line_t)(ps[-5].val.ival); (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[-3].val.opval)), @@ -691,153 +673,123 @@ case 2: break; - case 78: -#line 575 "perly.y" - { (yyval.opval) = NULL; } - - break; - - case 79: -#line 577 "perly.y" + case 80: +#line 582 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; - case 80: -#line 582 "perly.y" + case 81: +#line 587 "perly.y" { (yyval.ival) = (PL_min_intro_pending && PL_max_intro_pending >= PL_min_intro_pending); intro_my(); } break; - case 81: -#line 588 "perly.y" - { (yyval.opval) = NULL; } - - break; - - case 83: -#line 594 "perly.y" + case 84: +#line 599 "perly.y" { YYSTYPE tmplval; (void)scan_num("1", &tmplval); (yyval.opval) = tmplval.opval; } break; - case 85: -#line 602 "perly.y" - { (yyval.opval) = invert(scalar((ps[0].val.opval))); } - - break; - case 86: #line 607 "perly.y" - { (yyval.opval) = (ps[0].val.opval); intro_my(); } + { (yyval.opval) = invert(scalar((ps[0].val.opval))); } break; case 87: -#line 611 "perly.y" +#line 612 "perly.y" { (yyval.opval) = (ps[0].val.opval); intro_my(); } break; case 88: -#line 614 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } +#line 616 "perly.y" + { (yyval.opval) = (ps[0].val.opval); intro_my(); } break; case 89: -#line 615 "perly.y" - { (yyval.opval) = NULL; } - - break; - - case 90: #line 619 "perly.y" - { (yyval.ival) = start_subparse(FALSE, 0); - SAVEFREESV(PL_compcv); } + { (yyval.opval) = (ps[0].val.opval); } break; case 91: -#line 625 "perly.y" - { (yyval.ival) = start_subparse(FALSE, CVf_ANON); +#line 624 "perly.y" + { (yyval.ival) = start_subparse(FALSE, 0); SAVEFREESV(PL_compcv); } break; case 92: #line 630 "perly.y" - { (yyval.ival) = start_subparse(TRUE, 0); + { (yyval.ival) = start_subparse(FALSE, CVf_ANON); SAVEFREESV(PL_compcv); } break; - case 95: -#line 641 "perly.y" - { (yyval.opval) = NULL; } - - break; - - case 97: -#line 647 "perly.y" - { (yyval.opval) = NULL; } + case 93: +#line 635 "perly.y" + { (yyval.ival) = start_subparse(TRUE, 0); + SAVEFREESV(PL_compcv); } break; - case 98: -#line 649 "perly.y" + case 99: +#line 654 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 99: -#line 651 "perly.y" + case 100: +#line 656 "perly.y" { (yyval.opval) = NULL; } break; - case 100: -#line 656 "perly.y" + case 101: +#line 661 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 101: -#line 658 "perly.y" + case 102: +#line 663 "perly.y" { (yyval.opval) = NULL; } break; - case 102: -#line 669 "perly.y" + case 103: +#line 674 "perly.y" { parser->in_my = 0; (yyval.opval) = NULL; } break; - case 103: -#line 671 "perly.y" + case 104: +#line 676 "perly.y" { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); } break; - case 104: -#line 676 "perly.y" + case 105: +#line 681 "perly.y" { (yyval.ival) = '@'; } break; - case 105: -#line 678 "perly.y" + case 106: +#line 683 "perly.y" { (yyval.ival) = '%'; } break; - case 106: -#line 682 "perly.y" + case 107: +#line 687 "perly.y" { I32 sigil = (ps[-2].val.ival); OP *var = (ps[-1].val.opval); @@ -856,26 +808,20 @@ case 2: break; - case 107: -#line 701 "perly.y" - { (yyval.opval) = NULL; } - - break; - - case 108: -#line 703 "perly.y" + case 109: +#line 708 "perly.y" { (yyval.opval) = newOP(OP_NULL, 0); } break; - case 109: -#line 705 "perly.y" + case 110: +#line 710 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 110: -#line 711 "perly.y" + case 111: +#line 716 "perly.y" { OP *var = (ps[-1].val.opval); OP *defexpr = (ps[0].val.opval); @@ -939,70 +885,58 @@ case 2: break; - case 111: -#line 776 "perly.y" + case 112: +#line 781 "perly.y" { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } break; - case 112: -#line 778 "perly.y" + case 113: +#line 783 "perly.y" { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } break; - case 113: -#line 784 "perly.y" + case 114: +#line 789 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; - case 114: -#line 786 "perly.y" + case 115: +#line 791 "perly.y" { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 115: -#line 790 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } - - break; - case 116: #line 795 "perly.y" - { (yyval.opval) = NULL; } - - break; - - case 117: -#line 797 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 118: -#line 801 "perly.y" - { (yyval.opval) = NULL; } +#line 802 "perly.y" + { (yyval.opval) = (ps[0].val.opval); } break; - case 119: -#line 803 "perly.y" + case 120: +#line 808 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 120: -#line 807 "perly.y" + case 121: +#line 812 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; - case 121: -#line 810 "perly.y" + case 122: +#line 815 "perly.y" { ENTER; SAVEIV(parser->sig_elems); @@ -1016,8 +950,8 @@ case 2: break; - case 122: -#line 821 "perly.y" + case 123: +#line 826 "perly.y" { OP *sigops = (ps[0].val.opval); struct op_argcheck_aux *aux; @@ -1075,20 +1009,20 @@ case 2: break; - case 123: -#line 878 "perly.y" + case 124: +#line 883 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 124: -#line 879 "perly.y" + case 125: +#line 884 "perly.y" { (yyval.opval) = NULL; } break; - case 125: -#line 885 "perly.y" + case 126: +#line 890 "perly.y" { if (parser->copline > (line_t)(ps[-2].val.ival)) parser->copline = (line_t)(ps[-2].val.ival); @@ -1097,20 +1031,20 @@ case 2: break; - case 126: -#line 895 "perly.y" + case 127: +#line 900 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 127: -#line 896 "perly.y" + case 128: +#line 901 "perly.y" { (yyval.opval) = NULL; } break; - case 128: -#line 900 "perly.y" + case 129: +#line 905 "perly.y" { if (parser->copline > (line_t)(ps[-2].val.ival)) parser->copline = (line_t)(ps[-2].val.ival); @@ -1120,26 +1054,26 @@ case 2: break; - case 129: -#line 911 "perly.y" + case 130: +#line 916 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 130: -#line 913 "perly.y" + case 131: +#line 918 "perly.y" { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 132: -#line 919 "perly.y" + case 133: +#line 924 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; - case 133: -#line 921 "perly.y" + case 134: +#line 926 "perly.y" { OP* term = (ps[0].val.opval); (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term); @@ -1147,24 +1081,24 @@ case 2: break; - case 135: -#line 930 "perly.y" + case 136: +#line 935 "perly.y" { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) ); } break; - case 136: -#line 934 "perly.y" + case 137: +#line 939 "perly.y" { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) ); } break; - case 137: -#line 938 "perly.y" + case 138: +#line 943 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)), @@ -1173,8 +1107,8 @@ case 2: break; - case 138: -#line 944 "perly.y" + case 139: +#line 949 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, scalar((ps[-2].val.opval)), newMETHOP(OP_METHOD, 0, (ps[0].val.opval)))); @@ -1182,8 +1116,8 @@ case 2: break; - case 139: -#line 949 "perly.y" + case 140: +#line 954 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), @@ -1192,8 +1126,8 @@ case 2: break; - case 140: -#line 955 "perly.y" + case 141: +#line 960 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)), @@ -1202,33 +1136,33 @@ case 2: break; - case 141: -#line 961 "perly.y" + case 142: +#line 966 "perly.y" { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 142: -#line 963 "perly.y" + case 143: +#line 968 "perly.y" { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 143: -#line 965 "perly.y" + case 144: +#line 970 "perly.y" { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 144: -#line 967 "perly.y" + case 145: +#line 972 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, NULL, (ps[0].val.opval)); } break; - case 145: -#line 970 "perly.y" + case 146: +#line 975 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval))); @@ -1236,21 +1170,21 @@ case 2: break; - case 148: -#line 985 "perly.y" + case 149: +#line 990 "perly.y" { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); } break; - case 149: -#line 987 "perly.y" + case 150: +#line 992 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval))); } break; - case 150: -#line 990 "perly.y" + case 151: +#line 995 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[-4].val.opval)),OP_RV2AV), scalar((ps[-1].val.opval))); @@ -1258,8 +1192,8 @@ case 2: break; - case 151: -#line 995 "perly.y" + case 152: +#line 1000 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[-3].val.opval)),OP_RV2AV), scalar((ps[-1].val.opval))); @@ -1267,31 +1201,31 @@ case 2: break; - case 152: -#line 1000 "perly.y" + case 153: +#line 1005 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval))); } break; - case 153: -#line 1003 "perly.y" + case 154: +#line 1008 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-5].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } break; - case 154: -#line 1007 "perly.y" + case 155: +#line 1012 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-4].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } break; - case 155: -#line 1011 "perly.y" + case 156: +#line 1016 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[-3].val.opval)))); if (parser->expect == XBLOCK) @@ -1300,8 +1234,8 @@ case 2: break; - case 156: -#line 1017 "perly.y" + case 157: +#line 1022 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), newCVREF(0, scalar((ps[-4].val.opval))))); @@ -1311,8 +1245,8 @@ case 2: break; - case 157: -#line 1025 "perly.y" + case 158: +#line 1030 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), newCVREF(0, scalar((ps[-3].val.opval))))); @@ -1322,8 +1256,8 @@ case 2: break; - case 158: -#line 1032 "perly.y" + case 159: +#line 1037 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[-2].val.opval)))); if (parser->expect == XBLOCK) @@ -1332,38 +1266,38 @@ case 2: break; - case 159: -#line 1038 "perly.y" + case 160: +#line 1043 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); } break; - case 160: -#line 1040 "perly.y" + case 161: +#line 1045 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); } break; - case 161: -#line 1042 "perly.y" + case 162: +#line 1047 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); } break; - case 162: -#line 1047 "perly.y" + case 163: +#line 1052 "perly.y" { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); } break; - case 163: -#line 1049 "perly.y" + case 164: +#line 1054 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 164: -#line 1051 "perly.y" + case 165: +#line 1056 "perly.y" { if ((ps[-1].val.ival) != OP_REPEAT) scalar((ps[-2].val.opval)); (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval))); @@ -1371,184 +1305,184 @@ case 2: break; - case 165: -#line 1056 "perly.y" - { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } - - break; - case 166: -#line 1058 "perly.y" +#line 1061 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 167: -#line 1060 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } +#line 1063 "perly.y" + { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 168: -#line 1062 "perly.y" +#line 1065 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 169: -#line 1064 "perly.y" - { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } +#line 1067 "perly.y" + { (yyval.opval) = (ps[0].val.opval); } break; case 170: -#line 1066 "perly.y" +#line 1069 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 171: -#line 1068 "perly.y" - { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } +#line 1071 "perly.y" + { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 172: -#line 1070 "perly.y" - { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } +#line 1073 "perly.y" + { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 173: -#line 1072 "perly.y" - { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } +#line 1075 "perly.y" + { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 174: -#line 1074 "perly.y" - { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } +#line 1077 "perly.y" + { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 175: -#line 1076 "perly.y" - { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } +#line 1079 "perly.y" + { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 176: -#line 1080 "perly.y" - { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } +#line 1081 "perly.y" + { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 177: -#line 1082 "perly.y" - { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } +#line 1085 "perly.y" + { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } break; case 178: -#line 1084 "perly.y" - { yyerror("syntax error"); YYERROR; } +#line 1087 "perly.y" + { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 179: -#line 1086 "perly.y" +#line 1089 "perly.y" { yyerror("syntax error"); YYERROR; } break; case 180: -#line 1090 "perly.y" - { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } +#line 1091 "perly.y" + { yyerror("syntax error"); YYERROR; } break; case 181: -#line 1092 "perly.y" - { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } +#line 1095 "perly.y" + { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 182: -#line 1096 "perly.y" - { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } +#line 1097 "perly.y" + { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 183: -#line 1098 "perly.y" - { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } +#line 1101 "perly.y" + { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } break; case 184: -#line 1100 "perly.y" - { yyerror("syntax error"); YYERROR; } +#line 1103 "perly.y" + { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 185: -#line 1102 "perly.y" +#line 1105 "perly.y" { yyerror("syntax error"); YYERROR; } break; case 186: -#line 1106 "perly.y" - { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } +#line 1107 "perly.y" + { yyerror("syntax error"); YYERROR; } break; case 187: -#line 1108 "perly.y" - { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } +#line 1111 "perly.y" + { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 188: #line 1113 "perly.y" - { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); } + { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 189: -#line 1115 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } +#line 1118 "perly.y" + { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); } break; case 190: -#line 1118 "perly.y" - { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } +#line 1120 "perly.y" + { (yyval.opval) = (ps[0].val.opval); } break; case 191: -#line 1120 "perly.y" - { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); } +#line 1123 "perly.y" + { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; case 192: -#line 1122 "perly.y" +#line 1125 "perly.y" + { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); } + + break; + + case 193: +#line 1127 "perly.y" { (yyval.opval) = newUNOP(OP_POSTINC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); } break; - case 193: -#line 1125 "perly.y" + case 194: +#line 1130 "perly.y" { (yyval.opval) = newUNOP(OP_POSTDEC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));} break; - case 194: -#line 1128 "perly.y" + case 195: +#line 1133 "perly.y" { (yyval.opval) = op_convert_list(OP_JOIN, 0, op_append_elem( OP_LIST, @@ -1562,150 +1496,150 @@ case 2: break; - case 195: -#line 1139 "perly.y" + case 196: +#line 1144 "perly.y" { (yyval.opval) = newUNOP(OP_PREINC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); } break; - case 196: -#line 1142 "perly.y" + case 197: +#line 1147 "perly.y" { (yyval.opval) = newUNOP(OP_PREDEC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); } break; - case 197: -#line 1149 "perly.y" + case 198: +#line 1154 "perly.y" { (yyval.opval) = newANONLIST((ps[-1].val.opval)); } break; - case 198: -#line 1151 "perly.y" + case 199: +#line 1156 "perly.y" { (yyval.opval) = newANONLIST(NULL);} break; - case 199: -#line 1153 "perly.y" + case 200: +#line 1158 "perly.y" { (yyval.opval) = newANONHASH((ps[-2].val.opval)); } break; - case 200: -#line 1155 "perly.y" + case 201: +#line 1160 "perly.y" { (yyval.opval) = newANONHASH(NULL); } break; - case 201: -#line 1157 "perly.y" + case 202: +#line 1162 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); } break; - case 202: -#line 1160 "perly.y" + case 203: +#line 1165 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); } break; - case 203: -#line 1166 "perly.y" + case 204: +#line 1171 "perly.y" { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));} break; - case 204: -#line 1168 "perly.y" + case 205: +#line 1173 "perly.y" { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));} break; - case 209: -#line 1176 "perly.y" - { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } - - break; - case 210: -#line 1178 "perly.y" - { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } +#line 1181 "perly.y" + { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 211: -#line 1180 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } +#line 1183 "perly.y" + { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } break; case 212: -#line 1182 "perly.y" - { (yyval.opval) = localize((ps[0].val.opval),0); } +#line 1185 "perly.y" + { (yyval.opval) = (ps[0].val.opval); } break; case 213: -#line 1184 "perly.y" - { (yyval.opval) = sawparens((ps[-1].val.opval)); } +#line 1187 "perly.y" + { (yyval.opval) = localize((ps[0].val.opval),0); } break; case 214: -#line 1186 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } +#line 1189 "perly.y" + { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; case 215: -#line 1188 "perly.y" - { (yyval.opval) = sawparens(newNULLLIST()); } +#line 1191 "perly.y" + { (yyval.opval) = (ps[0].val.opval); } break; case 216: -#line 1190 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } +#line 1193 "perly.y" + { (yyval.opval) = sawparens(newNULLLIST()); } break; case 217: -#line 1192 "perly.y" +#line 1195 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 218: -#line 1194 "perly.y" +#line 1197 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 219: -#line 1196 "perly.y" +#line 1199 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 220: -#line 1198 "perly.y" - { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} +#line 1201 "perly.y" + { (yyval.opval) = (ps[0].val.opval); } break; case 221: -#line 1200 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } +#line 1203 "perly.y" + { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} break; case 222: -#line 1202 "perly.y" +#line 1205 "perly.y" + { (yyval.opval) = (ps[0].val.opval); } + + break; + + case 223: +#line 1207 "perly.y" { (yyval.opval) = op_prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -1718,8 +1652,8 @@ case 2: break; - case 223: -#line 1212 "perly.y" + case 224: +#line 1217 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVASLICE, 0, @@ -1732,8 +1666,8 @@ case 2: break; - case 224: -#line 1222 "perly.y" + case 225: +#line 1227 "perly.y" { (yyval.opval) = op_prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -1746,8 +1680,8 @@ case 2: break; - case 225: -#line 1232 "perly.y" + case 226: +#line 1237 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVHSLICE, 0, @@ -1760,27 +1694,27 @@ case 2: break; - case 226: -#line 1242 "perly.y" + case 227: +#line 1247 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 227: -#line 1244 "perly.y" + case 228: +#line 1249 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); } break; - case 228: -#line 1246 "perly.y" + case 229: +#line 1251 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval))); } break; - case 229: -#line 1249 "perly.y" + case 230: +#line 1254 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval)))); @@ -1788,153 +1722,153 @@ case 2: break; - case 230: -#line 1254 "perly.y" + case 231: +#line 1259 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; - case 231: -#line 1258 "perly.y" + case 232: +#line 1263 "perly.y" { (yyval.opval) = newSVREF((ps[-3].val.opval)); } break; - case 232: -#line 1260 "perly.y" + case 233: +#line 1265 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 233: -#line 1262 "perly.y" + case 234: +#line 1267 "perly.y" { (yyval.opval) = newHVREF((ps[-3].val.opval)); } break; - case 234: -#line 1264 "perly.y" + case 235: +#line 1269 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } break; - case 235: -#line 1267 "perly.y" + case 236: +#line 1272 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } break; - case 236: -#line 1269 "perly.y" + case 237: +#line 1274 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); PL_hints |= HINT_BLOCK_SCOPE; } break; - case 237: -#line 1272 "perly.y" + case 238: +#line 1277 "perly.y" { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 238: -#line 1274 "perly.y" + case 239: +#line 1279 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; - case 239: -#line 1276 "perly.y" + case 240: +#line 1281 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 240: -#line 1278 "perly.y" + case 241: +#line 1283 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 241: -#line 1280 "perly.y" + case 242: +#line 1285 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 242: -#line 1282 "perly.y" + case 243: +#line 1287 "perly.y" { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } break; - case 243: -#line 1284 "perly.y" + case 244: +#line 1289 "perly.y" { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } break; - case 244: -#line 1286 "perly.y" + case 245: +#line 1291 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 245: -#line 1288 "perly.y" + case 246: +#line 1293 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; - case 246: -#line 1291 "perly.y" + case 247: +#line 1296 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 247: -#line 1293 "perly.y" + case 248: +#line 1298 "perly.y" { (yyval.opval) = newOP((ps[-2].val.ival), 0);} break; - case 248: -#line 1295 "perly.y" + case 249: +#line 1300 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 249: -#line 1297 "perly.y" + case 250: +#line 1302 "perly.y" { (yyval.opval) = (ps[-2].val.opval); } break; - case 250: -#line 1299 "perly.y" + case 251: +#line 1304 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 251: -#line 1301 "perly.y" + case 252: +#line 1306 "perly.y" { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT) ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0))) : newOP((ps[-2].val.ival), OPf_SPECIAL); } break; - case 252: -#line 1305 "perly.y" + case 253: +#line 1310 "perly.y" { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 253: -#line 1307 "perly.y" + case 254: +#line 1312 "perly.y" { if ( (ps[0].val.opval)->op_type != OP_TRANS && (ps[0].val.opval)->op_type != OP_TRANSR @@ -1948,192 +1882,174 @@ case 2: break; - case 254: -#line 1318 "perly.y" + case 255: +#line 1323 "perly.y" { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); } break; - case 258: -#line 1327 "perly.y" - { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } - - break; - case 259: -#line 1329 "perly.y" - { (yyval.opval) = localize((ps[0].val.opval),1); } +#line 1332 "perly.y" + { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } break; case 260: -#line 1331 "perly.y" - { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); } +#line 1334 "perly.y" + { (yyval.opval) = localize((ps[0].val.opval),1); } break; case 261: -#line 1333 "perly.y" - { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } +#line 1336 "perly.y" + { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); } break; case 262: #line 1338 "perly.y" - { (yyval.opval) = sawparens((ps[-1].val.opval)); } + { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } break; case 263: -#line 1340 "perly.y" - { (yyval.opval) = sawparens(newNULLLIST()); } +#line 1343 "perly.y" + { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; case 264: -#line 1343 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } +#line 1345 "perly.y" + { (yyval.opval) = sawparens(newNULLLIST()); } break; case 265: -#line 1345 "perly.y" +#line 1348 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 266: -#line 1347 "perly.y" +#line 1350 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 267: #line 1352 "perly.y" - { (yyval.opval) = NULL; } - - break; - - case 268: -#line 1354 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 269: -#line 1358 "perly.y" - { (yyval.opval) = NULL; } - - break; - - case 270: -#line 1360 "perly.y" +#line 1359 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 271: -#line 1364 "perly.y" - { (yyval.opval) = NULL; } +#line 1365 "perly.y" + { (yyval.opval) = (ps[0].val.opval); } break; - case 272: -#line 1366 "perly.y" + case 273: +#line 1371 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 273: -#line 1372 "perly.y" + case 274: +#line 1377 "perly.y" { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } break; - case 281: -#line 1389 "perly.y" + case 282: +#line 1394 "perly.y" { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 282: -#line 1393 "perly.y" + case 283: +#line 1398 "perly.y" { (yyval.opval) = newSVREF((ps[0].val.opval)); } break; - case 283: -#line 1397 "perly.y" + case 284: +#line 1402 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } break; - case 284: -#line 1403 "perly.y" + case 285: +#line 1408 "perly.y" { (yyval.opval) = newHVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } break; - case 285: -#line 1409 "perly.y" + case 286: +#line 1414 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); } break; - case 286: -#line 1411 "perly.y" + case 287: +#line 1416 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 287: -#line 1415 "perly.y" + case 288: +#line 1420 "perly.y" { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); } break; - case 289: -#line 1420 "perly.y" + case 290: +#line 1425 "perly.y" { (yyval.opval) = newAVREF((ps[-2].val.opval)); } break; - case 291: -#line 1425 "perly.y" + case 292: +#line 1430 "perly.y" { (yyval.opval) = newHVREF((ps[-2].val.opval)); } break; - case 293: -#line 1430 "perly.y" + case 294: +#line 1435 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); } break; - case 294: -#line 1435 "perly.y" + case 295: +#line 1440 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; - case 295: -#line 1437 "perly.y" + case 296: +#line 1442 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; - case 296: -#line 1439 "perly.y" + case 297: +#line 1444 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; - case 297: -#line 1442 "perly.y" + case 298: +#line 1447 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; @@ -2144,6 +2060,6 @@ case 2: /* Generated from: - * 930997a2ecab41a5d780b65dcb341084a1ebf4253bedf06dba0b9c95408bc16d perly.y + * b984ee9f20e769dfdc37859c0c93070e5cf8fbc7d2c06f53d085767845dc3de7 perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.h b/perly.h index 94fdf2dddcec..a2b5e578d47d 100644 --- a/perly.h +++ b/perly.h @@ -218,6 +218,6 @@ int yyparse (void); /* Generated from: - * 930997a2ecab41a5d780b65dcb341084a1ebf4253bedf06dba0b9c95408bc16d perly.y + * b984ee9f20e769dfdc37859c0c93070e5cf8fbc7d2c06f53d085767845dc3de7 perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.tab b/perly.tab index 800ed87657a1..cd9dd1beabeb 100644 --- a/perly.tab +++ b/perly.tab @@ -6,16 +6,16 @@ #define YYFINAL 16 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3177 +#define YYLAST 3336 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 113 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 99 +#define YYNNTS 100 /* YYNRULES -- Number of rules. */ -#define YYNRULES 297 +#define YYNRULES 298 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 581 +#define YYNSTATES 596 #define YYUNDEFTOK 2 #define YYMAXUTOK 367 @@ -72,36 +72,36 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 138, 138, 137, 149, 148, 159, 158, 172, 171, - 185, 184, 198, 197, 208, 207, 220, 228, 235, 240, - 247, 253, 255, 264, 266, 275, 279, 283, 290, 300, - 302, 315, 312, 336, 331, 352, 360, 359, 368, 374, - 380, 385, 387, 389, 396, 404, 406, 403, 423, 428, - 435, 434, 449, 457, 464, 466, 463, 472, 479, 478, - 493, 497, 502, 510, 527, 529, 533, 537, 539, 541, - 543, 545, 547, 549, 552, 557, 559, 564, 574, 576, - 581, 587, 589, 593, 597, 601, 606, 610, 614, 615, - 618, 624, 629, 635, 636, 640, 642, 646, 648, 650, - 655, 657, 668, 670, 675, 677, 681, 700, 702, 704, - 710, 775, 777, 783, 785, 789, 794, 796, 800, 802, - 806, 810, 810, 878, 879, 884, 895, 896, 899, 910, - 912, 914, 918, 920, 925, 929, 933, 937, 943, 948, - 954, 960, 962, 964, 967, 966, 977, 978, 982, 986, - 989, 994, 999, 1002, 1006, 1010, 1016, 1024, 1031, 1037, - 1039, 1041, 1046, 1048, 1050, 1055, 1057, 1059, 1061, 1063, - 1065, 1067, 1069, 1071, 1073, 1075, 1079, 1081, 1083, 1085, - 1089, 1091, 1095, 1097, 1099, 1101, 1105, 1107, 1112, 1114, - 1117, 1119, 1121, 1124, 1127, 1138, 1141, 1148, 1150, 1152, - 1154, 1156, 1159, 1165, 1167, 1171, 1172, 1173, 1174, 1175, - 1177, 1179, 1181, 1183, 1185, 1187, 1189, 1191, 1193, 1195, - 1197, 1199, 1201, 1211, 1221, 1231, 1241, 1243, 1245, 1248, - 1253, 1257, 1259, 1261, 1263, 1266, 1268, 1271, 1273, 1275, - 1277, 1279, 1281, 1283, 1285, 1287, 1290, 1292, 1294, 1296, - 1298, 1300, 1304, 1307, 1306, 1319, 1320, 1321, 1326, 1328, - 1330, 1332, 1337, 1339, 1342, 1344, 1346, 1351, 1353, 1357, - 1359, 1363, 1365, 1371, 1375, 1376, 1377, 1380, 1381, 1384, - 1385, 1388, 1392, 1396, 1402, 1408, 1410, 1414, 1418, 1419, - 1423, 1424, 1428, 1429, 1434, 1436, 1438, 1441 + 0, 139, 139, 138, 150, 149, 160, 159, 173, 172, + 186, 185, 199, 198, 209, 208, 221, 229, 233, 240, + 245, 252, 259, 260, 270, 271, 280, 284, 288, 295, + 305, 307, 320, 317, 341, 336, 357, 365, 364, 373, + 379, 385, 390, 392, 394, 401, 409, 411, 408, 428, + 433, 440, 439, 454, 462, 469, 471, 468, 477, 484, + 483, 498, 502, 507, 515, 533, 534, 538, 542, 544, + 546, 548, 550, 552, 554, 557, 563, 564, 569, 580, + 581, 586, 593, 594, 598, 602, 606, 611, 615, 619, + 620, 623, 629, 634, 640, 641, 646, 647, 652, 653, + 655, 660, 662, 673, 675, 680, 682, 686, 706, 707, + 709, 715, 780, 782, 788, 790, 794, 800, 801, 806, + 807, 811, 815, 815, 883, 884, 889, 900, 901, 904, + 915, 917, 919, 923, 925, 930, 934, 938, 942, 948, + 953, 959, 965, 967, 969, 972, 971, 982, 983, 987, + 991, 994, 999, 1004, 1007, 1011, 1015, 1021, 1029, 1036, + 1042, 1044, 1046, 1051, 1053, 1055, 1060, 1062, 1064, 1066, + 1068, 1070, 1072, 1074, 1076, 1078, 1080, 1084, 1086, 1088, + 1090, 1094, 1096, 1100, 1102, 1104, 1106, 1110, 1112, 1117, + 1119, 1122, 1124, 1126, 1129, 1132, 1143, 1146, 1153, 1155, + 1157, 1159, 1161, 1164, 1170, 1172, 1176, 1177, 1178, 1179, + 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198, + 1200, 1202, 1204, 1206, 1216, 1226, 1236, 1246, 1248, 1250, + 1253, 1258, 1262, 1264, 1266, 1268, 1271, 1273, 1276, 1278, + 1280, 1282, 1284, 1286, 1288, 1290, 1292, 1295, 1297, 1299, + 1301, 1303, 1305, 1309, 1312, 1311, 1324, 1325, 1326, 1331, + 1333, 1335, 1337, 1342, 1344, 1347, 1349, 1351, 1357, 1358, + 1363, 1364, 1369, 1370, 1376, 1380, 1381, 1382, 1385, 1386, + 1389, 1390, 1393, 1397, 1401, 1407, 1413, 1415, 1419, 1423, + 1424, 1428, 1429, 1433, 1434, 1439, 1441, 1443, 1446 }; #endif @@ -130,7 +130,7 @@ static const char *const yytname[] = "NCRELOP", "SHIFTOP", "MATCHOP", "PERLY_EXCLAMATION_MARK", "PERLY_TILDE", "UMINUS", "REFGEN", "POWOP", "PREINC", "PREDEC", "POSTINC", "POSTDEC", "POSTJOIN", "ARROW", "PERLY_PAREN_CLOSE", "PERLY_PAREN_OPEN", "$accept", - "grammar", "@1", "@2", "@3", "@4", "@5", "@6", "@7", "block", + "grammar", "@1", "@2", "@3", "@4", "@5", "@6", "@7", "block", "empty", "formblock", "remember", "mblock", "mremember", "stmtseq", "formstmtseq", "fullstmt", "labfullstmt", "barestmt", "$@8", "$@9", "$@10", "$@11", "$@12", "@13", "$@14", "$@15", "$@16", "formline", "formarg", @@ -169,79 +169,80 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -482 +#define YYPACT_NINF -506 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-482))) + (!!((Yystate) == (-506))) -#define YYTABLE_NINF -293 +#define YYTABLE_NINF -294 #define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-293))) + (!!((Yytable_value) == (-294))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - 533, -482, -482, -482, -482, -482, -482, -482, 32, -482, - 2902, 25, 1407, 1310, -482, -482, -482, -482, 299, 1959, - 299, 2902, 299, 2902, 299, 299, -482, 299, 299, -482, - -482, 10, -66, -482, 2902, -482, -482, -482, -482, 2902, - -63, -56, -47, 2056, 1865, 299, 2056, 2150, 67, 2902, - 60, 2902, 2902, 2902, 2902, 2902, 2902, 2902, 2244, 144, - 43, -482, 50, -482, 156, -25, 233, -11, -482, -482, - -482, 3067, -482, -482, -35, 62, 228, 250, -482, 78, - 267, 270, 92, -482, -482, -482, -482, -482, -482, 67, - 67, 83, -482, 18, 41, 52, 97, -1, 108, 135, - 25, 203, 173, 207, -482, 243, 330, 1310, -482, -482, - -482, 534, -482, 220, 631, -482, -482, -482, -482, -482, - -482, 12, -482, 992, -482, 992, -482, -482, 2902, 172, - 176, 2902, 193, 808, 25, 285, 246, 3067, 218, 2338, - 2902, 1865, -482, 808, 1763, 43, -482, 1663, 2902, -482, - -482, 808, 329, 124, -482, -482, 2902, 808, 2996, 2432, - 269, -482, -482, -482, 808, 43, 992, 992, 992, 338, - 338, 337, 23, 2902, 2902, 2902, 2902, 2902, 2526, -482, - -482, 2902, -482, -482, 2902, 2902, 2902, 2902, 2902, 2902, - 2902, 2902, 2902, 2902, 2902, 2902, 2902, 2902, 2902, 2902, - 2902, 2902, -482, -482, -482, 27, 2620, 2902, 2902, 2902, - 2902, 2902, 2902, 2902, -482, 335, -482, -482, 340, -482, - -482, -482, -482, -482, 278, 151, -482, -482, 261, -482, - -482, -482, -482, 326, -482, 25, -482, -482, 2902, 2902, - 2902, 2902, 2902, 2902, -482, -482, -482, 370, -482, -482, - 370, -482, -482, -482, 390, -482, -482, -482, 2902, 2902, - 34, -482, -482, -482, 246, 378, -482, -482, -482, 159, - 327, 298, 2902, 43, -482, 400, -482, 2714, 992, 269, - 44, 168, 169, -482, 223, 389, -482, 2902, 407, 339, - -482, 3067, 165, 45, -482, 234, 808, 711, 423, 395, - 289, 3067, 3023, 1696, 1696, 1850, 518, 614, 711, 711, - 808, 808, 905, 992, 992, 397, 2902, 2902, 410, 399, - 404, 415, -482, 424, 2808, 357, -482, -482, 236, 171, - 54, 184, 65, 189, 90, 191, 728, -482, 452, -482, - -482, 79, 451, 2902, 2902, 2902, 2902, -482, 462, -482, - -482, 368, -482, -482, -482, -482, 1501, 242, -482, 2902, - 2902, -482, 371, -482, -482, 144, -482, 144, -482, -482, - -482, -482, -482, 396, 396, 220, 374, 76, -482, 2902, - -482, -482, 376, -482, -482, -482, -482, 238, -482, 59, - 248, -482, -482, -482, 94, 2902, 474, -482, -482, 2902, - -482, 229, 102, -482, -482, -482, -482, -482, -482, 281, - 2902, -482, 477, -482, 481, -482, 483, -482, 484, -482, - -482, -482, 285, 246, -482, -482, 471, 412, 144, 413, - 414, 144, 417, 398, -482, -482, -482, -482, 418, 479, - 320, -482, 2902, 435, 438, 825, -482, 2902, -482, -482, - -482, -482, 2902, 426, -482, 500, -482, -482, 515, -482, - -482, 68, -482, 105, -482, 364, 540, -482, -482, 446, - -482, -482, -482, -482, 543, 246, 563, -482, 2902, -482, - -482, 203, 203, 2902, 2902, 203, -482, 490, 482, 203, - 203, -482, -482, 3067, 144, -482, -482, 492, -482, -482, - -482, -482, 516, 596, -482, -482, -482, -482, 598, 203, - 203, 288, 288, 510, 512, 207, 2902, 2902, 203, -482, - -482, 462, 922, -482, 1019, -482, -482, -482, -482, 1116, - -482, 207, 207, 203, 517, -482, -482, 203, 203, -482, - 602, 519, 207, -482, -482, -482, 162, -482, -482, -482, - -482, 2902, 207, 207, -482, 203, -482, 522, 619, 560, - -482, 532, -482, -482, -482, 207, 203, -482, -482, -482, - 203, 1595, -482, -482, 1213, 288, 537, -482, -482, 203, - -482 + 578, -506, -506, -506, -506, -506, -506, -506, 20, -506, + 3017, 18, 1522, 1425, -506, -506, -506, -506, 452, 2074, + 452, 3017, 452, 3017, 452, 452, -506, 452, 452, -506, + -506, 61, -61, -506, 3017, -506, -506, -506, -506, 3017, + -25, -22, -43, 2171, 1980, 452, 2171, 2265, 209, 3017, + 41, 3017, 3017, 3017, 3017, 3017, 3017, 3017, 2359, -506, + 38, 119, -506, 1, -506, 160, -29, 156, 79, -506, + -506, -506, 3182, -506, -506, 36, 62, 145, 154, -506, + 144, 158, 173, 170, -506, -506, -506, -506, -506, -506, + 209, 209, 167, -506, 87, 93, 125, 129, 39, 150, + 152, 18, 258, 251, 228, -506, 261, 406, 1425, -506, + -506, -506, -506, 623, -506, 182, 721, -506, -506, -506, + -506, -506, -506, 12, -506, 463, -506, 463, -506, -506, + 3017, 174, 215, 3017, 178, 826, 18, 275, 232, 3182, + 205, 2453, 3017, 1980, -506, 826, 1878, -506, 119, -506, + 1778, 3017, -506, -506, 826, 309, -7, -506, -506, 3017, + 826, 3111, 2547, 246, -506, -506, -506, 826, 119, 463, + 463, 463, 285, 285, 317, -39, 3017, 3017, 3017, 3017, + 3017, 2641, -506, -506, 3017, -506, -506, 3017, 3017, 3017, + 3017, 3017, 3017, 3017, 3017, 3017, 3017, 3017, 3017, 3017, + 3017, 3017, 3017, 3017, 3017, -506, -506, -506, 73, 2735, + 3017, 3017, 3017, 3017, 3017, 3017, 3017, -506, 318, -506, + -506, 329, -506, -506, -506, -506, -506, 255, 180, -506, + -506, 253, -506, -506, -506, -506, 304, -506, 18, -506, + -506, -506, 3017, 3017, 3017, 3017, 3017, 3017, -506, -506, + -506, 338, -506, -506, -506, 338, -506, -506, -506, 352, + -506, -506, -506, 3017, 3017, 35, -506, -506, -506, -506, + 232, 347, -506, -506, -506, -506, 96, 300, 272, 3017, + 119, -506, 376, -506, 2829, 463, 246, 68, 139, 157, + -506, 104, 367, -506, 3017, 386, 319, -506, 3182, 24, + 40, -506, 204, 826, 705, 242, 411, 336, 3182, 3138, + 1811, 1811, 742, 607, 443, 705, 705, 826, 826, 397, + 463, 463, 377, 3017, 3017, 274, 385, 388, 391, -506, + 392, 2923, 311, -506, -506, 259, 155, 42, 175, 52, + 208, 54, 214, 843, -506, -506, 401, -506, -506, 11, + 398, 3017, 3017, 3017, 3017, -506, 409, -506, -506, 315, + -506, -506, -506, -506, 1616, 302, -506, 3017, 3017, -506, + 316, -506, -506, 38, -506, 38, -506, -506, -506, -506, + -506, 343, 343, 182, 323, 47, -506, 3017, -506, -506, + 326, -506, -506, -506, -506, 278, -506, 5, 295, -506, + -506, -506, 57, 3017, 430, -506, -506, 3017, -506, 230, + 78, -506, -506, -506, -506, -506, -506, 307, 3017, -506, + 435, -506, 437, -506, 438, -506, 446, -506, -506, -506, + 275, 232, -506, -506, 433, 359, 38, 365, 368, 38, + 370, 373, -506, -506, -506, -506, -506, 371, 464, 218, + -506, 3017, 380, 382, 940, -506, 3017, -506, -506, -506, + -506, -506, 3017, -506, 416, -506, 476, -506, -506, -506, + 488, -506, -506, 27, -506, 149, -506, 3226, 490, -506, + -506, 389, -506, -506, -506, -506, 486, 232, 494, -506, + 3017, -506, -506, 258, 258, 3017, 3017, 258, -506, 410, + 413, 258, 258, -506, -506, 3182, 38, -506, -506, 414, + -506, -506, -506, -506, 447, 509, -506, -506, -506, -506, + 510, 258, 258, 256, 256, 424, 432, 228, 3017, 3017, + 258, -506, -506, 409, 1037, -506, 1134, -506, -506, -506, + -506, 1231, -506, 228, 228, 258, 434, -506, -506, -506, + 258, 258, -506, 522, 444, 228, -506, -506, -506, -506, + -5, -506, -506, -506, -506, 3017, 228, 228, -506, 258, + -506, 448, 531, 471, -506, 449, -506, -506, -506, 228, + 258, -506, -506, -506, -506, 258, 1710, -506, -506, 1328, + 256, 453, -506, -506, 258, -506 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -249,95 +250,96 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 2, 4, 6, 8, 10, 12, 14, 0, 18, - 269, 0, 0, 0, 21, 121, 1, 21, 0, 0, - 0, 0, 0, 0, 0, 0, 255, 0, 0, 226, - 253, 214, 248, 250, 244, 91, 257, 91, 91, 236, - 246, 0, 0, 239, 267, 0, 0, 0, 0, 0, - 0, 242, 0, 0, 0, 0, 0, 0, 0, 270, - 131, 256, 221, 205, 167, 176, 168, 182, 206, 207, - 208, 134, 211, 5, 227, 216, 219, 218, 220, 217, - 0, 0, 0, 18, 7, 67, 62, 29, 92, 0, - 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 78, 9, 0, 68, 0, 11, 26, - 25, 0, 15, 116, 0, 294, 297, 296, 295, 281, - 198, 0, 282, 188, 284, 189, 283, 287, 267, 0, - 0, 0, 0, 245, 0, 95, 97, 237, 0, 0, - 269, 269, 240, 241, 294, 268, 141, 295, 0, 285, - 204, 203, 0, 0, 93, 94, 267, 212, 0, 0, - 259, 264, 266, 265, 243, 238, 190, 191, 210, 195, - 196, 215, 0, 0, 0, 132, 0, 0, 0, 179, - 178, 0, 185, 184, 0, 0, 0, 0, 0, 0, + 0, 2, 4, 6, 8, 10, 12, 14, 0, 19, + 17, 0, 0, 0, 17, 122, 1, 17, 0, 0, + 0, 0, 0, 0, 0, 0, 256, 0, 0, 227, + 254, 215, 249, 251, 245, 92, 258, 92, 92, 237, + 247, 0, 0, 240, 17, 0, 0, 0, 0, 0, + 0, 243, 0, 0, 0, 0, 0, 0, 0, 270, + 271, 132, 257, 222, 206, 168, 177, 169, 183, 207, + 208, 209, 135, 212, 5, 228, 217, 220, 219, 221, + 218, 0, 0, 0, 19, 7, 68, 63, 30, 93, + 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 9, 0, 69, 0, 11, + 27, 26, 22, 0, 15, 17, 0, 295, 298, 297, + 296, 282, 199, 0, 283, 189, 285, 190, 284, 288, + 17, 0, 0, 0, 0, 246, 0, 17, 17, 238, + 0, 0, 17, 17, 241, 242, 295, 268, 269, 142, + 296, 0, 286, 205, 204, 0, 0, 94, 95, 17, + 213, 0, 0, 260, 265, 267, 266, 244, 239, 191, + 192, 211, 196, 197, 216, 0, 0, 0, 133, 0, + 0, 0, 180, 179, 0, 186, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 192, 193, 194, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 21, 89, 90, 90, 0, 36, - 18, 18, 18, 18, 18, 0, 18, 18, 0, 18, - 18, 42, 20, 0, 61, 0, 57, 60, 0, 0, - 0, 0, 0, 0, 28, 27, 22, 102, 105, 104, - 102, 112, 111, 115, 117, 122, 197, 139, 269, 0, - 0, 249, 144, 96, 97, 99, 18, 247, 251, 0, - 0, 0, 0, 135, 200, 0, 230, 0, 261, 0, - 216, 219, 218, 263, 0, 101, 258, 0, 213, 130, - 129, 133, 0, 0, 158, 0, 181, 187, 171, 164, - 165, 162, 0, 173, 174, 172, 170, 169, 186, 183, - 180, 177, 166, 175, 163, 0, 0, 0, 0, 291, - 289, 293, 146, 0, 0, 138, 147, 228, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 88, 0, 31, - 33, 0, 0, 83, 0, 0, 0, 279, 0, 280, - 277, 0, 278, 274, 275, 276, 0, 0, 18, 0, - 0, 21, 0, 79, 71, 66, 72, 85, 69, 70, - 73, 74, 103, 107, 107, 113, 0, 271, 160, 267, - 18, 98, 118, 202, 252, 143, 142, 0, 199, 215, - 0, 260, 262, 100, 0, 0, 0, 151, 157, 0, - 234, 0, 0, 231, 233, 232, 235, 286, 155, 0, - 269, 229, 0, 149, 0, 222, 0, 223, 0, 16, - 18, 30, 95, 97, 18, 35, 0, 0, 84, 0, - 0, 86, 0, 0, 273, 18, 82, 87, 0, 0, - 68, 50, 0, 0, 0, 0, 54, 108, 110, 106, - 114, 140, 0, 0, 145, 0, 201, 121, 0, 119, - 136, 213, 161, 0, 154, 209, 0, 150, 156, 0, - 152, 224, 225, 148, 0, 97, 18, 58, 267, 80, - 80, 0, 0, 0, 0, 0, 45, 0, 0, 0, - 0, 19, 18, 109, 272, 254, 21, 0, 21, 159, - 153, 137, 0, 18, 127, 34, 126, 21, 0, 0, - 0, 75, 75, 0, 0, 78, 83, 0, 0, 40, - 41, 0, 0, 120, 0, 23, 124, 32, 123, 0, - 37, 78, 78, 0, 0, 38, 39, 0, 0, 53, - 0, 0, 78, 55, 125, 128, 0, 59, 43, 44, - 76, 0, 78, 78, 46, 0, 49, 0, 0, 64, - 24, 0, 48, 52, 80, 78, 0, 17, 21, 63, - 0, 0, 51, 56, 0, 75, 0, 65, 77, 0, - 47 + 0, 0, 0, 0, 0, 193, 194, 195, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 17, 91, + 91, 0, 37, 19, 19, 19, 19, 19, 0, 19, + 19, 0, 19, 19, 43, 21, 0, 62, 0, 79, + 58, 61, 0, 0, 0, 0, 0, 0, 29, 28, + 23, 103, 106, 105, 117, 103, 113, 112, 116, 118, + 123, 198, 140, 17, 0, 0, 250, 145, 97, 96, + 17, 100, 98, 19, 248, 252, 0, 0, 0, 0, + 136, 201, 0, 231, 0, 262, 0, 217, 220, 219, + 264, 0, 102, 259, 0, 214, 131, 130, 134, 0, + 0, 159, 0, 182, 188, 172, 165, 166, 163, 0, + 174, 175, 173, 171, 170, 187, 184, 181, 178, 167, + 176, 164, 0, 0, 0, 0, 292, 290, 294, 147, + 0, 0, 139, 148, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 89, 90, 0, 32, 34, 0, + 0, 84, 0, 0, 0, 280, 0, 281, 278, 0, + 279, 275, 276, 277, 0, 0, 19, 0, 0, 17, + 0, 80, 72, 67, 73, 86, 70, 71, 74, 75, + 104, 17, 17, 114, 0, 17, 161, 17, 19, 99, + 17, 203, 253, 144, 143, 0, 200, 216, 0, 261, + 263, 101, 0, 0, 0, 152, 158, 0, 235, 0, + 0, 232, 234, 233, 236, 287, 156, 0, 17, 230, + 0, 150, 0, 223, 0, 224, 0, 16, 19, 31, + 17, 17, 19, 36, 0, 0, 85, 0, 0, 87, + 0, 0, 274, 19, 82, 83, 88, 0, 0, 69, + 51, 0, 0, 0, 0, 55, 109, 108, 111, 107, + 115, 141, 0, 272, 0, 146, 0, 202, 122, 119, + 0, 120, 137, 214, 162, 0, 155, 210, 0, 151, + 157, 0, 153, 225, 226, 149, 0, 17, 19, 59, + 17, 81, 81, 0, 0, 0, 0, 0, 46, 0, + 0, 0, 0, 20, 19, 110, 273, 255, 17, 0, + 17, 160, 154, 138, 0, 19, 128, 35, 127, 17, + 0, 0, 0, 17, 17, 0, 0, 17, 84, 0, + 0, 41, 42, 0, 0, 121, 0, 17, 125, 33, + 124, 0, 38, 17, 17, 0, 0, 76, 39, 40, + 0, 0, 54, 0, 0, 17, 56, 126, 129, 24, + 0, 60, 44, 45, 77, 0, 17, 17, 47, 0, + 50, 0, 0, 17, 25, 0, 49, 53, 81, 17, + 0, 18, 17, 65, 64, 0, 0, 52, 57, 0, + 17, 0, 66, 78, 0, 48 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -482, -482, -482, -482, -482, -482, -482, -482, -482, 42, - -482, -5, -127, -482, -17, -482, 632, 542, 8, -482, - -482, -482, -482, -482, -482, -482, -482, -482, -482, -482, - 224, -342, -481, -115, -459, -482, 138, 318, -246, 113, - -482, 155, 352, -482, 305, 268, -263, 420, 442, -482, - -482, 341, -482, 325, -482, -482, -482, -482, 257, -482, - -482, 214, -482, 244, -8, -36, -482, -482, -482, -482, - -482, -482, -482, -482, -482, -482, -482, -482, 101, -482, - -482, 561, -122, -99, -482, -482, 369, -482, -482, 502, - -15, -33, -31, -482, -482, -482, -482, -482, 0 + -506, -506, -506, -506, -506, -506, -506, -506, -506, 387, + -10, -506, -6, -391, -506, -16, -506, 541, 450, 4, + -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, + -506, 344, -357, -505, -273, -479, -506, 37, 216, -304, + -12, -506, 105, 310, -506, 283, 147, -259, 289, 337, + -506, -506, 196, -506, 210, -506, -506, -506, -506, 126, + -506, -506, 80, -506, 109, 33, -42, -506, -506, -506, + -506, -506, -506, -506, -506, -506, -506, -506, -506, 418, + -506, -506, 439, -124, -134, -506, -506, 234, -506, -506, + 375, 3, -46, -45, -506, -506, -506, -506, -506, 14 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 8, 9, 10, 11, 12, 13, 14, 15, 103, - 421, 382, 233, 361, 111, 546, 246, 109, 110, 422, - 423, 342, 516, 564, 487, 492, 557, 507, 560, 569, - 364, 105, 535, 236, 509, 437, 427, 366, 430, 439, - 338, 219, 134, 215, 156, 264, 266, 286, 373, 250, - 251, 448, 252, 253, 254, 255, 458, 459, 112, 113, - 527, 456, 505, 383, 106, 60, 61, 379, 325, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 130, - 72, 160, 146, 73, 453, 433, 350, 351, 227, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 122 + -1, 8, 9, 10, 11, 12, 13, 14, 15, 104, + 112, 429, 390, 236, 369, 113, 560, 250, 110, 111, + 430, 431, 350, 528, 578, 499, 504, 571, 519, 574, + 584, 372, 106, 548, 240, 521, 446, 435, 374, 438, + 448, 346, 222, 136, 218, 159, 270, 273, 293, 381, + 255, 256, 458, 257, 258, 259, 260, 470, 471, 114, + 115, 539, 467, 517, 391, 107, 61, 62, 387, 332, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 132, 73, 163, 149, 74, 464, 441, 358, 359, 230, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 124 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -345,214 +347,170 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 114, 380, 59, 118, 17, 118, 257, 118, 145, 118, - 118, 121, 118, 118, 436, 20, 165, 162, 119, 163, - 104, 510, 124, 131, 126, 127, 256, 128, 129, 147, - 118, 536, 16, 140, 276, 161, 83, 315, 316, 153, - 317, 270, 271, 318, 148, 149, 132, 319, 378, 138, - 172, 320, 321, 84, 322, 207, 139, 208, 175, 397, - 117, 176, 117, 177, 117, 141, 117, 117, 413, 117, - 117, 181, 287, 207, 224, 208, 20, 206, 214, 415, - 22, 395, 228, 184, 24, 142, 117, 117, 150, -292, - 424, 175, 145, 154, 578, 173, 174, 323, 155, 452, - 432, 425, 225, 213, 417, 571, 173, 174, 462, 218, - 438, 226, 273, 443, 444, 245, 467, 173, 174, 499, - 145, -264, 123, 260, 125, 281, 147, 282, 173, 174, - 220, 269, 59, 59, 288, 133, -263, 173, 174, 324, - 137, 272, 231, 280, 143, -262, 275, 151, 173, 174, - 157, 284, 164, 221, 166, 167, 168, 169, 170, 376, - 476, 18, 178, 158, 222, 289, 290, 20, 292, 293, - 295, 22, 159, 173, 174, 24, 262, 173, 174, -288, - -290, -288, -290, 117, 558, 173, 174, 396, 173, 174, - 326, 559, 354, 412, 355, 234, 488, 336, 328, 329, - 330, 331, 332, 333, 334, 335, 414, 173, 174, 223, - 353, 416, 503, 418, 232, 343, 344, 345, 346, 348, - 229, 356, 357, 377, 359, 360, 349, 173, 174, 436, - 365, 367, 365, 365, 365, 365, 247, 513, 514, -288, - 248, -288, 173, 174, 249, -266, -265, 230, 173, 174, - 59, 466, 179, 180, 173, 174, 259, 454, 20, 278, - 235, -290, 22, -290, 387, 237, 24, 173, 174, 390, - 384, 541, 173, 174, 173, 174, 291, 363, 209, 394, - 210, 211, 296, 212, 258, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 118, 261, 561, 173, 174, 401, 402, - 83, 469, 173, 174, 263, 20, 409, 173, 174, 173, - 174, 173, 174, 265, 354, 115, 355, 182, 183, 267, - 116, 173, 174, 434, 392, 428, 367, 431, 431, 533, - 534, 274, 353, 145, 445, 398, 285, 411, 440, 460, - 287, 431, 431, 442, 511, 512, 508, 186, 515, 461, - 117, 337, 519, 520, 173, 174, 341, 238, 239, 240, - 241, 339, 340, 358, 242, 455, 243, 238, 239, 240, - 241, 347, 531, 532, 242, 362, 243, 463, 200, 135, - 136, 542, 468, 201, 216, 217, 202, 203, 204, 205, - 539, 372, 59, 173, 174, 375, 550, 381, 385, 386, - 552, 553, 388, 173, 174, 474, 548, 549, 393, 477, - 395, 83, 400, 174, 404, 185, 20, 556, 565, 405, - 484, -86, 186, 187, 431, 403, 115, 562, 563, 573, - 406, 116, 145, 575, 494, -293, -293, -293, 205, 407, - 572, 189, 580, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 368, 369, 370, 371, 201, 410, - 420, 202, 203, 204, 205, 431, 431, 426, 20, 522, - 435, 524, 447, 446, -293, 451, 464, 521, 457, 470, - 529, 186, 187, 471, 200, 472, 473, 478, 455, 201, - 465, 486, 202, 203, 204, 205, 543, 495, 428, 431, - 483, 496, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 479, 480, 481, 498, 201, 482, 485, - 202, 203, 204, 205, -13, 85, 1, 2, 3, 4, - 5, 6, 7, 431, 18, 83, 489, 19, 493, 490, - 20, 574, 500, 21, 22, 23, 86, 501, 24, 25, - 26, 27, 28, 29, 30, 502, 31, 32, 33, 34, - 35, 36, 87, 107, 88, 89, 90, 37, 38, 91, - 92, 93, 94, 95, 96, 504, 186, 187, 97, 98, - 99, 100, 101, 518, 39, 525, 102, 40, 41, 42, - 43, 44, 517, 523, 45, 46, 47, 48, 49, 50, - 51, 194, 195, 196, 197, 198, 199, 200, 526, 52, - 530, 537, 201, 538, 554, 202, 203, 204, 205, 551, - 555, -3, 85, 566, 53, 54, 567, 55, 568, 56, - 57, 18, 83, 570, 19, 108, 58, 20, 579, 244, - 21, 22, 23, 86, 540, 24, 25, 26, 27, 28, - 29, 30, 429, 31, 32, 33, 34, 35, 36, 87, - 107, 88, 89, 90, 37, 38, 91, 92, 93, 94, - 95, 96, 186, 187, 576, 97, 98, 99, 100, 101, - 475, 39, 374, 102, 40, 41, 42, 43, 44, 391, - 450, 45, 46, 47, 48, 49, 50, 51, 195, 196, - 197, 198, 199, 200, 497, 449, 52, 528, 201, 279, - 506, 202, 203, 204, 205, 0, 441, 352, 0, 85, - 0, 53, 54, 0, 55, 0, 56, 57, 18, 83, - 419, 19, 0, 58, 20, 0, 0, 21, 22, 23, - 86, 0, 24, 25, 26, 27, 28, 29, 30, 0, - 31, 32, 33, 34, 35, 36, 87, 107, 88, 89, - 90, 37, 38, 91, 92, 93, 94, 95, 96, 186, - 187, 0, 97, 98, 99, 100, 101, 0, 39, 0, - 102, 40, 41, 42, 43, 44, 0, 0, 45, 46, - 47, 48, 49, 50, 51, 0, 0, 197, 198, 199, - 200, 0, 0, 52, 0, 201, 0, 0, 202, 203, - 204, 205, 0, 0, 0, 0, 85, 0, 53, 54, - 0, 55, 0, 56, 57, 18, 83, 491, 19, 0, - 58, 20, 0, 0, 21, 22, 23, 86, 0, 24, - 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, - 34, 35, 36, 87, 107, 88, 89, 90, 37, 38, - 91, 92, 93, 94, 95, 96, 186, 187, 0, 97, - 98, 99, 100, 101, 0, 39, 0, 102, 40, 41, - 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, - 50, 51, 0, 0, 0, 0, 199, 200, 0, 0, - 52, 0, 201, 0, 0, 202, 203, 204, 205, 0, - 0, 0, 0, 85, 0, 53, 54, 0, 55, 0, - 56, 57, 18, 83, 544, 19, 0, 58, 20, 0, - 0, 21, 22, 23, 86, 0, 24, 25, 26, 27, - 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, - 87, 107, 88, 89, 90, 37, 38, 91, 92, 93, - 94, 95, 96, 186, 187, 0, 97, 98, 99, 100, - 101, 0, 39, 0, 102, 40, 41, 42, 43, 44, - 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, - 0, 0, 0, 0, 200, 0, 0, 52, 0, 201, - 0, 0, 202, 203, 204, 205, 0, 0, 0, 0, - 85, 0, 53, 54, 0, 55, 0, 56, 57, 18, - 83, 545, 19, 0, 58, 20, 0, 0, 21, 22, - 23, 86, 0, 24, 25, 26, 27, 28, 29, 30, - 0, 31, 32, 33, 34, 35, 36, 87, 107, 88, - 89, 90, 37, 38, 91, 92, 93, 94, 95, 96, - 0, 0, 0, 97, 98, 99, 100, 101, 0, 39, - 0, 102, 40, 41, 42, 43, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 51, 201, 0, 0, 202, - 203, 204, 205, 0, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 85, 0, 53, - 54, 0, 55, 0, 56, 57, 18, 83, 547, 19, - 0, 58, 20, 0, 0, 21, 22, 23, 86, 0, - 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, - 33, 34, 35, 36, 87, 107, 88, 89, 90, 37, - 38, 91, 92, 93, 94, 95, 96, 0, 0, 0, - 97, 98, 99, 100, 101, 0, 39, 0, 102, 40, - 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, - 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 85, 0, 53, 54, 0, 55, - 0, 56, 57, 18, 83, 0, 19, 0, 58, 20, - 0, 0, 21, 22, 23, 86, 0, 24, 25, 26, + 59, 116, 148, 17, 165, 166, 262, 445, 277, 278, + 168, 388, 179, 522, 180, 282, 105, 572, 294, 549, + 16, 120, 432, 120, 573, 120, 261, 120, 120, 84, + 120, 120, 121, 433, 147, 283, 126, 142, 128, 129, + 403, 130, 131, 60, 176, 177, 404, 150, 120, 386, + 440, 134, 123, 164, 405, 20, 421, 20, 151, 152, + 447, 22, 178, 452, 453, 24, 423, 184, 425, 143, + 462, 474, 295, 210, 133, 211, 176, 177, 217, 210, + 156, 211, -264, 322, 323, 593, 324, 140, 148, 325, + 141, 175, 479, 326, 239, 176, 177, 327, 328, 586, + 329, 231, 523, 524, -263, 254, 527, 176, 177, 280, + 531, 532, 249, 181, 227, 288, 289, 148, 176, 177, + 147, 176, 177, 176, 177, 176, 177, 269, 272, 384, + 543, 544, 59, 59, 178, 176, 177, 176, 177, 555, + 176, 177, 228, 330, 161, -265, 150, 500, 209, 147, + -289, 229, -289, 162, 564, -293, -289, 279, -289, 566, + 567, 176, 177, 511, 287, -291, 265, -291, -291, 212, + -291, 213, 488, 187, 276, 60, 60, 420, 579, 176, + 177, 216, 362, 363, 214, 331, 215, 176, 177, 588, + 18, 525, 526, 221, 590, 291, 20, 422, 251, 223, + 22, 343, 252, 595, 24, 224, 253, 392, 345, 296, + 297, 333, 299, 300, 302, 400, -267, 351, 352, 353, + 354, 356, 385, 364, 365, 554, 367, 368, 515, 445, + 424, 361, 176, 177, -266, 157, 426, 225, 176, 177, + 158, 226, 335, 336, 337, 338, 339, 340, 341, 342, + 185, 186, 478, 59, 552, 357, 182, 183, 176, 177, + 272, 575, 232, 465, 233, 242, 243, 244, 245, 235, + 562, 563, 246, 237, 247, 373, 375, 373, 373, 373, + 373, 238, 570, 241, 481, 84, 263, 176, 177, 266, + 20, 176, 177, 576, 577, 264, 60, 176, 177, 411, + 117, 176, 177, -294, 268, 118, 587, 545, 546, 271, + 189, 190, 395, 176, 177, 406, 274, 398, 20, 362, + 363, 281, 22, 292, 347, 348, 24, 402, 120, -87, + 294, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 176, 177, 344, 148, 204, 137, 138, 205, + 206, 207, 208, 454, 444, 349, 409, 410, 355, 442, + 451, 176, 177, 370, 417, 366, 520, 383, 361, 380, + 419, 457, 457, 219, 220, 463, 389, 147, 176, 177, + 469, 393, 466, 394, 436, 375, 439, 439, 396, 472, + 176, 177, -294, -294, -294, 208, 401, 449, 85, 403, + 439, 439, 408, 177, 189, 119, 473, 119, 59, 119, + 412, 119, 119, 413, 119, 119, 414, 415, 480, 428, + 269, 272, 486, 418, 434, 20, 489, 443, 455, 456, + 144, 119, 119, 153, 461, 203, 475, 496, 468, 125, + 204, 127, 476, 205, 206, 207, 208, 482, 148, 483, + 484, 60, 135, 242, 243, 244, 245, 139, 485, 490, + 246, 145, 247, 84, 154, 189, 190, 160, 20, 167, + 491, 169, 170, 171, 172, 173, 492, 272, 117, 493, + 147, 494, 497, 118, 439, 495, 498, 508, 234, 176, + 177, 501, 534, 502, 536, 506, 203, 507, 533, 510, + 513, 204, 512, 541, 205, 206, 207, 208, 514, 466, + 203, 189, 190, 547, 547, 204, 516, 239, 205, 206, + 207, 208, 529, 267, 530, 535, 537, 559, 439, 439, + 119, 538, 542, 239, 239, 550, 556, 198, 199, 200, + 201, 202, 203, 551, 568, 239, 565, 204, 581, 582, + 205, 206, 207, 208, 109, 569, 239, 239, 248, 580, + 585, 436, 439, 583, 594, 553, 589, 204, 437, 239, + 205, 206, 207, 208, 591, 399, 444, 487, 459, 285, + 547, 1, 2, 3, 4, 5, 6, 7, 376, 377, + 378, 379, 382, 460, 509, 540, 298, 518, 439, 450, + 286, 0, 303, 360, 0, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, -13, 86, 371, 0, 0, 0, 0, + 0, 0, 0, 18, 84, 0, 19, 0, 0, 20, + 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, - 36, 87, 107, 88, 89, 90, 37, 38, 91, 92, - 93, 94, 95, 96, 0, 0, 0, 97, 98, 99, - 100, 101, 0, 39, 0, 102, 40, 41, 42, 43, + 36, 88, 108, 89, 90, 91, 37, 38, 92, 93, + 94, 95, 96, 97, 0, 189, 190, 98, 99, 100, + 101, 102, 0, 39, 0, 103, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, - 0, 0, 577, 0, 0, 0, 0, 0, 52, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 85, 0, 53, 54, 0, 55, 0, 56, 57, - 18, 83, 0, 19, 0, 58, 20, 0, 0, 21, - 22, 23, 86, 0, 24, 25, 26, 27, 28, 29, - 30, 0, 31, 32, 33, 34, 35, 36, 87, 107, - 88, 89, 90, 37, 38, 91, 92, 93, 94, 95, - 96, 0, 0, 0, 97, 98, 99, 100, 101, 0, - 39, 0, 102, 40, 41, 42, 43, 44, 0, 0, + 197, 198, 199, 200, 201, 202, 203, 0, 52, 0, + 0, 204, 119, 0, 205, 206, 207, 208, 0, 0, + 0, -3, 86, 53, 54, 0, 55, 0, 56, 57, + 0, 18, 84, 0, 19, 58, 0, 20, 0, 0, + 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, + 29, 30, 0, 31, 32, 33, 34, 35, 36, 88, + 108, 89, 90, 91, 37, 38, 92, 93, 94, 95, + 96, 97, 0, 189, 190, 98, 99, 100, 101, 102, + 0, 39, 0, 103, 40, 41, 42, 43, 44, 0, + 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, + 0, 200, 201, 202, 203, 0, 52, 0, 0, 204, + 189, 190, 205, 206, 207, 208, 0, 0, 0, 0, + 0, 53, 54, 0, 55, 477, 56, 57, 0, 0, + 0, 0, 0, 58, 196, 197, 198, 199, 200, 201, + 202, 203, 0, 0, 86, 0, 204, 0, 0, 205, + 206, 207, 208, 18, 84, 427, 19, 0, 0, 20, + 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, + 27, 28, 29, 30, 505, 31, 32, 33, 34, 35, + 36, 88, 108, 89, 90, 91, 37, 38, 92, 93, + 94, 95, 96, 97, 189, 190, 0, 98, 99, 100, + 101, 102, 0, 39, 0, 103, 40, 41, 42, 43, + 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, + 0, 0, 0, 0, 202, 203, 0, 0, 52, 0, + 204, 0, 0, 205, 206, 207, 208, 0, 0, 0, + 0, 86, 0, 53, 54, 0, 55, 0, 56, 57, + 18, 84, 503, 19, 0, 58, 20, 0, 0, 21, + 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, + 30, 0, 31, 32, 33, 34, 35, 36, 88, 108, + 89, 90, 91, 37, 38, 92, 93, 94, 95, 96, + 97, 0, 0, 0, 98, 99, 100, 101, 102, 0, + 39, 0, 103, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, - 53, 54, 0, 55, 0, 56, 57, 18, 83, 0, - 19, 0, 58, 20, 0, 0, 21, 22, 23, 86, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 53, 54, 0, 55, 0, 56, 57, 18, 84, 557, + 19, 0, 58, 20, 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, - 32, 33, 34, 35, 36, 87, 0, 88, 89, 90, - 37, 38, 91, 92, 93, 94, 95, 96, 0, 0, - 0, 97, 98, 99, 100, 101, 0, 39, 0, 102, + 32, 33, 34, 35, 36, 88, 108, 89, 90, 91, + 37, 38, 92, 93, 94, 95, 96, 97, 0, 0, + 0, 98, 99, 100, 101, 102, 0, 39, 0, 103, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 85, 0, 0, 0, 0, 53, 54, 0, - 55, 18, 56, 57, 19, 0, 0, 20, 0, 58, - 21, 22, 23, -81, 0, 24, 25, 26, 27, 28, - 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, - 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 86, 0, 53, 54, 0, + 55, 0, 56, 57, 18, 84, 558, 19, 0, 58, + 20, 0, 0, 21, 22, 23, 87, 0, 24, 25, + 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, + 35, 36, 88, 108, 89, 90, 91, 37, 38, 92, + 93, 94, 95, 96, 97, 0, 0, 0, 98, 99, + 100, 101, 102, 0, 39, 0, 103, 40, 41, 42, + 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, + 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 39, 0, 0, 40, 41, 42, 43, 44, 0, + 0, 0, 86, 0, 53, 54, 0, 55, 0, 56, + 57, 18, 84, 561, 19, 0, 58, 20, 0, 0, + 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, + 29, 30, 0, 31, 32, 33, 34, 35, 36, 88, + 108, 89, 90, 91, 37, 38, 92, 93, 94, 95, + 96, 97, 0, 0, 0, 98, 99, 100, 101, 102, + 0, 39, 0, 103, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, - 0, 53, 54, 0, 55, 18, 56, 57, 19, 0, - 0, 20, 0, 58, 21, 22, 23, 0, 0, 24, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, + 0, 53, 54, 0, 55, 0, 56, 57, 18, 84, + 0, 19, 0, 58, 20, 0, 0, 21, 22, 23, + 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, + 31, 32, 33, 34, 35, 36, 88, 108, 89, 90, + 91, 37, 38, 92, 93, 94, 95, 96, 97, 0, + 0, 0, 98, 99, 100, 101, 102, 0, 39, 0, + 103, 40, 41, 42, 43, 44, 0, 0, 45, 46, + 47, 48, 49, 50, 51, 0, 0, 592, 0, 0, + 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 86, 0, 53, 54, + 0, 55, 0, 56, 57, 18, 84, 0, 19, 0, + 58, 20, 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, - 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 39, 0, 0, 40, 41, - 42, 43, 44, -216, 0, 45, 46, 47, 48, 49, - 50, 51, 0, 0, 207, 0, 208, -216, -216, 0, - 52, 0, 0, 0, 0, -216, -216, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 54, 0, 55, 0, - 56, 57, 0, 0, 0, 0, -81, 58, 0, 0, - -216, -216, -216, -216, 0, 0, 0, -216, 0, -216, - 0, 0, 0, 0, -216, 0, 0, 0, 0, 0, - 0, -216, -216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -216, 0, -216, -216, 0, -216, - -216, -216, -216, -216, -216, -216, -216, -216, -216, -216, - -216, -216, -216, -255, 186, 187, 0, -216, 0, 0, - -216, -216, -216, -216, -216, 0, 0, -255, -255, 0, - 0, 0, 0, 0, 0, -255, -255, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 0, 0, 0, 0, - 201, 0, 0, 202, 203, 204, 205, 0, 0, 0, - -255, -255, -255, -255, 0, 0, 0, -255, 0, -255, - 0, 0, 0, 0, -255, 0, 0, 0, 0, 0, - 0, -255, -255, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -255, 0, -255, -255, 0, -255, - -255, -255, -255, -255, -255, -255, -255, -255, -255, -255, - -255, -255, -255, 0, 0, 0, 0, -255, 0, 0, - -255, -255, -255, -255, -255, 18, 83, 0, 19, 0, - 0, 20, 0, 0, 21, 22, 23, 0, 0, 24, - 25, 144, 27, 28, 29, 30, 116, 31, 32, 33, - 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, - 0, 0, 0, 0, 0, 0, 0, 0, 186, 187, - 0, 0, 0, 0, 0, 39, 0, 0, 40, 41, + 34, 35, 36, 88, 108, 89, 90, 91, 37, 38, + 92, 93, 94, 95, 96, 97, 0, 0, 0, 98, + 99, 100, 101, 102, 0, 39, 0, 103, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, - 50, 51, 193, 194, 195, 196, 197, 198, 199, 200, - 52, 0, 0, 0, 201, 0, 0, 202, 203, 204, - 205, 0, 0, 0, 0, 53, 54, 0, 55, 18, - 56, 57, 19, 120, 0, 20, 0, 58, 21, 22, - 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, - 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, - 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, - 0, 0, 40, 41, 42, 43, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, - 54, 0, 55, 0, 56, 57, 18, 83, 0, 19, - 0, 58, 20, 0, 0, 21, 22, 23, 0, 0, + 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 86, 0, 53, 54, 0, 55, 0, + 56, 57, 18, 84, 0, 19, 0, 58, 20, 0, + 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, + 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, + 88, 0, 89, 90, 91, 37, 38, 92, 93, 94, + 95, 96, 97, 0, 0, 0, 98, 99, 100, 101, + 102, 0, 39, 0, 103, 40, 41, 42, 43, 44, + 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, + 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, + 0, 0, 20, 0, 58, 21, 22, 23, -17, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -560,17 +518,44 @@ static const yytype_int16 yytable[] = 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, + 0, 86, 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, 0, 0, 20, 0, 58, 21, - 22, 23, 152, 0, 24, 25, 26, 27, 28, 29, + 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 39, 0, 0, 40, 41, 42, 43, 44, -217, 0, + 45, 46, 47, 48, 49, 50, 51, 0, 0, 210, + 0, 211, -217, -217, 0, 52, 0, 0, 0, 0, + -217, -217, 0, 0, 0, 0, 0, 0, 0, 0, + 53, 54, 0, 55, 0, 56, 57, 0, 0, 0, + 0, -17, 58, 0, 0, -217, -217, -217, -217, 0, + 0, 0, -217, 0, -217, 0, 0, 0, 0, -217, + 0, 0, 0, 0, 0, 0, -217, -217, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -217, + 0, -217, -217, 0, -217, -217, -217, -217, -217, -217, + -217, -217, -217, -217, -217, -217, -217, -217, -256, 189, + 190, 0, -217, 0, 0, -217, -217, -217, -217, -217, + 0, 0, -256, -256, 0, 0, 0, 0, 0, 0, + -256, -256, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 0, 0, 0, 0, 204, 0, 0, 205, 206, + 207, 208, 0, 0, 0, -256, -256, -256, -256, 0, + 0, 0, -256, 0, -256, 0, 0, 0, 0, -256, + 0, 0, 0, 0, 0, 0, -256, -256, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, + 0, -256, -256, 0, -256, -256, -256, -256, -256, -256, + -256, -256, -256, -256, -256, -256, -256, -256, 0, 0, + 0, 0, -256, 0, 0, -256, -256, -256, -256, -256, + 18, 84, 0, 19, 0, 0, 20, 0, 0, 21, + 22, 23, 0, 0, 24, 25, 146, 27, 28, 29, + 30, 118, 31, 32, 33, 34, 35, 36, 0, 0, + 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 54, 0, 55, 18, 56, 57, 19, 0, 0, + 53, 54, 0, 55, 18, 56, 57, 19, 122, 0, 20, 0, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, @@ -579,227 +564,223 @@ static const yytype_int16 yytable[] = 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, - 57, 19, 0, 0, 20, 171, 58, 21, 22, 23, - 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, - 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, - 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, - 0, 40, 41, 42, 43, 44, 0, 0, 45, 46, - 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, - 0, 55, 18, 56, 57, 19, 0, 0, 20, 268, - 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, - 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, - 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, + 0, 0, 0, 0, 53, 54, 0, 55, 0, 56, + 57, 18, 84, 0, 19, 0, 58, 20, 0, 0, + 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, + 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, + 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 39, 0, 0, 40, 41, 42, 43, 44, - 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, + 0, 39, 0, 0, 40, 41, 42, 43, 44, 0, + 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, - 0, 0, 20, 283, 58, 21, 22, 23, 0, 0, - 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, - 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, - 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 39, 0, 0, 40, - 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, - 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, - 18, 56, 57, 19, 0, 0, 20, 294, 58, 21, - 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, - 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, - 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, + 0, 53, 54, 0, 55, 18, 56, 57, 19, 0, + 0, 20, 0, 58, 21, 22, 23, 155, 0, 24, + 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, + 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 39, 0, 0, 40, 41, 42, 43, 44, 0, 0, - 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 39, 0, 0, 40, 41, + 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, + 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, + 56, 57, 19, 0, 0, 20, 0, 58, 21, 22, + 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, + 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, + 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, + 0, 0, 40, 41, 42, 43, 44, 0, 0, 45, + 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 54, 0, 55, 18, 56, 57, 19, 0, 0, 20, + 174, 58, 21, 22, 23, 0, 0, 24, 25, 26, + 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, + 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 54, 0, 55, 18, 56, 57, 19, 0, 0, - 20, 327, 58, 21, 22, 23, 0, 0, 24, 25, - 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, - 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, + 0, 0, 0, 39, 0, 0, 40, 41, 42, 43, + 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 39, 0, 0, 40, 41, 42, - 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, + 19, 0, 0, 20, 275, 58, 21, 22, 23, 0, + 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, + 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, + 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, + 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, + 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, + 55, 18, 56, 57, 19, 0, 0, 20, 290, 58, + 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, + 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, + 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, - 57, 19, 0, 0, 20, 389, 58, 21, 22, 23, - 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, - 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, - 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, - 0, 40, 41, 42, 43, 44, 0, 0, 45, 46, - 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, - 0, 55, 18, 56, 57, 19, 0, 0, 20, 408, - 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, - 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, - 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, + 0, 39, 0, 0, 40, 41, 42, 43, 44, 0, + 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 39, 0, 0, 40, 41, 42, 43, 44, - 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, + 0, 53, 54, 0, 55, 18, 56, 57, 19, 0, + 0, 20, 301, 58, 21, 22, 23, 0, 0, 24, + 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, + 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, - 0, 0, 20, 0, 58, 21, 22, 23, 0, 0, - 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, - 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, - 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 39, 0, 0, 40, - 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, - 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 185, 0, 0, 0, 0, 0, - 0, 186, 187, 0, 0, 0, 53, 54, 0, 55, - 0, 56, 57, 0, 0, 0, 0, 0, 277, 188, - 189, 399, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 0, 0, 0, 0, 201, 185, 0, - 202, 203, 204, 205, 0, 186, 187, 0, 0, 0, + 0, 0, 0, 0, 0, 39, 0, 0, 40, 41, + 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, + 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, + 56, 57, 19, 0, 0, 20, 334, 58, 21, 22, + 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, + 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, + 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, + 0, 0, 40, 41, 42, 43, 44, 0, 0, 45, + 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 54, 0, 55, 18, 56, 57, 19, 0, 0, 20, + 397, 58, 21, 22, 23, 0, 0, 24, 25, 26, + 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, + 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 188, 189, 0, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 0, 0, 0, - 0, 201, 0, 0, 202, 203, 204, 205 + 0, 0, 0, 39, 0, 0, 40, 41, 42, 43, + 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, + 19, 0, 0, 20, 416, 58, 21, 22, 23, 0, + 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, + 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, + 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, + 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, + 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, + 55, 18, 56, 57, 19, 0, 0, 20, 0, 58, + 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, + 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, + 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 39, 0, 0, 40, 41, 42, 43, 44, 0, + 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 0, 0, 188, + 0, 0, 0, 0, 0, 0, 189, 190, 0, 0, + 0, 53, 54, 0, 55, 0, 56, 57, 0, 0, + 0, 0, 0, 284, 191, 192, 407, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 0, 0, + 0, 0, 204, 188, 0, 205, 206, 207, 208, 0, + 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, + 0, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 0, 0, 0, 0, 204, 188, 0, 205, + 206, 207, 208, 0, 189, 190, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 192, 0, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 0, 0, 0, 0, + 204, 0, 0, 205, 206, 207, 208 }; static const yytype_int16 yycheck[] = { - 17, 264, 10, 18, 9, 20, 128, 22, 44, 24, - 25, 19, 27, 28, 356, 16, 52, 50, 18, 50, - 12, 480, 22, 13, 24, 25, 14, 27, 28, 44, - 45, 512, 0, 80, 156, 50, 11, 10, 11, 47, - 13, 140, 141, 16, 44, 45, 112, 20, 14, 112, - 58, 24, 25, 11, 27, 11, 112, 13, 15, 14, - 18, 11, 20, 13, 22, 112, 24, 25, 14, 27, - 28, 96, 13, 11, 75, 13, 16, 112, 83, 14, - 20, 13, 97, 94, 24, 43, 44, 45, 46, 11, - 11, 15, 128, 26, 575, 83, 84, 70, 31, 23, - 346, 22, 103, 11, 14, 564, 83, 84, 14, 26, - 356, 112, 148, 359, 360, 107, 14, 83, 84, 14, - 156, 77, 21, 131, 23, 158, 141, 158, 83, 84, - 112, 139, 140, 141, 111, 34, 77, 83, 84, 112, - 39, 141, 100, 158, 43, 77, 22, 46, 83, 84, - 49, 159, 51, 112, 53, 54, 55, 56, 57, 258, - 423, 10, 112, 103, 112, 173, 174, 16, 176, 177, - 178, 20, 112, 83, 84, 24, 134, 83, 84, 11, - 11, 13, 13, 141, 22, 83, 84, 22, 83, 84, - 205, 29, 225, 22, 225, 22, 442, 214, 206, 207, - 208, 209, 210, 211, 212, 213, 22, 83, 84, 112, - 225, 22, 475, 22, 11, 220, 221, 222, 223, 224, - 112, 226, 227, 259, 229, 230, 75, 83, 84, 571, - 238, 239, 240, 241, 242, 243, 16, 483, 484, 11, - 20, 13, 83, 84, 24, 77, 77, 112, 83, 84, - 258, 22, 96, 97, 83, 84, 80, 379, 16, 158, - 53, 11, 20, 13, 272, 22, 24, 83, 84, 277, - 111, 517, 83, 84, 83, 84, 175, 235, 11, 287, - 13, 11, 181, 13, 112, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 318, 111, 551, 83, 84, 316, 317, - 11, 410, 83, 84, 29, 16, 324, 83, 84, 83, - 84, 83, 84, 77, 357, 26, 357, 94, 95, 111, - 31, 83, 84, 348, 111, 343, 344, 345, 346, 51, - 52, 12, 357, 379, 361, 111, 77, 111, 356, 111, - 13, 359, 360, 358, 481, 482, 478, 68, 485, 111, - 318, 26, 489, 490, 83, 84, 26, 47, 48, 49, - 50, 216, 217, 112, 54, 380, 56, 47, 48, 49, - 50, 103, 509, 510, 54, 59, 56, 395, 99, 37, - 38, 518, 111, 104, 89, 90, 107, 108, 109, 110, - 515, 31, 410, 83, 84, 15, 533, 29, 81, 111, - 537, 538, 12, 83, 84, 420, 531, 532, 29, 424, - 13, 11, 25, 84, 25, 61, 16, 542, 555, 25, - 435, 111, 68, 69, 442, 25, 26, 552, 553, 566, - 25, 31, 478, 570, 452, 107, 108, 109, 110, 25, - 565, 87, 579, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 240, 241, 242, 243, 104, 112, - 18, 107, 108, 109, 110, 483, 484, 26, 16, 496, - 112, 498, 86, 112, 61, 111, 12, 492, 112, 12, - 507, 68, 69, 12, 99, 12, 12, 26, 503, 104, - 399, 22, 107, 108, 109, 110, 521, 81, 516, 517, - 112, 11, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 111, 111, 111, 11, 104, 111, 111, - 107, 108, 109, 110, 0, 1, 3, 4, 5, 6, - 7, 8, 9, 551, 10, 11, 111, 13, 447, 111, - 16, 568, 12, 19, 20, 21, 22, 111, 24, 25, - 26, 27, 28, 29, 30, 22, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 22, 68, 69, 54, 55, - 56, 57, 58, 111, 60, 79, 62, 63, 64, 65, - 66, 67, 112, 111, 70, 71, 72, 73, 74, 75, - 76, 93, 94, 95, 96, 97, 98, 99, 22, 85, - 22, 111, 104, 111, 22, 107, 108, 109, 110, 112, - 111, 0, 1, 111, 100, 101, 17, 103, 78, 105, - 106, 10, 11, 111, 13, 13, 112, 16, 111, 107, - 19, 20, 21, 22, 516, 24, 25, 26, 27, 28, - 29, 30, 344, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 68, 69, 571, 54, 55, 56, 57, 58, - 422, 60, 250, 62, 63, 64, 65, 66, 67, 279, - 375, 70, 71, 72, 73, 74, 75, 76, 94, 95, - 96, 97, 98, 99, 457, 374, 85, 503, 104, 158, - 476, 107, 108, 109, 110, -1, 357, 225, -1, 1, - -1, 100, 101, -1, 103, -1, 105, 106, 10, 11, - 12, 13, -1, 112, 16, -1, -1, 19, 20, 21, - 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 68, - 69, -1, 54, 55, 56, 57, 58, -1, 60, -1, - 62, 63, 64, 65, 66, 67, -1, -1, 70, 71, - 72, 73, 74, 75, 76, -1, -1, 96, 97, 98, - 99, -1, -1, 85, -1, 104, -1, -1, 107, 108, - 109, 110, -1, -1, -1, -1, 1, -1, 100, 101, - -1, 103, -1, 105, 106, 10, 11, 12, 13, -1, - 112, 16, -1, -1, 19, 20, 21, 22, -1, 24, - 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 68, 69, -1, 54, - 55, 56, 57, 58, -1, 60, -1, 62, 63, 64, - 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, - 75, 76, -1, -1, -1, -1, 98, 99, -1, -1, - 85, -1, 104, -1, -1, 107, 108, 109, 110, -1, - -1, -1, -1, 1, -1, 100, 101, -1, 103, -1, - 105, 106, 10, 11, 12, 13, -1, 112, 16, -1, - -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, - 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 68, 69, -1, 54, 55, 56, 57, - 58, -1, 60, -1, 62, 63, 64, 65, 66, 67, - -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, - -1, -1, -1, -1, 99, -1, -1, 85, -1, 104, - -1, -1, 107, 108, 109, 110, -1, -1, -1, -1, - 1, -1, 100, 101, -1, 103, -1, 105, 106, 10, - 11, 12, 13, -1, 112, 16, -1, -1, 19, 20, - 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, - -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - -1, -1, -1, 54, 55, 56, 57, 58, -1, 60, - -1, 62, 63, 64, 65, 66, 67, -1, -1, 70, - 71, 72, 73, 74, 75, 76, 104, -1, -1, 107, - 108, 109, 110, -1, 85, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1, -1, 100, - 101, -1, 103, -1, 105, 106, 10, 11, 12, 13, - -1, 112, 16, -1, -1, 19, 20, 21, 22, -1, - 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, - 54, 55, 56, 57, 58, -1, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, - 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, - -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1, -1, 100, 101, -1, 103, - -1, 105, 106, 10, 11, -1, 13, -1, 112, 16, + 10, 17, 44, 9, 50, 50, 130, 364, 142, 143, + 52, 270, 11, 492, 13, 22, 12, 22, 13, 524, + 0, 18, 11, 20, 29, 22, 14, 24, 25, 11, + 27, 28, 18, 22, 44, 159, 22, 80, 24, 25, + 13, 27, 28, 10, 83, 84, 22, 44, 45, 14, + 354, 112, 19, 50, 14, 16, 14, 16, 44, 45, + 364, 20, 15, 367, 368, 24, 14, 96, 14, 112, + 23, 14, 111, 11, 13, 13, 83, 84, 84, 11, + 47, 13, 77, 10, 11, 590, 13, 112, 130, 16, + 112, 58, 14, 20, 104, 83, 84, 24, 25, 578, + 27, 98, 493, 494, 77, 115, 497, 83, 84, 151, + 501, 502, 108, 112, 75, 161, 161, 159, 83, 84, + 130, 83, 84, 83, 84, 83, 84, 137, 138, 263, + 521, 522, 142, 143, 15, 83, 84, 83, 84, 530, + 83, 84, 103, 70, 103, 77, 143, 451, 112, 159, + 11, 112, 13, 112, 545, 11, 11, 143, 13, 550, + 551, 83, 84, 14, 161, 11, 133, 13, 11, 11, + 13, 13, 431, 94, 141, 142, 143, 22, 569, 83, + 84, 11, 228, 228, 11, 112, 13, 83, 84, 580, + 10, 495, 496, 26, 585, 162, 16, 22, 16, 112, + 20, 217, 20, 594, 24, 112, 24, 111, 218, 176, + 177, 208, 179, 180, 181, 111, 77, 223, 224, 225, + 226, 227, 264, 229, 230, 529, 232, 233, 487, 586, + 22, 228, 83, 84, 77, 26, 22, 112, 83, 84, + 31, 112, 209, 210, 211, 212, 213, 214, 215, 216, + 94, 95, 22, 263, 527, 75, 96, 97, 83, 84, + 270, 565, 112, 387, 112, 47, 48, 49, 50, 11, + 543, 544, 54, 22, 56, 242, 243, 244, 245, 246, + 247, 53, 555, 22, 418, 11, 112, 83, 84, 111, + 16, 83, 84, 566, 567, 80, 263, 83, 84, 25, + 26, 83, 84, 61, 29, 31, 579, 51, 52, 77, + 68, 69, 279, 83, 84, 111, 111, 284, 16, 365, + 365, 12, 20, 77, 219, 220, 24, 294, 325, 111, + 13, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 83, 84, 26, 387, 104, 37, 38, 107, + 108, 109, 110, 369, 364, 26, 323, 324, 103, 356, + 366, 83, 84, 59, 331, 112, 490, 15, 365, 31, + 111, 381, 382, 90, 91, 385, 29, 387, 83, 84, + 390, 81, 388, 111, 351, 352, 353, 354, 12, 111, + 83, 84, 107, 108, 109, 110, 29, 364, 11, 13, + 367, 368, 25, 84, 68, 18, 111, 20, 418, 22, + 25, 24, 25, 25, 27, 28, 25, 25, 111, 18, + 430, 431, 428, 112, 26, 16, 432, 112, 112, 86, + 43, 44, 45, 46, 111, 99, 403, 443, 112, 21, + 104, 23, 12, 107, 108, 109, 110, 12, 490, 12, + 12, 418, 34, 47, 48, 49, 50, 39, 12, 26, + 54, 43, 56, 11, 46, 68, 69, 49, 16, 51, + 111, 53, 54, 55, 56, 57, 111, 487, 26, 111, + 490, 111, 111, 31, 451, 112, 22, 11, 101, 83, + 84, 111, 508, 111, 510, 462, 99, 81, 504, 11, + 111, 104, 12, 519, 107, 108, 109, 110, 22, 515, + 99, 68, 69, 523, 524, 104, 22, 527, 107, 108, + 109, 110, 112, 136, 111, 111, 79, 537, 495, 496, + 143, 22, 22, 543, 544, 111, 533, 94, 95, 96, + 97, 98, 99, 111, 22, 555, 112, 104, 17, 78, + 107, 108, 109, 110, 13, 111, 566, 567, 108, 111, + 111, 528, 529, 573, 111, 528, 582, 104, 352, 579, + 107, 108, 109, 110, 586, 286, 586, 430, 382, 161, + 590, 3, 4, 5, 6, 7, 8, 9, 244, 245, + 246, 247, 255, 383, 468, 515, 178, 488, 565, 365, + 161, -1, 184, 228, -1, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 0, 1, 238, -1, -1, -1, -1, + -1, -1, -1, 10, 11, -1, 13, -1, -1, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, -1, -1, -1, 54, 55, 56, + 47, 48, 49, 50, -1, 68, 69, 54, 55, 56, 57, 58, -1, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, - -1, -1, 79, -1, -1, -1, -1, -1, 85, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 93, 94, 95, 96, 97, 98, 99, -1, 85, -1, + -1, 104, 325, -1, 107, 108, 109, 110, -1, -1, + -1, 0, 1, 100, 101, -1, 103, -1, 105, 106, + -1, 10, 11, -1, 13, 112, -1, 16, -1, -1, + 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, + 29, 30, -1, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, -1, 68, 69, 54, 55, 56, 57, 58, + -1, 60, -1, 62, 63, 64, 65, 66, 67, -1, + -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, + -1, 96, 97, 98, 99, -1, 85, -1, -1, 104, + 68, 69, 107, 108, 109, 110, -1, -1, -1, -1, + -1, 100, 101, -1, 103, 407, 105, 106, -1, -1, + -1, -1, -1, 112, 92, 93, 94, 95, 96, 97, + 98, 99, -1, -1, 1, -1, 104, -1, -1, 107, + 108, 109, 110, 10, 11, 12, 13, -1, -1, 16, + -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, + 27, 28, 29, 30, 456, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 68, 69, -1, 54, 55, 56, + 57, 58, -1, 60, -1, 62, 63, 64, 65, 66, + 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, + -1, -1, -1, -1, 98, 99, -1, -1, 85, -1, + 104, -1, -1, 107, 108, 109, 110, -1, -1, -1, -1, 1, -1, 100, 101, -1, 103, -1, 105, 106, - 10, 11, -1, 13, -1, 112, 16, -1, -1, 19, + 10, 11, 12, 13, -1, 112, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, @@ -808,73 +789,66 @@ static const yytype_int16 yycheck[] = 70, 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, - 100, 101, -1, 103, -1, 105, 106, 10, 11, -1, + 100, 101, -1, 103, -1, 105, 106, 10, 11, 12, 13, -1, 112, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, - 33, 34, 35, 36, 37, 38, -1, 40, 41, 42, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, 55, 56, 57, 58, -1, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1, -1, -1, -1, -1, 100, 101, -1, - 103, 10, 105, 106, 13, -1, -1, 16, -1, 112, - 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, - 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, - -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1, -1, 100, 101, -1, + 103, -1, 105, 106, 10, 11, 12, 13, -1, 112, + 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, -1, -1, -1, 54, 55, + 56, 57, 58, -1, 60, -1, 62, 63, 64, 65, + 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, + 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, 63, 64, 65, 66, 67, -1, + -1, -1, 1, -1, 100, 101, -1, 103, -1, 105, + 106, 10, 11, 12, 13, -1, 112, 16, -1, -1, + 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, + 29, 30, -1, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, -1, -1, -1, 54, 55, 56, 57, 58, + -1, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, - -1, 100, 101, -1, 103, 10, 105, 106, 13, -1, - -1, 16, -1, 112, 19, 20, 21, -1, -1, 24, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, + -1, 100, 101, -1, 103, -1, 105, 106, 10, 11, + -1, 13, -1, 112, 16, -1, -1, 19, 20, 21, + 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, + -1, -1, 54, 55, 56, 57, 58, -1, 60, -1, + 62, 63, 64, 65, 66, 67, -1, -1, 70, 71, + 72, 73, 74, 75, 76, -1, -1, 79, -1, -1, + -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1, -1, 100, 101, + -1, 103, -1, 105, 106, 10, 11, -1, 13, -1, + 112, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, - 35, 36, 37, -1, -1, -1, -1, -1, 43, 44, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, - 65, 66, 67, 0, -1, 70, 71, 72, 73, 74, - 75, 76, -1, -1, 11, -1, 13, 14, 15, -1, - 85, -1, -1, -1, -1, 22, 23, -1, -1, -1, - -1, -1, -1, -1, -1, 100, 101, -1, 103, -1, - 105, 106, -1, -1, -1, -1, 111, 112, -1, -1, - 47, 48, 49, 50, -1, -1, -1, 54, -1, 56, - -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, - -1, 68, 69, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 81, -1, 83, 84, -1, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 0, 68, 69, -1, 104, -1, -1, - 107, 108, 109, 110, 111, -1, -1, 14, 15, -1, - -1, -1, -1, -1, -1, 22, 23, 91, 92, 93, - 94, 95, 96, 97, 98, 99, -1, -1, -1, -1, - 104, -1, -1, 107, 108, 109, 110, -1, -1, -1, - 47, 48, 49, 50, -1, -1, -1, 54, -1, 56, - -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, - -1, 68, 69, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 81, -1, 83, 84, -1, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, -1, -1, -1, -1, 104, -1, -1, - 107, 108, 109, 110, 111, 10, 11, -1, 13, -1, - -1, 16, -1, -1, 19, 20, 21, -1, -1, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, -1, -1, -1, -1, -1, 43, 44, - -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, - -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, + 55, 56, 57, 58, -1, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, - 75, 76, 92, 93, 94, 95, 96, 97, 98, 99, - 85, -1, -1, -1, 104, -1, -1, 107, 108, 109, - 110, -1, -1, -1, -1, 100, 101, -1, 103, 10, - 105, 106, 13, 14, -1, 16, -1, 112, 19, 20, - 21, -1, -1, 24, 25, 26, 27, 28, 29, 30, - -1, 32, 33, 34, 35, 36, 37, -1, -1, -1, - -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, - -1, -1, 63, 64, 65, 66, 67, -1, -1, 70, - 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, - -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, - 101, -1, 103, -1, 105, 106, 10, 11, -1, 13, - -1, 112, 16, -1, -1, 19, 20, 21, -1, -1, + 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, + 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1, -1, 100, 101, -1, 103, -1, + 105, 106, 10, 11, -1, 13, -1, 112, 16, -1, + -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, + 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, + 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, -1, -1, -1, 54, 55, 56, 57, + 58, -1, 60, -1, 62, 63, 64, 65, 66, 67, + -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, + -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, + -1, -1, 100, 101, -1, 103, 10, 105, 106, 13, + -1, -1, 16, -1, 112, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -882,17 +856,44 @@ static const yytype_int16 yycheck[] = 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 100, 101, -1, 103, + -1, 1, -1, -1, -1, -1, 100, 101, -1, 103, 10, 105, 106, 13, -1, -1, 16, -1, 112, 19, - 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, + 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 60, -1, -1, 63, 64, 65, 66, 67, 0, -1, + 70, 71, 72, 73, 74, 75, 76, -1, -1, 11, + -1, 13, 14, 15, -1, 85, -1, -1, -1, -1, + 22, 23, -1, -1, -1, -1, -1, -1, -1, -1, + 100, 101, -1, 103, -1, 105, 106, -1, -1, -1, + -1, 111, 112, -1, -1, 47, 48, 49, 50, -1, + -1, -1, 54, -1, 56, -1, -1, -1, -1, 61, + -1, -1, -1, -1, -1, -1, 68, 69, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, + -1, 83, 84, -1, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 0, 68, + 69, -1, 104, -1, -1, 107, 108, 109, 110, 111, + -1, -1, 14, 15, -1, -1, -1, -1, -1, -1, + 22, 23, 91, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, 104, -1, -1, 107, 108, + 109, 110, -1, -1, -1, 47, 48, 49, 50, -1, + -1, -1, 54, -1, 56, -1, -1, -1, -1, 61, + -1, -1, -1, -1, -1, -1, 68, 69, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, + -1, 83, 84, -1, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, -1, -1, + -1, -1, 104, -1, -1, 107, 108, 109, 110, 111, + 10, 11, -1, 13, -1, -1, 16, -1, -1, 19, + 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, -1, -1, + -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 100, 101, -1, 103, 10, 105, 106, 13, -1, -1, + 100, 101, -1, 103, 10, 105, 106, 13, 14, -1, 16, -1, 112, 19, 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, @@ -901,90 +902,123 @@ static const yytype_int16 yycheck[] = 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 100, 101, -1, 103, 10, 105, - 106, 13, -1, -1, 16, 111, 112, 19, 20, 21, - -1, -1, 24, 25, 26, 27, 28, 29, 30, -1, - 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, - -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, - -1, 63, 64, 65, 66, 67, -1, -1, 70, 71, - 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, - -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, - -1, 103, 10, 105, 106, 13, -1, -1, 16, 111, - 112, 19, 20, 21, -1, -1, 24, 25, 26, 27, - 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, - -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, + -1, -1, -1, -1, 100, 101, -1, 103, -1, 105, + 106, 10, 11, -1, 13, -1, 112, 16, -1, -1, + 19, 20, 21, -1, -1, 24, 25, 26, 27, 28, + 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, + -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, - -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, - -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, + -1, 60, -1, -1, 63, 64, 65, 66, 67, -1, + -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, + -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 100, 101, -1, 103, 10, 105, 106, 13, - -1, -1, 16, 111, 112, 19, 20, 21, -1, -1, - 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, - 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, - 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, - 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, - -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 100, 101, -1, 103, - 10, 105, 106, 13, -1, -1, 16, 111, 112, 19, - 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, - 30, -1, 32, 33, 34, 35, 36, 37, -1, -1, - -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, + -1, 100, 101, -1, 103, 10, 105, 106, 13, -1, + -1, 16, -1, 112, 19, 20, 21, 22, -1, 24, + 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, + 35, 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 60, -1, -1, 63, 64, 65, 66, 67, -1, -1, - 70, 71, 72, 73, 74, 75, 76, -1, -1, -1, - -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, + 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, + 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, + 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 100, 101, -1, 103, 10, + 105, 106, 13, -1, -1, 16, -1, 112, 19, 20, + 21, -1, -1, 24, 25, 26, 27, 28, 29, 30, + -1, 32, 33, 34, 35, 36, 37, -1, -1, -1, + -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, + -1, -1, 63, 64, 65, 66, 67, -1, -1, 70, + 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, + -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, + 101, -1, 103, 10, 105, 106, 13, -1, -1, 16, + 111, 112, 19, 20, 21, -1, -1, 24, 25, 26, + 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, + 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 100, 101, -1, 103, 10, 105, 106, 13, -1, -1, - 16, 111, 112, 19, 20, 21, -1, -1, 24, 25, - 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, - 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, + -1, -1, -1, 60, -1, -1, 63, 64, 65, 66, + 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, + -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, - 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, - 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, + -1, -1, -1, 100, 101, -1, 103, 10, 105, 106, + 13, -1, -1, 16, 111, 112, 19, 20, 21, -1, + -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, + 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, + 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, + 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, + 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, + -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 100, 101, -1, + 103, 10, 105, 106, 13, -1, -1, 16, 111, 112, + 19, 20, 21, -1, -1, 24, 25, 26, 27, 28, + 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, + -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 100, 101, -1, 103, 10, 105, - 106, 13, -1, -1, 16, 111, 112, 19, 20, 21, - -1, -1, 24, 25, 26, 27, 28, 29, 30, -1, - 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, - -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, - -1, 63, 64, 65, 66, 67, -1, -1, 70, 71, - 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, - -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, - -1, 103, 10, 105, 106, 13, -1, -1, 16, 111, - 112, 19, 20, 21, -1, -1, 24, 25, 26, 27, - 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, - -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, + -1, 60, -1, -1, 63, 64, 65, 66, 67, -1, + -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, + -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, - -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, - -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, + -1, 100, 101, -1, 103, 10, 105, 106, 13, -1, + -1, 16, 111, 112, 19, 20, 21, -1, -1, 24, + 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, + 35, 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 100, 101, -1, 103, 10, 105, 106, 13, - -1, -1, 16, -1, 112, 19, 20, 21, -1, -1, - 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, - 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, - 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, - 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, - -1, 85, -1, -1, 61, -1, -1, -1, -1, -1, - -1, 68, 69, -1, -1, -1, 100, 101, -1, 103, - -1, 105, 106, -1, -1, -1, -1, -1, 112, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, -1, -1, -1, -1, 104, 61, -1, - 107, 108, 109, 110, -1, 68, 69, -1, -1, -1, + -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, + 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, + 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, + 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 100, 101, -1, 103, 10, + 105, 106, 13, -1, -1, 16, 111, 112, 19, 20, + 21, -1, -1, 24, 25, 26, 27, 28, 29, 30, + -1, 32, 33, 34, 35, 36, 37, -1, -1, -1, + -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, + -1, -1, 63, 64, 65, 66, 67, -1, -1, 70, + 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, + -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, + 101, -1, 103, 10, 105, 106, 13, -1, -1, 16, + 111, 112, 19, 20, 21, -1, -1, 24, 25, 26, + 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, + 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 60, -1, -1, 63, 64, 65, 66, + 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, + -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 100, 101, -1, 103, 10, 105, 106, + 13, -1, -1, 16, 111, 112, 19, 20, 21, -1, + -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, + 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, + 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, + 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, + 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, + -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 100, 101, -1, + 103, 10, 105, 106, 13, -1, -1, 16, -1, 112, + 19, 20, 21, -1, -1, 24, 25, 26, 27, 28, + 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, + -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 86, 87, -1, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, -1, -1, -1, - -1, 104, -1, -1, 107, 108, 109, 110 + -1, 60, -1, -1, 63, 64, 65, 66, 67, -1, + -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, + -1, -1, -1, -1, -1, -1, 85, -1, -1, 61, + -1, -1, -1, -1, -1, -1, 68, 69, -1, -1, + -1, 100, 101, -1, 103, -1, 105, 106, -1, -1, + -1, -1, -1, 112, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, -1, -1, + -1, -1, 104, 61, -1, 107, 108, 109, 110, -1, + 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 86, 87, + -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, -1, -1, -1, -1, 104, 61, -1, 107, + 108, 109, 110, -1, 68, 69, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 87, -1, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, -1, -1, -1, -1, + 104, -1, -1, 107, 108, 109, 110 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -992,64 +1026,65 @@ static const yytype_int16 yycheck[] = static const yytype_uint8 yystos[] = { 0, 3, 4, 5, 6, 7, 8, 9, 114, 115, - 116, 117, 118, 119, 120, 121, 0, 124, 10, 13, + 116, 117, 118, 119, 120, 121, 0, 125, 10, 13, 16, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 43, 44, 60, 63, 64, 65, 66, 67, 70, 71, 72, 73, 74, - 75, 76, 85, 100, 101, 103, 105, 106, 112, 177, - 178, 179, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 193, 196, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 11, 122, 1, 22, 38, 40, 41, - 42, 45, 46, 47, 48, 49, 50, 54, 55, 56, - 57, 58, 62, 122, 131, 144, 177, 39, 129, 130, - 131, 127, 171, 172, 127, 26, 31, 122, 203, 211, - 14, 177, 211, 191, 211, 191, 211, 211, 211, 211, - 192, 13, 112, 191, 155, 155, 155, 191, 112, 112, - 80, 112, 122, 191, 26, 178, 195, 203, 211, 211, - 122, 191, 22, 177, 26, 31, 157, 191, 103, 112, - 194, 203, 204, 205, 191, 178, 191, 191, 191, 191, - 191, 111, 177, 83, 84, 15, 11, 13, 112, 96, - 97, 96, 94, 95, 94, 61, 68, 69, 86, 87, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 104, 107, 108, 109, 110, 112, 11, 13, 11, - 13, 11, 13, 11, 124, 156, 157, 157, 26, 154, - 112, 112, 112, 112, 75, 103, 112, 201, 203, 112, - 112, 122, 11, 125, 22, 53, 146, 22, 47, 48, - 49, 50, 54, 56, 130, 131, 129, 16, 20, 24, - 162, 163, 165, 166, 167, 168, 14, 195, 112, 80, - 177, 111, 122, 29, 158, 77, 159, 111, 111, 177, - 196, 196, 211, 178, 12, 22, 195, 112, 191, 194, - 203, 204, 205, 111, 177, 77, 160, 13, 111, 177, - 177, 191, 177, 177, 111, 177, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 10, 11, 13, 16, 20, - 24, 25, 27, 70, 112, 181, 203, 111, 177, 177, - 177, 177, 177, 177, 177, 177, 127, 26, 153, 154, - 154, 26, 134, 124, 124, 124, 124, 103, 124, 75, - 199, 200, 202, 203, 204, 205, 124, 124, 112, 124, - 124, 126, 59, 122, 143, 177, 150, 177, 143, 143, - 143, 143, 31, 161, 161, 15, 196, 178, 14, 180, - 159, 29, 124, 176, 111, 81, 111, 177, 12, 111, - 177, 160, 111, 29, 177, 13, 22, 14, 111, 88, - 25, 177, 177, 25, 25, 25, 25, 25, 111, 177, - 112, 111, 22, 14, 22, 14, 22, 14, 22, 12, - 18, 123, 132, 133, 11, 22, 26, 149, 177, 150, - 151, 177, 151, 198, 203, 112, 144, 148, 151, 152, - 177, 199, 124, 151, 151, 127, 112, 86, 164, 164, - 166, 111, 23, 197, 195, 124, 174, 112, 169, 170, - 111, 111, 14, 177, 12, 191, 22, 14, 111, 196, - 12, 12, 12, 12, 124, 158, 159, 124, 26, 111, - 111, 111, 111, 112, 124, 111, 22, 137, 151, 111, - 111, 12, 138, 191, 177, 81, 11, 171, 11, 14, - 12, 111, 22, 159, 22, 175, 176, 140, 195, 147, - 147, 125, 125, 151, 151, 125, 135, 112, 111, 125, - 125, 124, 127, 111, 127, 79, 22, 173, 174, 127, - 22, 125, 125, 51, 52, 145, 145, 111, 111, 146, - 149, 151, 125, 203, 12, 12, 128, 12, 146, 146, - 125, 112, 125, 125, 22, 111, 146, 139, 22, 29, - 141, 151, 146, 146, 136, 125, 111, 17, 78, 142, - 111, 147, 146, 125, 127, 125, 152, 79, 145, 111, - 125 + 75, 76, 85, 100, 101, 103, 105, 106, 112, 123, + 178, 179, 180, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 194, 197, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 11, 122, 1, 22, 38, 40, + 41, 42, 45, 46, 47, 48, 49, 50, 54, 55, + 56, 57, 58, 62, 122, 132, 145, 178, 39, 130, + 131, 132, 123, 128, 172, 173, 128, 26, 31, 122, + 204, 212, 14, 178, 212, 192, 212, 192, 212, 212, + 212, 212, 193, 13, 112, 192, 156, 156, 156, 192, + 112, 112, 80, 112, 122, 192, 26, 123, 179, 196, + 204, 212, 212, 122, 192, 22, 178, 26, 31, 158, + 192, 103, 112, 195, 204, 205, 206, 192, 179, 192, + 192, 192, 192, 192, 111, 178, 83, 84, 15, 11, + 13, 112, 96, 97, 96, 94, 95, 94, 61, 68, + 69, 86, 87, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 104, 107, 108, 109, 110, 112, + 11, 13, 11, 13, 11, 13, 11, 125, 157, 158, + 158, 26, 155, 112, 112, 112, 112, 75, 103, 112, + 202, 204, 112, 112, 122, 11, 126, 22, 53, 123, + 147, 22, 47, 48, 49, 50, 54, 56, 131, 132, + 130, 16, 20, 24, 123, 163, 164, 166, 167, 168, + 169, 14, 196, 112, 80, 178, 111, 122, 29, 123, + 159, 77, 123, 160, 111, 111, 178, 197, 197, 212, + 179, 12, 22, 196, 112, 192, 195, 204, 205, 206, + 111, 178, 77, 161, 13, 111, 178, 178, 192, 178, + 178, 111, 178, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 10, 11, 13, 16, 20, 24, 25, 27, + 70, 112, 182, 204, 111, 178, 178, 178, 178, 178, + 178, 178, 178, 128, 26, 123, 154, 155, 155, 26, + 135, 125, 125, 125, 125, 103, 125, 75, 200, 201, + 203, 204, 205, 206, 125, 125, 112, 125, 125, 127, + 59, 122, 144, 178, 151, 178, 144, 144, 144, 144, + 31, 162, 162, 15, 197, 179, 14, 181, 160, 29, + 125, 177, 111, 81, 111, 178, 12, 111, 178, 161, + 111, 29, 178, 13, 22, 14, 111, 88, 25, 178, + 178, 25, 25, 25, 25, 25, 111, 178, 112, 111, + 22, 14, 22, 14, 22, 14, 22, 12, 18, 124, + 133, 134, 11, 22, 26, 150, 178, 151, 152, 178, + 152, 199, 204, 112, 123, 145, 149, 152, 153, 178, + 200, 125, 152, 152, 128, 112, 86, 123, 165, 165, + 167, 111, 23, 123, 198, 196, 125, 175, 112, 123, + 170, 171, 111, 111, 14, 178, 12, 192, 22, 14, + 111, 197, 12, 12, 12, 12, 125, 159, 160, 125, + 26, 111, 111, 111, 111, 112, 125, 111, 22, 138, + 152, 111, 111, 12, 139, 192, 178, 81, 11, 172, + 11, 14, 12, 111, 22, 160, 22, 176, 177, 141, + 196, 148, 148, 126, 126, 152, 152, 126, 136, 112, + 111, 126, 126, 125, 128, 111, 128, 79, 22, 174, + 175, 128, 22, 126, 126, 51, 52, 123, 146, 146, + 111, 111, 147, 150, 152, 126, 204, 12, 12, 123, + 129, 12, 147, 147, 126, 112, 126, 126, 22, 111, + 147, 140, 22, 29, 142, 152, 147, 147, 137, 126, + 111, 17, 78, 123, 143, 111, 148, 147, 126, 128, + 126, 153, 79, 146, 111, 126 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -1057,69 +1092,69 @@ static const yytype_uint8 yyr1[] = { 0, 113, 115, 114, 116, 114, 117, 114, 118, 114, 119, 114, 120, 114, 121, 114, 122, 123, 124, 125, - 126, 127, 127, 128, 128, 129, 129, 130, 130, 131, - 131, 132, 131, 133, 131, 131, 134, 131, 131, 131, - 131, 131, 131, 131, 131, 135, 136, 131, 131, 131, - 137, 131, 131, 131, 138, 139, 131, 131, 140, 131, - 131, 131, 131, 141, 142, 142, 143, 144, 144, 144, - 144, 144, 144, 144, 144, 145, 145, 145, 146, 146, - 147, 148, 148, 149, 149, 150, 151, 152, 153, 153, - 154, 155, 156, 157, 157, 158, 158, 159, 159, 159, - 160, 160, 161, 161, 162, 162, 163, 164, 164, 164, - 165, 166, 166, 167, 167, 167, 168, 168, 169, 169, - 170, 172, 171, 173, 173, 174, 175, 175, 176, 177, - 177, 177, 178, 178, 178, 179, 179, 179, 179, 179, - 179, 179, 179, 179, 180, 179, 181, 181, 182, 182, - 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, - 182, 182, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 183, 183, 183, 183, 183, 184, 184, 184, 184, - 185, 185, 186, 186, 186, 186, 187, 187, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 189, 189, 189, - 189, 189, 189, 190, 190, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 192, 191, 191, 191, 191, 193, 193, - 193, 193, 194, 194, 194, 194, 194, 195, 195, 196, - 196, 197, 197, 198, 199, 199, 199, 200, 200, 201, - 201, 202, 203, 204, 205, 206, 206, 207, 208, 208, - 209, 209, 210, 210, 211, 211, 211, 211 + 126, 127, 128, 128, 129, 129, 130, 130, 131, 131, + 132, 132, 133, 132, 134, 132, 132, 135, 132, 132, + 132, 132, 132, 132, 132, 132, 136, 137, 132, 132, + 132, 138, 132, 132, 132, 139, 140, 132, 132, 141, + 132, 132, 132, 132, 142, 143, 143, 144, 145, 145, + 145, 145, 145, 145, 145, 145, 146, 146, 146, 147, + 147, 148, 149, 149, 150, 150, 151, 152, 153, 154, + 154, 155, 156, 157, 158, 158, 159, 159, 160, 160, + 160, 161, 161, 162, 162, 163, 163, 164, 165, 165, + 165, 166, 167, 167, 168, 168, 168, 169, 169, 170, + 170, 171, 173, 172, 174, 174, 175, 176, 176, 177, + 178, 178, 178, 179, 179, 179, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 181, 180, 182, 182, 183, + 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 184, 184, 185, 185, 185, + 185, 186, 186, 187, 187, 187, 187, 188, 188, 189, + 189, 189, 189, 189, 189, 189, 189, 189, 190, 190, + 190, 190, 190, 190, 191, 191, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 192, 193, 192, 192, 192, 192, 194, + 194, 194, 194, 195, 195, 195, 195, 195, 196, 196, + 197, 197, 198, 198, 199, 200, 200, 200, 201, 201, + 202, 202, 203, 204, 205, 206, 207, 207, 208, 209, + 209, 210, 210, 211, 211, 212, 212, 212, 212 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 0, 4, 0, 3, 0, 3, 0, 3, - 0, 3, 0, 3, 0, 3, 4, 7, 0, 4, - 0, 0, 2, 0, 2, 1, 1, 2, 2, 1, - 4, 0, 7, 0, 6, 4, 0, 7, 7, 7, - 6, 6, 2, 8, 8, 0, 0, 13, 9, 8, - 0, 10, 9, 7, 0, 0, 10, 2, 0, 8, - 2, 2, 1, 2, 0, 3, 1, 1, 1, 3, - 3, 3, 3, 3, 3, 0, 2, 6, 0, 2, - 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, - 0, 0, 0, 1, 1, 0, 1, 0, 2, 1, - 2, 1, 0, 1, 1, 1, 3, 0, 1, 2, - 3, 1, 1, 2, 3, 1, 0, 1, 0, 1, - 3, 0, 2, 1, 1, 4, 1, 1, 5, 3, - 3, 1, 2, 3, 1, 3, 5, 6, 3, 3, - 5, 2, 4, 4, 0, 5, 1, 1, 5, 4, - 5, 4, 5, 6, 5, 4, 5, 4, 3, 6, - 4, 5, 3, 3, 3, 3, 3, 1, 1, 3, - 3, 3, 3, 3, 3, 3, 1, 3, 2, 2, - 3, 3, 1, 3, 2, 2, 3, 3, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 3, 2, 4, - 3, 5, 4, 2, 2, 1, 1, 1, 1, 5, - 2, 1, 2, 3, 1, 2, 1, 1, 1, 1, - 1, 1, 4, 4, 5, 5, 1, 1, 3, 4, - 3, 4, 4, 4, 4, 4, 1, 2, 2, 1, - 2, 2, 1, 2, 1, 2, 1, 3, 1, 3, - 1, 3, 4, 0, 6, 1, 1, 1, 3, 2, - 4, 3, 3, 2, 1, 1, 1, 0, 1, 0, - 1, 0, 2, 1, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 2, 2, 2, 4, 2, 1, 3, - 1, 3, 1, 3, 1, 1, 1, 1 + 0, 3, 0, 3, 0, 3, 4, 0, 7, 0, + 4, 0, 1, 2, 1, 2, 1, 1, 2, 2, + 1, 4, 0, 7, 0, 6, 4, 0, 7, 7, + 7, 6, 6, 2, 8, 8, 0, 0, 13, 9, + 8, 0, 10, 9, 7, 0, 0, 10, 2, 0, + 8, 2, 2, 1, 2, 1, 3, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 1, 2, 6, 1, + 2, 0, 1, 1, 0, 1, 1, 1, 1, 1, + 1, 0, 0, 0, 1, 1, 1, 1, 1, 2, + 1, 2, 1, 0, 1, 1, 1, 3, 1, 1, + 2, 3, 1, 1, 2, 3, 1, 1, 1, 1, + 1, 3, 0, 2, 1, 1, 4, 1, 1, 5, + 3, 3, 1, 2, 3, 1, 3, 5, 6, 3, + 3, 5, 2, 4, 4, 0, 5, 1, 1, 5, + 4, 5, 4, 5, 6, 5, 4, 5, 4, 3, + 6, 4, 5, 3, 3, 3, 3, 3, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 1, 3, 2, + 2, 3, 3, 1, 3, 2, 2, 3, 3, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, + 4, 3, 5, 4, 2, 2, 1, 1, 1, 1, + 5, 2, 1, 2, 3, 1, 2, 1, 1, 1, + 1, 1, 1, 4, 4, 5, 5, 1, 1, 3, + 4, 3, 4, 4, 4, 4, 4, 1, 2, 2, + 1, 2, 2, 1, 2, 1, 2, 1, 3, 1, + 3, 1, 3, 4, 0, 6, 1, 1, 1, 3, + 2, 4, 3, 3, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 2, 2, 4, 2, 1, + 3, 1, 3, 1, 3, 1, 1, 1, 1 }; typedef enum { @@ -1149,7 +1184,7 @@ static const toketypes yy_type_tab[] = toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, - toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, + toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, @@ -1168,6 +1203,6 @@ static const toketypes yy_type_tab[] = }; /* Generated from: - * 930997a2ecab41a5d780b65dcb341084a1ebf4253bedf06dba0b9c95408bc16d perly.y + * b984ee9f20e769dfdc37859c0c93070e5cf8fbc7d2c06f53d085767845dc3de7 perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.y b/perly.y index 8afbbf5ffc35..f607ae670faa 100644 --- a/perly.y +++ b/perly.y @@ -86,6 +86,7 @@ %type stmtseq fullstmt labfullstmt barestmt block mblock else %type expr term subscripted scalar ary hsh arylen star amper sideff %type condition +%type empty %type sliceme kvslice gelem %type listexpr nexpr texpr iexpr mexpr mnexpr %type optlistexpr optexpr optrepl indirob listop method @@ -224,6 +225,10 @@ block : PERLY_BRACE_OPEN remember stmtseq PERLY_BRACE_CLOSE } ; +empty + : %empty { $$ = NULL; } + ; + /* format body */ formblock: PERLY_EQUAL_SIGN remember PERLY_SEMICOLON FORMRBRACK formstmtseq PERLY_SEMICOLON PERLY_DOT { if (parser->copline > (line_t)$PERLY_EQUAL_SIGN) @@ -250,8 +255,8 @@ mremember: %empty /* start a partial lexical scope */ ; /* A sequence of statements in the program */ -stmtseq : %empty - { $$ = NULL; } +stmtseq + : empty | stmtseq[list] fullstmt { $$ = op_append_list(OP_LINESEQ, $list, $fullstmt); PL_pad_reset_pending = TRUE; @@ -261,8 +266,8 @@ stmtseq : %empty ; /* A sequence of format lines */ -formstmtseq: %empty - { $$ = NULL; } +formstmtseq + : empty | formstmtseq[list] formline { $$ = op_append_list(OP_LINESEQ, $list, $formline); PL_pad_reset_pending = TRUE; @@ -524,8 +529,8 @@ formline: THING formarg } ; -formarg : %empty - { $$ = NULL; } +formarg + : empty | FORMLBRACK stmtseq FORMRBRACK { $$ = op_unscope($stmtseq); } ; @@ -554,8 +559,8 @@ sideff : error ; /* else and elsif blocks */ -else : %empty - { $$ = NULL; } +else + : empty | ELSE mblock { ($mblock)->op_flags |= OPf_PARENS; @@ -571,8 +576,8 @@ else : %empty ; /* Continue blocks */ -cont : %empty - { $$ = NULL; } +cont + : empty | CONTINUE block { $$ = op_scope($block); } ; @@ -584,8 +589,8 @@ mintro : %empty intro_my(); } /* Normal expression */ -nexpr : %empty - { $$ = NULL; } +nexpr + : empty | sideff ; @@ -612,7 +617,7 @@ mnexpr : nexpr ; formname: BAREWORD { $$ = $BAREWORD; } - | %empty { $$ = NULL; } + | empty ; startsub: %empty /* start a regular subroutine scope */ @@ -637,14 +642,14 @@ subname : BAREWORD ; /* Subroutine prototype */ -proto : %empty - { $$ = NULL; } +proto + : empty | THING ; /* Optional list of subroutine attributes */ -subattrlist: %empty - { $$ = NULL; } +subattrlist + : empty | COLONATTR THING { $$ = $THING; } | COLONATTR @@ -697,8 +702,8 @@ sigslurpelem: sigslurpsigil sigvarname sigdefault/* def only to catch errors */ ; /* default part of sub signature scalar element: i.e. '= default_expr' */ -sigdefault: %empty - { $$ = NULL; } +sigdefault + : empty | ASSIGNOP { $$ = newOP(OP_NULL, 0); } | ASSIGNOP term @@ -791,14 +796,14 @@ siglist: ; /* () or (....) */ -siglistornull: %empty - { $$ = NULL; } +siglistornull + : empty | siglist { $$ = $siglist; } /* optional subroutine signature */ -optsubsignature: %empty - { $$ = NULL; } +optsubsignature + : empty | subsignature { $$ = $subsignature; } @@ -1348,20 +1353,20 @@ myterm : PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE ; /* Basic list expressions */ -optlistexpr: %empty %prec PREC_LOW - { $$ = NULL; } +optlistexpr + : empty %prec PREC_LOW | listexpr %prec PREC_LOW { $$ = $listexpr; } ; -optexpr: %empty - { $$ = NULL; } +optexpr + : empty | expr { $$ = $expr; } ; -optrepl: %empty - { $$ = NULL; } +optrepl + : empty | PERLY_SLASH expr { $$ = $expr; } ; From 9d692eb78dcc208e8211254a02723dfe8c00d7a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branislav=20Zahradn=C3=ADk?= Date: Tue, 8 Jun 2021 18:21:38 +0200 Subject: [PATCH 5/7] Unify optional rules - start with `opt` (renamed `siglistornull`) - employ bison's default rule whenever possible --- perly.act | 300 ++++++++++++++++++++++++------------------------------ perly.h | 2 +- perly.tab | 50 ++++----- perly.y | 28 ++--- 4 files changed, 172 insertions(+), 208 deletions(-) diff --git a/perly.act b/perly.act index c3263fd40ee1..18e42b338f4a 100644 --- a/perly.act +++ b/perly.act @@ -917,18 +917,6 @@ case 2: break; - case 118: -#line 802 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } - - break; - - case 120: -#line 808 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } - - break; - case 121: #line 812 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } @@ -1009,20 +997,14 @@ case 2: break; - case 124: -#line 883 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } - - break; - case 125: -#line 884 "perly.y" +#line 885 "perly.y" { (yyval.opval) = NULL; } break; case 126: -#line 890 "perly.y" +#line 891 "perly.y" { if (parser->copline > (line_t)(ps[-2].val.ival)) parser->copline = (line_t)(ps[-2].val.ival); @@ -1031,20 +1013,14 @@ case 2: break; - case 127: -#line 900 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } - - break; - case 128: -#line 901 "perly.y" +#line 903 "perly.y" { (yyval.opval) = NULL; } break; case 129: -#line 905 "perly.y" +#line 908 "perly.y" { if (parser->copline > (line_t)(ps[-2].val.ival)) parser->copline = (line_t)(ps[-2].val.ival); @@ -1055,25 +1031,25 @@ case 2: break; case 130: -#line 916 "perly.y" +#line 919 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 131: -#line 918 "perly.y" +#line 921 "perly.y" { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 133: -#line 924 "perly.y" +#line 927 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; case 134: -#line 926 "perly.y" +#line 929 "perly.y" { OP* term = (ps[0].val.opval); (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term); @@ -1082,7 +1058,7 @@ case 2: break; case 136: -#line 935 "perly.y" +#line 938 "perly.y" { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) ); } @@ -1090,7 +1066,7 @@ case 2: break; case 137: -#line 939 "perly.y" +#line 942 "perly.y" { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) ); } @@ -1098,7 +1074,7 @@ case 2: break; case 138: -#line 943 "perly.y" +#line 946 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)), @@ -1108,7 +1084,7 @@ case 2: break; case 139: -#line 949 "perly.y" +#line 952 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, scalar((ps[-2].val.opval)), newMETHOP(OP_METHOD, 0, (ps[0].val.opval)))); @@ -1117,7 +1093,7 @@ case 2: break; case 140: -#line 954 "perly.y" +#line 957 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), @@ -1127,7 +1103,7 @@ case 2: break; case 141: -#line 960 "perly.y" +#line 963 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)), @@ -1137,32 +1113,32 @@ case 2: break; case 142: -#line 966 "perly.y" +#line 969 "perly.y" { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; case 143: -#line 968 "perly.y" +#line 971 "perly.y" { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; case 144: -#line 970 "perly.y" +#line 973 "perly.y" { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; case 145: -#line 972 "perly.y" +#line 975 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, NULL, (ps[0].val.opval)); } break; case 146: -#line 975 "perly.y" +#line 978 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval))); @@ -1171,20 +1147,20 @@ case 2: break; case 149: -#line 990 "perly.y" +#line 993 "perly.y" { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); } break; case 150: -#line 992 "perly.y" +#line 995 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval))); } break; case 151: -#line 995 "perly.y" +#line 998 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[-4].val.opval)),OP_RV2AV), scalar((ps[-1].val.opval))); @@ -1193,7 +1169,7 @@ case 2: break; case 152: -#line 1000 "perly.y" +#line 1003 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[-3].val.opval)),OP_RV2AV), scalar((ps[-1].val.opval))); @@ -1202,14 +1178,14 @@ case 2: break; case 153: -#line 1005 "perly.y" +#line 1008 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval))); } break; case 154: -#line 1008 "perly.y" +#line 1011 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-5].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } @@ -1217,7 +1193,7 @@ case 2: break; case 155: -#line 1012 "perly.y" +#line 1015 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-4].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } @@ -1225,7 +1201,7 @@ case 2: break; case 156: -#line 1016 "perly.y" +#line 1019 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[-3].val.opval)))); if (parser->expect == XBLOCK) @@ -1235,7 +1211,7 @@ case 2: break; case 157: -#line 1022 "perly.y" +#line 1025 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), newCVREF(0, scalar((ps[-4].val.opval))))); @@ -1246,7 +1222,7 @@ case 2: break; case 158: -#line 1030 "perly.y" +#line 1033 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), newCVREF(0, scalar((ps[-3].val.opval))))); @@ -1257,7 +1233,7 @@ case 2: break; case 159: -#line 1037 "perly.y" +#line 1040 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[-2].val.opval)))); if (parser->expect == XBLOCK) @@ -1267,37 +1243,37 @@ case 2: break; case 160: -#line 1043 "perly.y" +#line 1046 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); } break; case 161: -#line 1045 "perly.y" +#line 1048 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); } break; case 162: -#line 1047 "perly.y" +#line 1050 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); } break; case 163: -#line 1052 "perly.y" +#line 1055 "perly.y" { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); } break; case 164: -#line 1054 "perly.y" +#line 1057 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 165: -#line 1056 "perly.y" +#line 1059 "perly.y" { if ((ps[-1].val.ival) != OP_REPEAT) scalar((ps[-2].val.opval)); (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval))); @@ -1306,183 +1282,183 @@ case 2: break; case 166: -#line 1061 "perly.y" +#line 1064 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 167: -#line 1063 "perly.y" +#line 1066 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 168: -#line 1065 "perly.y" +#line 1068 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 169: -#line 1067 "perly.y" +#line 1070 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 170: -#line 1069 "perly.y" +#line 1072 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 171: -#line 1071 "perly.y" +#line 1074 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 172: -#line 1073 "perly.y" +#line 1076 "perly.y" { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 173: -#line 1075 "perly.y" +#line 1078 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 174: -#line 1077 "perly.y" +#line 1080 "perly.y" { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 175: -#line 1079 "perly.y" +#line 1082 "perly.y" { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 176: -#line 1081 "perly.y" +#line 1084 "perly.y" { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 177: -#line 1085 "perly.y" +#line 1088 "perly.y" { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } break; case 178: -#line 1087 "perly.y" +#line 1090 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 179: -#line 1089 "perly.y" +#line 1092 "perly.y" { yyerror("syntax error"); YYERROR; } break; case 180: -#line 1091 "perly.y" +#line 1094 "perly.y" { yyerror("syntax error"); YYERROR; } break; case 181: -#line 1095 "perly.y" +#line 1098 "perly.y" { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 182: -#line 1097 "perly.y" +#line 1100 "perly.y" { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 183: -#line 1101 "perly.y" +#line 1104 "perly.y" { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } break; case 184: -#line 1103 "perly.y" +#line 1106 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 185: -#line 1105 "perly.y" +#line 1108 "perly.y" { yyerror("syntax error"); YYERROR; } break; case 186: -#line 1107 "perly.y" +#line 1110 "perly.y" { yyerror("syntax error"); YYERROR; } break; case 187: -#line 1111 "perly.y" +#line 1114 "perly.y" { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 188: -#line 1113 "perly.y" +#line 1116 "perly.y" { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 189: -#line 1118 "perly.y" +#line 1121 "perly.y" { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); } break; case 190: -#line 1120 "perly.y" +#line 1123 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 191: -#line 1123 "perly.y" +#line 1126 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; case 192: -#line 1125 "perly.y" +#line 1128 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); } break; case 193: -#line 1127 "perly.y" +#line 1130 "perly.y" { (yyval.opval) = newUNOP(OP_POSTINC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); } break; case 194: -#line 1130 "perly.y" +#line 1133 "perly.y" { (yyval.opval) = newUNOP(OP_POSTDEC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));} break; case 195: -#line 1133 "perly.y" +#line 1136 "perly.y" { (yyval.opval) = op_convert_list(OP_JOIN, 0, op_append_elem( OP_LIST, @@ -1497,149 +1473,149 @@ case 2: break; case 196: -#line 1144 "perly.y" +#line 1147 "perly.y" { (yyval.opval) = newUNOP(OP_PREINC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); } break; case 197: -#line 1147 "perly.y" +#line 1150 "perly.y" { (yyval.opval) = newUNOP(OP_PREDEC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); } break; case 198: -#line 1154 "perly.y" +#line 1157 "perly.y" { (yyval.opval) = newANONLIST((ps[-1].val.opval)); } break; case 199: -#line 1156 "perly.y" +#line 1159 "perly.y" { (yyval.opval) = newANONLIST(NULL);} break; case 200: -#line 1158 "perly.y" +#line 1161 "perly.y" { (yyval.opval) = newANONHASH((ps[-2].val.opval)); } break; case 201: -#line 1160 "perly.y" +#line 1163 "perly.y" { (yyval.opval) = newANONHASH(NULL); } break; case 202: -#line 1162 "perly.y" +#line 1165 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); } break; case 203: -#line 1165 "perly.y" +#line 1168 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); } break; case 204: -#line 1171 "perly.y" +#line 1174 "perly.y" { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));} break; case 205: -#line 1173 "perly.y" +#line 1176 "perly.y" { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));} break; case 210: -#line 1181 "perly.y" +#line 1184 "perly.y" { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 211: -#line 1183 "perly.y" +#line 1186 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } break; case 212: -#line 1185 "perly.y" +#line 1188 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 213: -#line 1187 "perly.y" +#line 1190 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),0); } break; case 214: -#line 1189 "perly.y" +#line 1192 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; case 215: -#line 1191 "perly.y" +#line 1194 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 216: -#line 1193 "perly.y" +#line 1196 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; case 217: -#line 1195 "perly.y" +#line 1198 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 218: -#line 1197 "perly.y" +#line 1200 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 219: -#line 1199 "perly.y" +#line 1202 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 220: -#line 1201 "perly.y" +#line 1204 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 221: -#line 1203 "perly.y" +#line 1206 "perly.y" { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} break; case 222: -#line 1205 "perly.y" +#line 1208 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 223: -#line 1207 "perly.y" +#line 1210 "perly.y" { (yyval.opval) = op_prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -1653,7 +1629,7 @@ case 2: break; case 224: -#line 1217 "perly.y" +#line 1220 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVASLICE, 0, @@ -1667,7 +1643,7 @@ case 2: break; case 225: -#line 1227 "perly.y" +#line 1230 "perly.y" { (yyval.opval) = op_prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -1681,7 +1657,7 @@ case 2: break; case 226: -#line 1237 "perly.y" +#line 1240 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVHSLICE, 0, @@ -1695,26 +1671,26 @@ case 2: break; case 227: -#line 1247 "perly.y" +#line 1250 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 228: -#line 1249 "perly.y" +#line 1252 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); } break; case 229: -#line 1251 "perly.y" +#line 1254 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval))); } break; case 230: -#line 1254 "perly.y" +#line 1257 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval)))); @@ -1723,7 +1699,7 @@ case 2: break; case 231: -#line 1259 "perly.y" +#line 1262 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } @@ -1731,130 +1707,130 @@ case 2: break; case 232: -#line 1263 "perly.y" +#line 1266 "perly.y" { (yyval.opval) = newSVREF((ps[-3].val.opval)); } break; case 233: -#line 1265 "perly.y" +#line 1268 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; case 234: -#line 1267 "perly.y" +#line 1270 "perly.y" { (yyval.opval) = newHVREF((ps[-3].val.opval)); } break; case 235: -#line 1269 "perly.y" +#line 1272 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } break; case 236: -#line 1272 "perly.y" +#line 1275 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } break; case 237: -#line 1274 "perly.y" +#line 1277 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); PL_hints |= HINT_BLOCK_SCOPE; } break; case 238: -#line 1277 "perly.y" +#line 1280 "perly.y" { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } break; case 239: -#line 1279 "perly.y" +#line 1282 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; case 240: -#line 1281 "perly.y" +#line 1284 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; case 241: -#line 1283 "perly.y" +#line 1286 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; case 242: -#line 1285 "perly.y" +#line 1288 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; case 243: -#line 1287 "perly.y" +#line 1290 "perly.y" { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } break; case 244: -#line 1289 "perly.y" +#line 1292 "perly.y" { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } break; case 245: -#line 1291 "perly.y" +#line 1294 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; case 246: -#line 1293 "perly.y" +#line 1296 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; case 247: -#line 1296 "perly.y" +#line 1299 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; case 248: -#line 1298 "perly.y" +#line 1301 "perly.y" { (yyval.opval) = newOP((ps[-2].val.ival), 0);} break; case 249: -#line 1300 "perly.y" +#line 1303 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 250: -#line 1302 "perly.y" +#line 1305 "perly.y" { (yyval.opval) = (ps[-2].val.opval); } break; case 251: -#line 1304 "perly.y" +#line 1307 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; case 252: -#line 1306 "perly.y" +#line 1309 "perly.y" { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT) ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0))) : newOP((ps[-2].val.ival), OPf_SPECIAL); } @@ -1862,13 +1838,13 @@ case 2: break; case 253: -#line 1310 "perly.y" +#line 1313 "perly.y" { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; case 254: -#line 1312 "perly.y" +#line 1315 "perly.y" { if ( (ps[0].val.opval)->op_type != OP_TRANS && (ps[0].val.opval)->op_type != OP_TRANSR @@ -1883,73 +1859,61 @@ case 2: break; case 255: -#line 1323 "perly.y" +#line 1326 "perly.y" { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); } break; case 259: -#line 1332 "perly.y" +#line 1335 "perly.y" { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } break; case 260: -#line 1334 "perly.y" +#line 1337 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),1); } break; case 261: -#line 1336 "perly.y" +#line 1339 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); } break; case 262: -#line 1338 "perly.y" +#line 1341 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } break; case 263: -#line 1343 "perly.y" +#line 1346 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; case 264: -#line 1345 "perly.y" +#line 1348 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; case 265: -#line 1348 "perly.y" +#line 1351 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 266: -#line 1350 "perly.y" +#line 1353 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 267: -#line 1352 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } - - break; - - case 269: -#line 1359 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } - - break; - - case 271: -#line 1365 "perly.y" +#line 1355 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; @@ -2060,6 +2024,6 @@ case 2: /* Generated from: - * b984ee9f20e769dfdc37859c0c93070e5cf8fbc7d2c06f53d085767845dc3de7 perly.y + * 9d640388a78a9c6e6e45594dbbf5b3076c577c84be62ff3142c4e54821baf06e perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.h b/perly.h index a2b5e578d47d..000a637bcab6 100644 --- a/perly.h +++ b/perly.h @@ -218,6 +218,6 @@ int yyparse (void); /* Generated from: - * b984ee9f20e769dfdc37859c0c93070e5cf8fbc7d2c06f53d085767845dc3de7 perly.y + * 9d640388a78a9c6e6e45594dbbf5b3076c577c84be62ff3142c4e54821baf06e perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.tab b/perly.tab index cd9dd1beabeb..92c7630a2ffc 100644 --- a/perly.tab +++ b/perly.tab @@ -84,22 +84,22 @@ static const yytype_uint16 yyrline[] = 620, 623, 629, 634, 640, 641, 646, 647, 652, 653, 655, 660, 662, 673, 675, 680, 682, 686, 706, 707, 709, 715, 780, 782, 788, 790, 794, 800, 801, 806, - 807, 811, 815, 815, 883, 884, 889, 900, 901, 904, - 915, 917, 919, 923, 925, 930, 934, 938, 942, 948, - 953, 959, 965, 967, 969, 972, 971, 982, 983, 987, - 991, 994, 999, 1004, 1007, 1011, 1015, 1021, 1029, 1036, - 1042, 1044, 1046, 1051, 1053, 1055, 1060, 1062, 1064, 1066, - 1068, 1070, 1072, 1074, 1076, 1078, 1080, 1084, 1086, 1088, - 1090, 1094, 1096, 1100, 1102, 1104, 1106, 1110, 1112, 1117, - 1119, 1122, 1124, 1126, 1129, 1132, 1143, 1146, 1153, 1155, - 1157, 1159, 1161, 1164, 1170, 1172, 1176, 1177, 1178, 1179, - 1180, 1182, 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198, - 1200, 1202, 1204, 1206, 1216, 1226, 1236, 1246, 1248, 1250, - 1253, 1258, 1262, 1264, 1266, 1268, 1271, 1273, 1276, 1278, - 1280, 1282, 1284, 1286, 1288, 1290, 1292, 1295, 1297, 1299, - 1301, 1303, 1305, 1309, 1312, 1311, 1324, 1325, 1326, 1331, - 1333, 1335, 1337, 1342, 1344, 1347, 1349, 1351, 1357, 1358, - 1363, 1364, 1369, 1370, 1376, 1380, 1381, 1382, 1385, 1386, + 807, 811, 815, 815, 884, 885, 890, 902, 903, 907, + 918, 920, 922, 926, 928, 933, 937, 941, 945, 951, + 956, 962, 968, 970, 972, 975, 974, 985, 986, 990, + 994, 997, 1002, 1007, 1010, 1014, 1018, 1024, 1032, 1039, + 1045, 1047, 1049, 1054, 1056, 1058, 1063, 1065, 1067, 1069, + 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1087, 1089, 1091, + 1093, 1097, 1099, 1103, 1105, 1107, 1109, 1113, 1115, 1120, + 1122, 1125, 1127, 1129, 1132, 1135, 1146, 1149, 1156, 1158, + 1160, 1162, 1164, 1167, 1173, 1175, 1179, 1180, 1181, 1182, + 1183, 1185, 1187, 1189, 1191, 1193, 1195, 1197, 1199, 1201, + 1203, 1205, 1207, 1209, 1219, 1229, 1239, 1249, 1251, 1253, + 1256, 1261, 1265, 1267, 1269, 1271, 1274, 1276, 1279, 1281, + 1283, 1285, 1287, 1289, 1291, 1293, 1295, 1298, 1300, 1302, + 1304, 1306, 1308, 1312, 1315, 1314, 1327, 1328, 1329, 1334, + 1336, 1338, 1340, 1345, 1347, 1350, 1352, 1354, 1360, 1361, + 1365, 1366, 1370, 1371, 1376, 1380, 1381, 1382, 1385, 1386, 1389, 1390, 1393, 1397, 1401, 1407, 1413, 1415, 1419, 1423, 1424, 1428, 1429, 1433, 1434, 1439, 1441, 1443, 1446 }; @@ -138,10 +138,10 @@ static const char *const yytname[] = "iexpr", "mexpr", "mnexpr", "formname", "startsub", "startanonsub", "startformsub", "subname", "proto", "subattrlist", "myattrlist", "sigvarname", "sigslurpsigil", "sigslurpelem", "sigdefault", - "sigscalarelem", "sigelem", "siglist", "siglistornull", - "optsubsignature", "subsignature", "subsigguts", "$@17", "optsubbody", - "subbody", "optsigsubbody", "sigsubbody", "expr", "listexpr", "listop", - "@18", "method", "subscripted", "termbinop", "termrelop", "relopchain", + "sigscalarelem", "sigelem", "siglist", "optsiglist", "optsubsignature", + "subsignature", "subsigguts", "$@17", "optsubbody", "subbody", + "optsigsubbody", "sigsubbody", "expr", "listexpr", "listop", "@18", + "method", "subscripted", "termbinop", "termrelop", "relopchain", "termeqop", "eqopchain", "termunop", "anonymous", "termdo", "term", "@19", "myattrterm", "myterm", "optlistexpr", "optexpr", "optrepl", "my_scalar", "my_var", "refgen_topic", "my_refgen", "amper", "scalar", @@ -1192,10 +1192,10 @@ static const toketypes yy_type_tab[] = toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, + toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, @@ -1203,6 +1203,6 @@ static const toketypes yy_type_tab[] = }; /* Generated from: - * b984ee9f20e769dfdc37859c0c93070e5cf8fbc7d2c06f53d085767845dc3de7 perly.y + * 9d640388a78a9c6e6e45594dbbf5b3076c577c84be62ff3142c4e54821baf06e perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.y b/perly.y index f607ae670faa..d7b4f00d22b2 100644 --- a/perly.y +++ b/perly.y @@ -97,7 +97,7 @@ %type termrelop relopchain termeqop eqopchain %type sigslurpsigil %type sigvarname sigdefault sigscalarelem sigslurpelem -%type sigelem siglist siglistornull subsigguts subsignature optsubsignature +%type sigelem siglist optsiglist subsigguts subsignature optsubsignature %type subbody optsubbody sigsubbody optsigsubbody %type formstmtseq formline formarg @@ -796,16 +796,16 @@ siglist: ; /* () or (....) */ -siglistornull +optsiglist : empty | siglist - { $$ = $siglist; } + ; /* optional subroutine signature */ optsubsignature : empty | subsignature - { $$ = $subsignature; } + ; /* Subroutine signature */ subsignature: PERLY_PAREN_OPEN subsigguts PERLY_PAREN_CLOSE @@ -822,9 +822,9 @@ subsigguts: parser->sig_slurpy = 0; parser->in_my = KEY_sigvar; } - siglistornull + optsiglist { - OP *sigops = $siglistornull; + OP *sigops = $optsiglist; struct op_argcheck_aux *aux; OP *check; @@ -880,7 +880,8 @@ subsigguts: ; /* Optional subroutine body (for named subroutine declaration) */ -optsubbody: subbody { $$ = $subbody; } +optsubbody + : subbody | PERLY_SEMICOLON { $$ = NULL; } ; @@ -897,8 +898,10 @@ subbody: remember PERLY_BRACE_OPEN stmtseq PERLY_BRACE_CLOSE /* optional [ Subroutine body with optional signature ] (for named * subroutine declaration) */ -optsigsubbody: sigsubbody { $$ = $sigsubbody; } +optsigsubbody + : sigsubbody | PERLY_SEMICOLON { $$ = NULL; } + ; /* Subroutine body with optional signature */ sigsubbody: remember optsubsignature PERLY_BRACE_OPEN stmtseq PERLY_BRACE_CLOSE @@ -1354,21 +1357,18 @@ myterm : PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE /* Basic list expressions */ optlistexpr - : empty %prec PREC_LOW - | listexpr %prec PREC_LOW - { $$ = $listexpr; } + : empty %prec PREC_LOW + | listexpr %prec PREC_LOW ; optexpr : empty | expr - { $$ = $expr; } ; optrepl : empty - | PERLY_SLASH expr - { $$ = $expr; } + | PERLY_SLASH expr { $$ = $expr; } ; /* A little bit of trickery to make "for my $foo (@bar)" actually be From 5b8d87dcbd773c9f32ad1089c7d85483fa88595a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branislav=20Zahradn=C3=ADk?= Date: Tue, 8 Jun 2021 18:42:19 +0200 Subject: [PATCH 6/7] Use `optexpr` in annonymous to reduce number of symbols --- perly.act | 318 ++++++++------- perly.h | 2 +- perly.tab | 1132 ++++++++++++++++++++++++++--------------------------- perly.y | 13 +- 4 files changed, 714 insertions(+), 751 deletions(-) diff --git a/perly.act b/perly.act index 18e42b338f4a..23215c840a14 100644 --- a/perly.act +++ b/perly.act @@ -1487,135 +1487,123 @@ case 2: break; case 198: -#line 1157 "perly.y" +#line 1158 "perly.y" { (yyval.opval) = newANONLIST((ps[-1].val.opval)); } break; case 199: -#line 1159 "perly.y" - { (yyval.opval) = newANONLIST(NULL);} - - break; - - case 200: -#line 1161 "perly.y" +#line 1160 "perly.y" { (yyval.opval) = newANONHASH((ps[-2].val.opval)); } break; - case 201: -#line 1163 "perly.y" - { (yyval.opval) = newANONHASH(NULL); } - - break; - - case 202: -#line 1165 "perly.y" + case 200: +#line 1162 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); } break; - case 203: -#line 1168 "perly.y" + case 201: +#line 1165 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); } break; - case 204: -#line 1174 "perly.y" + case 202: +#line 1171 "perly.y" { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));} break; - case 205: -#line 1176 "perly.y" + case 203: +#line 1173 "perly.y" { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));} break; - case 210: -#line 1184 "perly.y" + case 208: +#line 1181 "perly.y" { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 211: -#line 1186 "perly.y" + case 209: +#line 1183 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } break; - case 212: -#line 1188 "perly.y" + case 210: +#line 1185 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 213: -#line 1190 "perly.y" + case 211: +#line 1187 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),0); } break; - case 214: -#line 1192 "perly.y" + case 212: +#line 1189 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; - case 215: -#line 1194 "perly.y" + case 213: +#line 1191 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 216: -#line 1196 "perly.y" + case 214: +#line 1193 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; - case 217: -#line 1198 "perly.y" + case 215: +#line 1195 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 218: -#line 1200 "perly.y" + case 216: +#line 1197 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 219: -#line 1202 "perly.y" + case 217: +#line 1199 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 220: -#line 1204 "perly.y" + case 218: +#line 1201 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 221: -#line 1206 "perly.y" + case 219: +#line 1203 "perly.y" { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} break; - case 222: -#line 1208 "perly.y" + case 220: +#line 1205 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 223: -#line 1210 "perly.y" + case 221: +#line 1207 "perly.y" { (yyval.opval) = op_prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -1628,8 +1616,8 @@ case 2: break; - case 224: -#line 1220 "perly.y" + case 222: +#line 1217 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVASLICE, 0, @@ -1642,8 +1630,8 @@ case 2: break; - case 225: -#line 1230 "perly.y" + case 223: +#line 1227 "perly.y" { (yyval.opval) = op_prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -1656,8 +1644,8 @@ case 2: break; - case 226: -#line 1240 "perly.y" + case 224: +#line 1237 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVHSLICE, 0, @@ -1670,27 +1658,27 @@ case 2: break; - case 227: -#line 1250 "perly.y" + case 225: +#line 1247 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 228: -#line 1252 "perly.y" + case 226: +#line 1249 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); } break; - case 229: -#line 1254 "perly.y" + case 227: +#line 1251 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval))); } break; - case 230: -#line 1257 "perly.y" + case 228: +#line 1254 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval)))); @@ -1698,153 +1686,153 @@ case 2: break; - case 231: -#line 1262 "perly.y" + case 229: +#line 1259 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; - case 232: -#line 1266 "perly.y" + case 230: +#line 1263 "perly.y" { (yyval.opval) = newSVREF((ps[-3].val.opval)); } break; - case 233: -#line 1268 "perly.y" + case 231: +#line 1265 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 234: -#line 1270 "perly.y" + case 232: +#line 1267 "perly.y" { (yyval.opval) = newHVREF((ps[-3].val.opval)); } break; - case 235: -#line 1272 "perly.y" + case 233: +#line 1269 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } break; - case 236: -#line 1275 "perly.y" + case 234: +#line 1272 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } break; - case 237: -#line 1277 "perly.y" + case 235: +#line 1274 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); PL_hints |= HINT_BLOCK_SCOPE; } break; - case 238: -#line 1280 "perly.y" + case 236: +#line 1277 "perly.y" { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 239: -#line 1282 "perly.y" + case 237: +#line 1279 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; - case 240: -#line 1284 "perly.y" + case 238: +#line 1281 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 241: -#line 1286 "perly.y" + case 239: +#line 1283 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 242: -#line 1288 "perly.y" + case 240: +#line 1285 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 243: -#line 1290 "perly.y" + case 241: +#line 1287 "perly.y" { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } break; - case 244: -#line 1292 "perly.y" + case 242: +#line 1289 "perly.y" { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } break; - case 245: -#line 1294 "perly.y" + case 243: +#line 1291 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 246: -#line 1296 "perly.y" + case 244: +#line 1293 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; - case 247: -#line 1299 "perly.y" + case 245: +#line 1296 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 248: -#line 1301 "perly.y" + case 246: +#line 1298 "perly.y" { (yyval.opval) = newOP((ps[-2].val.ival), 0);} break; - case 249: -#line 1303 "perly.y" + case 247: +#line 1300 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 250: -#line 1305 "perly.y" + case 248: +#line 1302 "perly.y" { (yyval.opval) = (ps[-2].val.opval); } break; - case 251: -#line 1307 "perly.y" + case 249: +#line 1304 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 252: -#line 1309 "perly.y" + case 250: +#line 1306 "perly.y" { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT) ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0))) : newOP((ps[-2].val.ival), OPf_SPECIAL); } break; - case 253: -#line 1313 "perly.y" + case 251: +#line 1310 "perly.y" { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 254: -#line 1315 "perly.y" + case 252: +#line 1312 "perly.y" { if ( (ps[0].val.opval)->op_type != OP_TRANS && (ps[0].val.opval)->op_type != OP_TRANSR @@ -1858,162 +1846,162 @@ case 2: break; - case 255: -#line 1326 "perly.y" + case 253: +#line 1323 "perly.y" { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); } break; - case 259: -#line 1335 "perly.y" + case 257: +#line 1332 "perly.y" { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } break; - case 260: -#line 1337 "perly.y" + case 258: +#line 1334 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),1); } break; - case 261: -#line 1339 "perly.y" + case 259: +#line 1336 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); } break; - case 262: -#line 1341 "perly.y" + case 260: +#line 1338 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } break; - case 263: -#line 1346 "perly.y" + case 261: +#line 1343 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; - case 264: -#line 1348 "perly.y" + case 262: +#line 1345 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; - case 265: -#line 1351 "perly.y" + case 263: +#line 1348 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 266: -#line 1353 "perly.y" + case 264: +#line 1350 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 267: -#line 1355 "perly.y" + case 265: +#line 1352 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 273: -#line 1371 "perly.y" + case 271: +#line 1368 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 274: -#line 1377 "perly.y" + case 272: +#line 1374 "perly.y" { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } break; - case 282: -#line 1394 "perly.y" + case 280: +#line 1391 "perly.y" { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 283: -#line 1398 "perly.y" + case 281: +#line 1395 "perly.y" { (yyval.opval) = newSVREF((ps[0].val.opval)); } break; - case 284: -#line 1402 "perly.y" + case 282: +#line 1399 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } break; - case 285: -#line 1408 "perly.y" + case 283: +#line 1405 "perly.y" { (yyval.opval) = newHVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } break; - case 286: -#line 1414 "perly.y" + case 284: +#line 1411 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); } break; - case 287: -#line 1416 "perly.y" + case 285: +#line 1413 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 288: -#line 1420 "perly.y" + case 286: +#line 1417 "perly.y" { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); } break; - case 290: -#line 1425 "perly.y" + case 288: +#line 1422 "perly.y" { (yyval.opval) = newAVREF((ps[-2].val.opval)); } break; - case 292: -#line 1430 "perly.y" + case 290: +#line 1427 "perly.y" { (yyval.opval) = newHVREF((ps[-2].val.opval)); } break; - case 294: -#line 1435 "perly.y" + case 292: +#line 1432 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); } break; - case 295: -#line 1440 "perly.y" + case 293: +#line 1437 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; - case 296: -#line 1442 "perly.y" + case 294: +#line 1439 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; - case 297: -#line 1444 "perly.y" + case 295: +#line 1441 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; - case 298: -#line 1447 "perly.y" + case 296: +#line 1444 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; @@ -2024,6 +2012,6 @@ case 2: /* Generated from: - * 9d640388a78a9c6e6e45594dbbf5b3076c577c84be62ff3142c4e54821baf06e perly.y + * fe008713888439604cbf82f172e7a2abd6c268a1fc97055ec5b3fff4d5e8ed3d perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.h b/perly.h index 000a637bcab6..d87aca844ecd 100644 --- a/perly.h +++ b/perly.h @@ -218,6 +218,6 @@ int yyparse (void); /* Generated from: - * 9d640388a78a9c6e6e45594dbbf5b3076c577c84be62ff3142c4e54821baf06e perly.y + * fe008713888439604cbf82f172e7a2abd6c268a1fc97055ec5b3fff4d5e8ed3d perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.tab b/perly.tab index 92c7630a2ffc..24d96e5b2032 100644 --- a/perly.tab +++ b/perly.tab @@ -6,16 +6,16 @@ #define YYFINAL 16 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3336 +#define YYLAST 3225 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 113 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 100 /* YYNRULES -- Number of rules. */ -#define YYNRULES 298 +#define YYNRULES 296 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 596 +#define YYNSTATES 593 #define YYUNDEFTOK 2 #define YYMAXUTOK 367 @@ -91,17 +91,17 @@ static const yytype_uint16 yyrline[] = 1045, 1047, 1049, 1054, 1056, 1058, 1063, 1065, 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1087, 1089, 1091, 1093, 1097, 1099, 1103, 1105, 1107, 1109, 1113, 1115, 1120, - 1122, 1125, 1127, 1129, 1132, 1135, 1146, 1149, 1156, 1158, - 1160, 1162, 1164, 1167, 1173, 1175, 1179, 1180, 1181, 1182, - 1183, 1185, 1187, 1189, 1191, 1193, 1195, 1197, 1199, 1201, - 1203, 1205, 1207, 1209, 1219, 1229, 1239, 1249, 1251, 1253, - 1256, 1261, 1265, 1267, 1269, 1271, 1274, 1276, 1279, 1281, - 1283, 1285, 1287, 1289, 1291, 1293, 1295, 1298, 1300, 1302, - 1304, 1306, 1308, 1312, 1315, 1314, 1327, 1328, 1329, 1334, - 1336, 1338, 1340, 1345, 1347, 1350, 1352, 1354, 1360, 1361, - 1365, 1366, 1370, 1371, 1376, 1380, 1381, 1382, 1385, 1386, - 1389, 1390, 1393, 1397, 1401, 1407, 1413, 1415, 1419, 1423, - 1424, 1428, 1429, 1433, 1434, 1439, 1441, 1443, 1446 + 1122, 1125, 1127, 1129, 1132, 1135, 1146, 1149, 1157, 1159, + 1161, 1164, 1170, 1172, 1176, 1177, 1178, 1179, 1180, 1182, + 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198, 1200, 1202, + 1204, 1206, 1216, 1226, 1236, 1246, 1248, 1250, 1253, 1258, + 1262, 1264, 1266, 1268, 1271, 1273, 1276, 1278, 1280, 1282, + 1284, 1286, 1288, 1290, 1292, 1295, 1297, 1299, 1301, 1303, + 1305, 1309, 1312, 1311, 1324, 1325, 1326, 1331, 1333, 1335, + 1337, 1342, 1344, 1347, 1349, 1351, 1357, 1358, 1362, 1363, + 1367, 1368, 1373, 1377, 1378, 1379, 1382, 1383, 1386, 1387, + 1390, 1394, 1398, 1404, 1410, 1412, 1416, 1420, 1421, 1425, + 1426, 1430, 1431, 1436, 1438, 1440, 1443 }; #endif @@ -169,80 +169,80 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -506 +#define YYPACT_NINF -493 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-506))) + (!!((Yystate) == (-493))) -#define YYTABLE_NINF -294 +#define YYTABLE_NINF -292 #define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-294))) + (!!((Yytable_value) == (-292))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - 578, -506, -506, -506, -506, -506, -506, -506, 20, -506, - 3017, 18, 1522, 1425, -506, -506, -506, -506, 452, 2074, - 452, 3017, 452, 3017, 452, 452, -506, 452, 452, -506, - -506, 61, -61, -506, 3017, -506, -506, -506, -506, 3017, - -25, -22, -43, 2171, 1980, 452, 2171, 2265, 209, 3017, - 41, 3017, 3017, 3017, 3017, 3017, 3017, 3017, 2359, -506, - 38, 119, -506, 1, -506, 160, -29, 156, 79, -506, - -506, -506, 3182, -506, -506, 36, 62, 145, 154, -506, - 144, 158, 173, 170, -506, -506, -506, -506, -506, -506, - 209, 209, 167, -506, 87, 93, 125, 129, 39, 150, - 152, 18, 258, 251, 228, -506, 261, 406, 1425, -506, - -506, -506, -506, 623, -506, 182, 721, -506, -506, -506, - -506, -506, -506, 12, -506, 463, -506, 463, -506, -506, - 3017, 174, 215, 3017, 178, 826, 18, 275, 232, 3182, - 205, 2453, 3017, 1980, -506, 826, 1878, -506, 119, -506, - 1778, 3017, -506, -506, 826, 309, -7, -506, -506, 3017, - 826, 3111, 2547, 246, -506, -506, -506, 826, 119, 463, - 463, 463, 285, 285, 317, -39, 3017, 3017, 3017, 3017, - 3017, 2641, -506, -506, 3017, -506, -506, 3017, 3017, 3017, - 3017, 3017, 3017, 3017, 3017, 3017, 3017, 3017, 3017, 3017, - 3017, 3017, 3017, 3017, 3017, -506, -506, -506, 73, 2735, - 3017, 3017, 3017, 3017, 3017, 3017, 3017, -506, 318, -506, - -506, 329, -506, -506, -506, -506, -506, 255, 180, -506, - -506, 253, -506, -506, -506, -506, 304, -506, 18, -506, - -506, -506, 3017, 3017, 3017, 3017, 3017, 3017, -506, -506, - -506, 338, -506, -506, -506, 338, -506, -506, -506, 352, - -506, -506, -506, 3017, 3017, 35, -506, -506, -506, -506, - 232, 347, -506, -506, -506, -506, 96, 300, 272, 3017, - 119, -506, 376, -506, 2829, 463, 246, 68, 139, 157, - -506, 104, 367, -506, 3017, 386, 319, -506, 3182, 24, - 40, -506, 204, 826, 705, 242, 411, 336, 3182, 3138, - 1811, 1811, 742, 607, 443, 705, 705, 826, 826, 397, - 463, 463, 377, 3017, 3017, 274, 385, 388, 391, -506, - 392, 2923, 311, -506, -506, 259, 155, 42, 175, 52, - 208, 54, 214, 843, -506, -506, 401, -506, -506, 11, - 398, 3017, 3017, 3017, 3017, -506, 409, -506, -506, 315, - -506, -506, -506, -506, 1616, 302, -506, 3017, 3017, -506, - 316, -506, -506, 38, -506, 38, -506, -506, -506, -506, - -506, 343, 343, 182, 323, 47, -506, 3017, -506, -506, - 326, -506, -506, -506, -506, 278, -506, 5, 295, -506, - -506, -506, 57, 3017, 430, -506, -506, 3017, -506, 230, - 78, -506, -506, -506, -506, -506, -506, 307, 3017, -506, - 435, -506, 437, -506, 438, -506, 446, -506, -506, -506, - 275, 232, -506, -506, 433, 359, 38, 365, 368, 38, - 370, 373, -506, -506, -506, -506, -506, 371, 464, 218, - -506, 3017, 380, 382, 940, -506, 3017, -506, -506, -506, - -506, -506, 3017, -506, 416, -506, 476, -506, -506, -506, - 488, -506, -506, 27, -506, 149, -506, 3226, 490, -506, - -506, 389, -506, -506, -506, -506, 486, 232, 494, -506, - 3017, -506, -506, 258, 258, 3017, 3017, 258, -506, 410, - 413, 258, 258, -506, -506, 3182, 38, -506, -506, 414, - -506, -506, -506, -506, 447, 509, -506, -506, -506, -506, - 510, 258, 258, 256, 256, 424, 432, 228, 3017, 3017, - 258, -506, -506, 409, 1037, -506, 1134, -506, -506, -506, - -506, 1231, -506, 228, 228, 258, 434, -506, -506, -506, - 258, 258, -506, 522, 444, 228, -506, -506, -506, -506, - -5, -506, -506, -506, -506, 3017, 228, 228, -506, 258, - -506, 448, 531, 471, -506, 449, -506, -506, -506, 228, - 258, -506, -506, -506, -506, 258, 1710, -506, -506, 1328, - 256, 453, -506, -506, 258, -506 + 512, -493, -493, -493, -493, -493, -493, -493, 18, -493, + 2823, 13, 1516, 1419, -493, -493, -493, -493, 380, 2823, + 380, 2823, 380, 2823, 380, 380, -493, 380, 380, -493, + -493, 31, -62, -493, 2823, -493, -493, -493, -493, 2823, + -43, -36, -63, 2071, 1974, 380, 2071, 2823, 25, 2823, + 22, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2165, -493, + 65, 70, -493, 1, -493, 107, 16, 119, 6, -493, + -493, -493, 3027, -493, -493, -15, 159, 237, 295, -493, + 133, 302, 323, 160, -493, -493, -493, -493, -493, -493, + 25, 25, 154, -493, 72, 85, 88, 121, 4, 124, + 140, 13, 181, 235, 211, -493, 238, 403, 1419, -493, + -493, -493, -493, 618, -493, 285, 715, -493, -493, -493, + -493, -493, 255, -493, 479, -493, 479, -493, -493, 2823, + 167, 192, 2823, 171, 472, 13, 274, 230, 3027, 215, + 2259, 2823, 1974, -493, 472, 1872, -493, 70, -493, 1772, + 2823, -493, -493, 472, 311, -493, -493, 2823, 472, 2917, + 2353, 260, -493, -493, -493, 472, 70, 479, 479, 479, + 394, 394, 330, 80, 2823, 2823, 2823, 2823, 2823, 2447, + -493, -493, 2823, -493, -493, 2823, 2823, 2823, 2823, 2823, + 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, + 2823, 2823, 2823, -493, -493, -493, 47, 2541, 2823, 2823, + 2823, 2823, 2823, 2823, 2823, -493, 326, -493, -493, 329, + -493, -493, -493, -493, -493, 257, 178, -493, -493, 246, + -493, -493, -493, -493, 307, -493, 13, -493, -493, -493, + 2823, 2823, 2823, 2823, 2823, 2823, -493, -493, -493, 336, + -493, -493, -493, 336, -493, -493, -493, 355, -493, -493, + -493, 2823, 2823, 5, -493, -493, -493, -493, 230, 342, + -493, -493, -493, -493, 94, 299, 265, 2823, 70, 376, + -493, 2635, 479, 260, 64, 73, 79, -493, 112, 360, + -493, 2823, 377, 309, -493, 3027, 71, 19, -493, 151, + 472, 231, 3115, 389, 305, 3027, 2983, 333, 333, 736, + 602, 440, 231, 231, 472, 472, 212, 479, 479, 367, + 2823, 2823, 135, 370, 375, 382, -493, 383, 2729, 298, + -493, -493, 155, 74, 27, 99, 52, 102, 54, 106, + 837, -493, -493, 398, -493, -493, 111, 395, 2823, 2823, + 2823, 2823, -493, 404, -493, -493, 310, -493, -493, -493, + -493, 1610, 460, -493, 2823, 2823, -493, 327, -493, -493, + 65, -493, 65, -493, -493, -493, -493, -493, 349, 349, + 285, 335, 83, -493, 2823, -493, -493, 332, -493, -493, + -493, -493, 172, -493, 32, 201, -493, -493, -493, 56, + 2823, 435, -493, -493, 2823, -493, 147, 59, -493, -493, + -493, -493, -493, -493, 207, 2823, -493, 443, -493, 444, + -493, 448, -493, 450, -493, -493, -493, 274, 230, -493, + -493, 437, 354, 65, 356, 362, 65, 364, 366, -493, + -493, -493, -493, -493, 371, 461, 248, -493, 2823, 374, + 379, 934, -493, 2823, -493, -493, -493, -493, -493, 2823, + -493, 413, -493, 494, -493, -493, -493, 496, -493, -493, + 41, -493, 69, -493, 3071, 500, -493, -493, 402, -493, + -493, -493, -493, 501, 230, 505, -493, 2823, -493, -493, + 181, 181, 2823, 2823, 181, -493, 410, 417, 181, 181, + -493, -493, 3027, 65, -493, -493, 418, -493, -493, -493, + -493, 453, 521, -493, -493, -493, -493, 523, 181, 181, + 175, 175, 441, 445, 211, 2823, 2823, 181, -493, -493, + 404, 1031, -493, 1128, -493, -493, -493, -493, 1225, -493, + 211, 211, 181, 434, -493, -493, -493, 181, 181, -493, + 529, 446, 211, -493, -493, -493, -493, -7, -493, -493, + -493, -493, 2823, 211, 211, -493, 181, -493, 451, 538, + 483, -493, 456, -493, -493, -493, 211, 181, -493, -493, + -493, -493, 181, 1704, -493, -493, 1322, 175, 457, -493, + -493, 181, -493 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -251,95 +251,95 @@ static const yytype_int16 yypact[] = static const yytype_uint16 yydefact[] = { 0, 2, 4, 6, 8, 10, 12, 14, 0, 19, - 17, 0, 0, 0, 17, 122, 1, 17, 0, 0, - 0, 0, 0, 0, 0, 0, 256, 0, 0, 227, - 254, 215, 249, 251, 245, 92, 258, 92, 92, 237, - 247, 0, 0, 240, 17, 0, 0, 0, 0, 0, - 0, 243, 0, 0, 0, 0, 0, 0, 0, 270, - 271, 132, 257, 222, 206, 168, 177, 169, 183, 207, - 208, 209, 135, 212, 5, 228, 217, 220, 219, 221, - 218, 0, 0, 0, 19, 7, 68, 63, 30, 93, + 17, 0, 0, 0, 17, 122, 1, 17, 0, 17, + 0, 0, 0, 0, 0, 0, 254, 0, 0, 225, + 252, 213, 247, 249, 243, 92, 256, 92, 92, 235, + 245, 0, 0, 238, 17, 0, 0, 17, 0, 0, + 0, 241, 0, 0, 0, 0, 0, 0, 0, 268, + 269, 132, 255, 220, 204, 168, 177, 169, 183, 205, + 206, 207, 135, 210, 5, 226, 215, 218, 217, 219, + 216, 0, 0, 0, 19, 7, 68, 63, 30, 93, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 9, 0, 69, 0, 11, - 27, 26, 22, 0, 15, 17, 0, 295, 298, 297, - 296, 282, 199, 0, 283, 189, 285, 190, 284, 288, - 17, 0, 0, 0, 0, 246, 0, 17, 17, 238, - 0, 0, 17, 17, 241, 242, 295, 268, 269, 142, - 296, 0, 286, 205, 204, 0, 0, 94, 95, 17, - 213, 0, 0, 260, 265, 267, 266, 244, 239, 191, - 192, 211, 196, 197, 216, 0, 0, 0, 133, 0, - 0, 0, 180, 179, 0, 186, 185, 0, 0, 0, + 27, 26, 22, 0, 15, 17, 0, 293, 296, 295, + 294, 280, 0, 281, 189, 283, 190, 282, 286, 17, + 0, 0, 0, 0, 244, 0, 17, 17, 236, 0, + 0, 17, 17, 239, 240, 293, 266, 267, 142, 294, + 0, 284, 203, 202, 0, 94, 95, 17, 211, 0, + 0, 258, 263, 265, 264, 242, 237, 191, 192, 209, + 196, 197, 214, 0, 0, 0, 133, 0, 0, 0, + 180, 179, 0, 186, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 193, 194, 195, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 17, 91, - 91, 0, 37, 19, 19, 19, 19, 19, 0, 19, - 19, 0, 19, 19, 43, 21, 0, 62, 0, 79, - 58, 61, 0, 0, 0, 0, 0, 0, 29, 28, - 23, 103, 106, 105, 117, 103, 113, 112, 116, 118, - 123, 198, 140, 17, 0, 0, 250, 145, 97, 96, - 17, 100, 98, 19, 248, 252, 0, 0, 0, 0, - 136, 201, 0, 231, 0, 262, 0, 217, 220, 219, - 264, 0, 102, 259, 0, 214, 131, 130, 134, 0, - 0, 159, 0, 182, 188, 172, 165, 166, 163, 0, - 174, 175, 173, 171, 170, 187, 184, 181, 178, 167, - 176, 164, 0, 0, 0, 0, 292, 290, 294, 147, - 0, 0, 139, 148, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 89, 90, 0, 32, 34, 0, - 0, 84, 0, 0, 0, 280, 0, 281, 278, 0, - 279, 275, 276, 277, 0, 0, 19, 0, 0, 17, - 0, 80, 72, 67, 73, 86, 70, 71, 74, 75, - 104, 17, 17, 114, 0, 17, 161, 17, 19, 99, - 17, 203, 253, 144, 143, 0, 200, 216, 0, 261, - 263, 101, 0, 0, 0, 152, 158, 0, 235, 0, - 0, 232, 234, 233, 236, 287, 156, 0, 17, 230, - 0, 150, 0, 223, 0, 224, 0, 16, 19, 31, - 17, 17, 19, 36, 0, 0, 85, 0, 0, 87, - 0, 0, 274, 19, 82, 83, 88, 0, 0, 69, - 51, 0, 0, 0, 0, 55, 109, 108, 111, 107, - 115, 141, 0, 272, 0, 146, 0, 202, 122, 119, - 0, 120, 137, 214, 162, 0, 155, 210, 0, 151, - 157, 0, 153, 225, 226, 149, 0, 17, 19, 59, - 17, 81, 81, 0, 0, 0, 0, 0, 46, 0, - 0, 0, 0, 20, 19, 110, 273, 255, 17, 0, - 17, 160, 154, 138, 0, 19, 128, 35, 127, 17, - 0, 0, 0, 17, 17, 0, 0, 17, 84, 0, - 0, 41, 42, 0, 0, 121, 0, 17, 125, 33, - 124, 0, 38, 17, 17, 0, 0, 76, 39, 40, - 0, 0, 54, 0, 0, 17, 56, 126, 129, 24, - 0, 60, 44, 45, 77, 0, 17, 17, 47, 0, - 50, 0, 0, 17, 25, 0, 49, 53, 81, 17, - 0, 18, 17, 65, 64, 0, 0, 52, 57, 0, - 17, 0, 66, 78, 0, 48 + 0, 0, 0, 193, 194, 195, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 17, 91, 91, 0, + 37, 19, 19, 19, 19, 19, 0, 19, 19, 0, + 19, 19, 43, 21, 0, 62, 0, 79, 58, 61, + 0, 0, 0, 0, 0, 0, 29, 28, 23, 103, + 106, 105, 117, 103, 113, 112, 116, 118, 123, 198, + 140, 17, 0, 0, 248, 145, 97, 96, 17, 100, + 98, 19, 246, 250, 0, 0, 0, 0, 136, 0, + 229, 0, 260, 0, 215, 218, 217, 262, 0, 102, + 257, 0, 212, 131, 130, 134, 0, 0, 159, 0, + 182, 188, 172, 165, 166, 163, 0, 174, 175, 173, + 171, 170, 187, 184, 181, 178, 167, 176, 164, 0, + 0, 0, 0, 290, 288, 292, 147, 0, 0, 139, + 148, 227, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 89, 90, 0, 32, 34, 0, 0, 84, 0, + 0, 0, 278, 0, 279, 276, 0, 277, 273, 274, + 275, 0, 0, 19, 0, 0, 17, 0, 80, 72, + 67, 73, 86, 70, 71, 74, 75, 104, 17, 17, + 114, 0, 17, 161, 17, 19, 99, 17, 201, 251, + 144, 143, 0, 199, 214, 0, 259, 261, 101, 0, + 0, 0, 152, 158, 0, 233, 0, 0, 230, 232, + 231, 234, 285, 156, 0, 17, 228, 0, 150, 0, + 221, 0, 222, 0, 16, 19, 31, 17, 17, 19, + 36, 0, 0, 85, 0, 0, 87, 0, 0, 272, + 19, 82, 83, 88, 0, 0, 69, 51, 0, 0, + 0, 0, 55, 109, 108, 111, 107, 115, 141, 0, + 270, 0, 146, 0, 200, 122, 119, 0, 120, 137, + 212, 162, 0, 155, 208, 0, 151, 157, 0, 153, + 223, 224, 149, 0, 17, 19, 59, 17, 81, 81, + 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, + 20, 19, 110, 271, 253, 17, 0, 17, 160, 154, + 138, 0, 19, 128, 35, 127, 17, 0, 0, 0, + 17, 17, 0, 0, 17, 84, 0, 0, 41, 42, + 0, 0, 121, 0, 17, 125, 33, 124, 0, 38, + 17, 17, 0, 0, 76, 39, 40, 0, 0, 54, + 0, 0, 17, 56, 126, 129, 24, 0, 60, 44, + 45, 77, 0, 17, 17, 47, 0, 50, 0, 0, + 17, 25, 0, 49, 53, 81, 17, 0, 18, 17, + 65, 64, 0, 0, 52, 57, 0, 17, 0, 66, + 78, 0, 48 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -506, -506, -506, -506, -506, -506, -506, -506, -506, 387, - -10, -506, -6, -391, -506, -16, -506, 541, 450, 4, - -506, -506, -506, -506, -506, -506, -506, -506, -506, -506, - -506, 344, -357, -505, -273, -479, -506, 37, 216, -304, - -12, -506, 105, 310, -506, 283, 147, -259, 289, 337, - -506, -506, 196, -506, 210, -506, -506, -506, -506, 126, - -506, -506, 80, -506, 109, 33, -42, -506, -506, -506, - -506, -506, -506, -506, -506, -506, -506, -506, -506, 418, - -506, -506, 439, -124, -134, -506, -506, 234, -506, -506, - 375, 3, -46, -45, -506, -506, -506, -506, -506, 14 + -493, -493, -493, -493, -493, -493, -493, -493, -493, 243, + -10, -493, -6, 2477, -493, -16, -493, 551, 464, -4, + -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, + -493, 378, -355, -492, -177, -476, -493, 44, 226, -325, + -5, -493, 75, 308, -493, 258, 157, -252, 313, 337, + -493, -493, 206, -493, 213, -493, -493, -493, -493, 127, + -493, -493, 82, -493, 113, 33, -42, -493, -493, -493, + -493, -493, -493, -493, -493, -493, -493, -493, -493, 415, + -493, -493, 465, -125, -12, -493, -493, 263, -493, -493, + 373, 3, -45, -39, -493, -493, -493, -493, -493, 37 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 8, 9, 10, 11, 12, 13, 14, 15, 104, - 112, 429, 390, 236, 369, 113, 560, 250, 110, 111, - 430, 431, 350, 528, 578, 499, 504, 571, 519, 574, - 584, 372, 106, 548, 240, 521, 446, 435, 374, 438, - 448, 346, 222, 136, 218, 159, 270, 273, 293, 381, - 255, 256, 458, 257, 258, 259, 260, 470, 471, 114, - 115, 539, 467, 517, 391, 107, 61, 62, 387, 332, + 112, 426, 387, 234, 366, 113, 557, 248, 110, 111, + 427, 428, 347, 525, 575, 496, 501, 568, 516, 571, + 581, 369, 106, 545, 238, 518, 443, 432, 371, 435, + 445, 343, 220, 135, 216, 157, 268, 271, 290, 378, + 253, 254, 455, 255, 256, 257, 258, 467, 468, 114, + 115, 536, 464, 514, 388, 107, 61, 62, 384, 329, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 132, 73, 163, 149, 74, 464, 441, 358, 359, 230, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 124 + 131, 73, 161, 148, 74, 461, 438, 355, 356, 228, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 123 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -347,113 +347,93 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 59, 116, 148, 17, 165, 166, 262, 445, 277, 278, - 168, 388, 179, 522, 180, 282, 105, 572, 294, 549, - 16, 120, 432, 120, 573, 120, 261, 120, 120, 84, - 120, 120, 121, 433, 147, 283, 126, 142, 128, 129, - 403, 130, 131, 60, 176, 177, 404, 150, 120, 386, - 440, 134, 123, 164, 405, 20, 421, 20, 151, 152, - 447, 22, 178, 452, 453, 24, 423, 184, 425, 143, - 462, 474, 295, 210, 133, 211, 176, 177, 217, 210, - 156, 211, -264, 322, 323, 593, 324, 140, 148, 325, - 141, 175, 479, 326, 239, 176, 177, 327, 328, 586, - 329, 231, 523, 524, -263, 254, 527, 176, 177, 280, - 531, 532, 249, 181, 227, 288, 289, 148, 176, 177, - 147, 176, 177, 176, 177, 176, 177, 269, 272, 384, - 543, 544, 59, 59, 178, 176, 177, 176, 177, 555, - 176, 177, 228, 330, 161, -265, 150, 500, 209, 147, - -289, 229, -289, 162, 564, -293, -289, 279, -289, 566, - 567, 176, 177, 511, 287, -291, 265, -291, -291, 212, - -291, 213, 488, 187, 276, 60, 60, 420, 579, 176, - 177, 216, 362, 363, 214, 331, 215, 176, 177, 588, - 18, 525, 526, 221, 590, 291, 20, 422, 251, 223, - 22, 343, 252, 595, 24, 224, 253, 392, 345, 296, - 297, 333, 299, 300, 302, 400, -267, 351, 352, 353, - 354, 356, 385, 364, 365, 554, 367, 368, 515, 445, - 424, 361, 176, 177, -266, 157, 426, 225, 176, 177, - 158, 226, 335, 336, 337, 338, 339, 340, 341, 342, - 185, 186, 478, 59, 552, 357, 182, 183, 176, 177, - 272, 575, 232, 465, 233, 242, 243, 244, 245, 235, - 562, 563, 246, 237, 247, 373, 375, 373, 373, 373, - 373, 238, 570, 241, 481, 84, 263, 176, 177, 266, - 20, 176, 177, 576, 577, 264, 60, 176, 177, 411, - 117, 176, 177, -294, 268, 118, 587, 545, 546, 271, - 189, 190, 395, 176, 177, 406, 274, 398, 20, 362, - 363, 281, 22, 292, 347, 348, 24, 402, 120, -87, - 294, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 176, 177, 344, 148, 204, 137, 138, 205, - 206, 207, 208, 454, 444, 349, 409, 410, 355, 442, - 451, 176, 177, 370, 417, 366, 520, 383, 361, 380, - 419, 457, 457, 219, 220, 463, 389, 147, 176, 177, - 469, 393, 466, 394, 436, 375, 439, 439, 396, 472, - 176, 177, -294, -294, -294, 208, 401, 449, 85, 403, - 439, 439, 408, 177, 189, 119, 473, 119, 59, 119, - 412, 119, 119, 413, 119, 119, 414, 415, 480, 428, - 269, 272, 486, 418, 434, 20, 489, 443, 455, 456, - 144, 119, 119, 153, 461, 203, 475, 496, 468, 125, - 204, 127, 476, 205, 206, 207, 208, 482, 148, 483, - 484, 60, 135, 242, 243, 244, 245, 139, 485, 490, - 246, 145, 247, 84, 154, 189, 190, 160, 20, 167, - 491, 169, 170, 171, 172, 173, 492, 272, 117, 493, - 147, 494, 497, 118, 439, 495, 498, 508, 234, 176, - 177, 501, 534, 502, 536, 506, 203, 507, 533, 510, - 513, 204, 512, 541, 205, 206, 207, 208, 514, 466, - 203, 189, 190, 547, 547, 204, 516, 239, 205, 206, - 207, 208, 529, 267, 530, 535, 537, 559, 439, 439, - 119, 538, 542, 239, 239, 550, 556, 198, 199, 200, - 201, 202, 203, 551, 568, 239, 565, 204, 581, 582, - 205, 206, 207, 208, 109, 569, 239, 239, 248, 580, - 585, 436, 439, 583, 594, 553, 589, 204, 437, 239, - 205, 206, 207, 208, 591, 399, 444, 487, 459, 285, - 547, 1, 2, 3, 4, 5, 6, 7, 376, 377, - 378, 379, 382, 460, 509, 540, 298, 518, 439, 450, - 286, 0, 303, 360, 0, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, -13, 86, 371, 0, 0, 0, 0, - 0, 0, 0, 18, 84, 0, 19, 0, 0, 20, - 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, - 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, - 36, 88, 108, 89, 90, 91, 37, 38, 92, 93, - 94, 95, 96, 97, 0, 189, 190, 98, 99, 100, - 101, 102, 0, 39, 0, 103, 40, 41, 42, 43, - 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, - 197, 198, 199, 200, 201, 202, 203, 0, 52, 0, - 0, 204, 119, 0, 205, 206, 207, 208, 0, 0, - 0, -3, 86, 53, 54, 0, 55, 0, 56, 57, - 0, 18, 84, 0, 19, 58, 0, 20, 0, 0, - 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, - 29, 30, 0, 31, 32, 33, 34, 35, 36, 88, - 108, 89, 90, 91, 37, 38, 92, 93, 94, 95, - 96, 97, 0, 189, 190, 98, 99, 100, 101, 102, - 0, 39, 0, 103, 40, 41, 42, 43, 44, 0, - 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, - 0, 200, 201, 202, 203, 0, 52, 0, 0, 204, - 189, 190, 205, 206, 207, 208, 0, 0, 0, 0, - 0, 53, 54, 0, 55, 477, 56, 57, 0, 0, - 0, 0, 0, 58, 196, 197, 198, 199, 200, 201, - 202, 203, 0, 0, 86, 0, 204, 0, 0, 205, - 206, 207, 208, 18, 84, 427, 19, 0, 0, 20, - 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, - 27, 28, 29, 30, 505, 31, 32, 33, 34, 35, - 36, 88, 108, 89, 90, 91, 37, 38, 92, 93, - 94, 95, 96, 97, 189, 190, 0, 98, 99, 100, - 101, 102, 0, 39, 0, 103, 40, 41, 42, 43, - 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, - 0, 0, 0, 0, 202, 203, 0, 0, 52, 0, - 204, 0, 0, 205, 206, 207, 208, 0, 0, 0, - 0, 86, 0, 53, 54, 0, 55, 0, 56, 57, - 18, 84, 503, 19, 0, 58, 20, 0, 0, 21, - 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, - 30, 0, 31, 32, 33, 34, 35, 36, 88, 108, - 89, 90, 91, 37, 38, 92, 93, 94, 95, 96, - 97, 0, 0, 0, 98, 99, 100, 101, 102, 0, - 39, 0, 103, 40, 41, 42, 43, 44, 0, 0, - 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, - 53, 54, 0, 55, 0, 56, 57, 18, 84, 557, - 19, 0, 58, 20, 0, 0, 21, 22, 23, 87, - 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, + 59, 116, 147, 17, 260, 163, 442, 122, 105, 59, + 166, 164, 177, 519, 178, 569, 385, 141, 16, 383, + 20, 120, 570, 120, 84, 120, 437, 120, 120, 546, + 120, 120, 280, 402, 146, 154, 444, 59, 20, 449, + 450, 418, 22, 60, 132, 291, 24, 149, 120, 142, + 133, 155, 60, 162, 400, 121, 156, 319, 320, 125, + 321, 127, 128, 322, 129, 130, 420, 323, 422, 139, + 471, 324, 325, 476, 326, 208, 140, 209, 215, 225, + 60, 150, 151, 508, -287, 176, -287, 147, 174, 175, + -289, 173, -289, 401, 237, 590, 417, 207, 176, 583, + 185, 229, 174, 175, 247, 252, 459, 226, 278, -262, + 174, 175, 182, 179, 285, 147, 227, 327, -261, 146, + 286, 419, 429, 497, 421, 159, 267, 270, 423, 275, + 276, 59, 59, 430, 160, 174, 175, 174, 175, 174, + 175, -263, 174, 175, -291, 149, 84, 146, 174, 175, + -265, 20, 174, 175, 174, 175, -264, 174, 175, 328, + 408, 117, 284, 174, 175, 263, 118, 522, 523, 475, + 208, 214, 209, 274, 60, 60, 485, 174, 175, 277, + 219, 359, 174, 175, 221, 174, 175, 360, 18, 174, + 175, 292, 233, 288, 20, 174, 175, 222, 22, 340, + 223, 551, 24, 180, 181, 389, 342, 293, 294, 330, + 296, 297, 299, 183, 184, 348, 349, 350, 351, 353, + 382, 361, 362, 397, 364, 365, 542, 543, 442, 358, + 174, 175, 512, 224, 174, 175, 230, 572, 174, 175, + 332, 333, 334, 335, 336, 337, 338, 339, -287, 381, + -287, 59, 231, 354, 85, 174, 175, 235, 270, 462, + 239, 119, 403, 119, 236, 119, 416, 119, 119, 259, + 119, 119, 262, 370, 372, 370, 370, 370, 370, 261, + 187, 188, 264, 469, 174, 175, 143, 119, 119, 152, + 174, 175, 344, 345, 60, 240, 241, 242, 243, 187, + 188, 249, 244, 266, 245, 250, -289, 269, -289, 251, + 392, 201, 470, 210, 395, 211, 202, 359, 477, 203, + 204, 205, 206, 360, 399, 120, 272, 198, 199, 200, + 201, 174, 175, 279, 212, 202, 213, 289, 203, 204, + 205, 206, 147, 291, 232, 136, 137, 549, 217, 218, + 451, 441, 341, 406, 407, 346, 439, 448, 363, -87, + 352, 414, 517, 559, 560, 358, 367, 377, 454, 454, + 380, 386, 460, 187, 146, 567, 391, 466, 265, 463, + 390, 433, 372, 436, 436, 119, 573, 574, 393, 398, + 400, 84, 405, 175, 446, 409, 20, 436, 436, 584, + 410, 187, 188, 478, 201, 59, 117, 411, 412, 202, + 415, 118, 203, 204, 205, 206, 425, 267, 270, 483, + 20, 431, 440, 486, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 472, 493, 453, 124, 202, 126, 452, + 203, 204, 205, 206, 465, 147, 458, 473, 60, 134, + 240, 241, 242, 243, 138, 479, 480, 244, 144, 245, + 481, 153, 482, 487, 158, 488, 165, 489, 167, 168, + 169, 170, 171, 490, 270, 491, 20, 146, 492, 368, + 22, 436, 494, 495, 24, 498, 174, 175, 201, 531, + 499, 533, 503, 202, 504, 530, 203, 204, 205, 206, + 538, -292, -292, -292, 206, 505, 463, 507, 187, 188, + 544, 544, 509, 510, 237, 1, 2, 3, 4, 5, + 6, 7, 526, 511, 556, 436, 436, 513, 527, 532, + 237, 237, 534, 553, 196, 197, 198, 199, 200, 201, + 187, 188, 237, 535, 202, 539, 562, 203, 204, 205, + 206, 565, 547, 237, 237, 578, 548, 566, 433, 436, + 580, 579, 577, 586, 109, 119, 237, 582, 591, 550, + 200, 201, 246, 441, 282, 434, 202, 544, 588, 203, + 204, 205, 206, 202, 484, 456, 203, 204, 205, 206, + 379, 295, 506, 457, 537, 436, 396, 300, 515, 357, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, -13, 86, + 373, 374, 375, 376, 283, 447, 0, 0, 18, 84, + 0, 19, 0, 0, 20, 0, 0, 21, 22, 23, + 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, + 31, 32, 33, 34, 35, 36, 88, 108, 89, 90, + 91, 37, 38, 92, 93, 94, 95, 96, 97, 0, + 187, 188, 98, 99, 100, 101, 102, 0, 39, 0, + 103, 40, 41, 42, 43, 44, 0, 0, 45, 46, + 47, 48, 49, 50, 51, 195, 196, 197, 198, 199, + 200, 201, 0, 52, 0, 0, 202, 0, 0, 203, + 204, 205, 206, 0, 0, -3, 86, 0, 53, 54, + 0, 55, 0, 56, 57, 18, 84, 0, 19, 0, + 58, 20, 0, 0, 21, 22, 23, 87, 0, 24, + 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, + 34, 35, 36, 88, 108, 89, 90, 91, 37, 38, + 92, 93, 94, 95, 96, 97, 0, 0, 0, 98, + 99, 100, 101, 102, 0, 39, 0, 103, 40, 41, + 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, + 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 52, 0, 0, 0, 187, 188, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 54, 0, 55, 474, + 56, 57, 0, 0, 0, 0, 0, 58, 194, 195, + 196, 197, 198, 199, 200, 201, 0, 0, 86, 0, + 202, 0, 0, 203, 204, 205, 206, 18, 84, 424, + 19, 0, 0, 20, 0, 0, 21, 22, 23, 87, + 0, 24, 25, 26, 27, 28, 29, 30, 502, 31, 32, 33, 34, 35, 36, 88, 108, 89, 90, 91, 37, 38, 92, 93, 94, 95, 96, 97, 0, 0, 0, 98, 99, 100, 101, 102, 0, 39, 0, 103, @@ -461,7 +441,7 @@ static const yytype_int16 yytable[] = 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 53, 54, 0, - 55, 0, 56, 57, 18, 84, 558, 19, 0, 58, + 55, 0, 56, 57, 18, 84, 500, 19, 0, 58, 20, 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 88, 108, 89, 90, 91, 37, 38, 92, @@ -471,7 +451,7 @@ static const yytype_int16 yytable[] = 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 53, 54, 0, 55, 0, 56, - 57, 18, 84, 561, 19, 0, 58, 20, 0, 0, + 57, 18, 84, 554, 19, 0, 58, 20, 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 88, 108, 89, 90, 91, 37, 38, 92, 93, 94, 95, @@ -481,16 +461,16 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 53, 54, 0, 55, 0, 56, 57, 18, 84, - 0, 19, 0, 58, 20, 0, 0, 21, 22, 23, + 555, 19, 0, 58, 20, 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 88, 108, 89, 90, 91, 37, 38, 92, 93, 94, 95, 96, 97, 0, 0, 0, 98, 99, 100, 101, 102, 0, 39, 0, 103, 40, 41, 42, 43, 44, 0, 0, 45, 46, - 47, 48, 49, 50, 51, 0, 0, 592, 0, 0, + 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 53, 54, - 0, 55, 0, 56, 57, 18, 84, 0, 19, 0, + 0, 55, 0, 56, 57, 18, 84, 558, 19, 0, 58, 20, 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 88, 108, 89, 90, 91, 37, 38, @@ -503,61 +483,71 @@ static const yytype_int16 yytable[] = 56, 57, 18, 84, 0, 19, 0, 58, 20, 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, - 88, 0, 89, 90, 91, 37, 38, 92, 93, 94, + 88, 108, 89, 90, 91, 37, 38, 92, 93, 94, 95, 96, 97, 0, 0, 0, 98, 99, 100, 101, 102, 0, 39, 0, 103, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, - 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, - 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, - 0, 0, 20, 0, 58, 21, 22, 23, -17, 0, + 0, 589, 0, 0, 0, 0, 0, 52, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 53, 54, 0, 55, 0, 56, 57, 18, + 84, 0, 19, 0, 58, 20, 0, 0, 21, 22, + 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, + 0, 31, 32, 33, 34, 35, 36, 88, 108, 89, + 90, 91, 37, 38, 92, 93, 94, 95, 96, 97, + 0, 0, 0, 98, 99, 100, 101, 102, 0, 39, + 0, 103, 40, 41, 42, 43, 44, 0, 0, 45, + 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 53, + 54, 0, 55, 0, 56, 57, 18, 84, 0, 19, + 0, 58, 20, 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, - 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, - 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 39, 0, 0, 40, + 33, 34, 35, 36, 88, 0, 89, 90, 91, 37, + 38, 92, 93, 94, 95, 96, 97, 0, 0, 0, + 98, 99, 100, 101, 102, 0, 39, 0, 103, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, 0, 0, 20, 0, 58, 21, - 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, + 22, 23, -17, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 39, 0, 0, 40, 41, 42, 43, 44, -217, 0, - 45, 46, 47, 48, 49, 50, 51, 0, 0, 210, - 0, 211, -217, -217, 0, 52, 0, 0, 0, 0, - -217, -217, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 54, 0, 55, 0, 56, 57, 0, 0, 0, - 0, -17, 58, 0, 0, -217, -217, -217, -217, 0, - 0, 0, -217, 0, -217, 0, 0, 0, 0, -217, - 0, 0, 0, 0, 0, 0, -217, -217, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -217, - 0, -217, -217, 0, -217, -217, -217, -217, -217, -217, - -217, -217, -217, -217, -217, -217, -217, -217, -256, 189, - 190, 0, -217, 0, 0, -217, -217, -217, -217, -217, - 0, 0, -256, -256, 0, 0, 0, 0, 0, 0, - -256, -256, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 0, 0, 0, 0, 204, 0, 0, 205, 206, - 207, 208, 0, 0, 0, -256, -256, -256, -256, 0, - 0, 0, -256, 0, -256, 0, 0, 0, 0, -256, - 0, 0, 0, 0, 0, 0, -256, -256, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -256, - 0, -256, -256, 0, -256, -256, -256, -256, -256, -256, - -256, -256, -256, -256, -256, -256, -256, -256, 0, 0, - 0, 0, -256, 0, 0, -256, -256, -256, -256, -256, - 18, 84, 0, 19, 0, 0, 20, 0, 0, 21, - 22, 23, 0, 0, 24, 25, 146, 27, 28, 29, - 30, 118, 31, 32, 33, 34, 35, 36, 0, 0, - 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 54, 0, 55, 18, 56, 57, 19, 122, 0, + 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, + 53, 54, 0, 55, 18, 56, 57, 19, 0, 0, 20, 0, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, + 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 39, 0, 0, 40, 41, 42, + 43, 44, -215, 0, 45, 46, 47, 48, 49, 50, + 51, 0, 0, 208, 0, 209, -215, -215, 0, 52, + 0, 0, 0, 0, -215, -215, 0, 0, 0, 0, + 0, 0, 0, 0, 53, 54, 0, 55, 0, 56, + 57, 0, 0, 0, 0, -17, 58, 0, 0, -215, + -215, -215, -215, 0, 0, 0, -215, 0, -215, 0, + 0, 0, 0, -215, 0, 0, 0, 0, 0, 0, + -215, -215, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -215, 0, -215, -215, 0, -215, -215, + -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, + -215, -215, -254, 0, 0, 0, -215, 0, 0, -215, + -215, -215, -215, -215, 0, 0, -254, -254, 0, 0, + 0, 0, 0, 0, -254, -254, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -254, + -254, -254, -254, 0, 0, 0, -254, 0, -254, 0, + 0, 0, 0, -254, 0, 0, 0, 0, 0, 0, + -254, -254, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, -254, 0, -254, -254, 0, -254, -254, + -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, + -254, -254, 0, 0, 0, 0, -254, 0, 0, -254, + -254, -254, -254, -254, 18, 84, 0, 19, 0, 0, + 20, 0, 0, 21, 22, 23, 0, 0, 24, 25, + 145, 27, 28, 29, 30, 118, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 40, 41, 42, @@ -575,7 +565,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, 0, - 0, 20, 0, 58, 21, 22, 23, 155, 0, 24, + 0, 20, 0, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -584,7 +574,7 @@ static const yytype_int16 yytable[] = 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, - 56, 57, 19, 0, 0, 20, 0, 58, 21, 22, + 56, 57, 19, 0, 0, 20, 172, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, @@ -594,7 +584,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, 0, 0, 20, - 174, 58, 21, 22, 23, 0, 0, 24, 25, 26, + 273, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -603,7 +593,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, - 19, 0, 0, 20, 275, 58, 21, 22, 23, 0, + 19, 0, 0, 20, 287, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, @@ -612,7 +602,7 @@ static const yytype_int16 yytable[] = 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, - 55, 18, 56, 57, 19, 0, 0, 20, 290, 58, + 55, 18, 56, 57, 19, 0, 0, 20, 298, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, @@ -622,7 +612,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, 0, - 0, 20, 301, 58, 21, 22, 23, 0, 0, 24, + 0, 20, 331, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -631,7 +621,7 @@ static const yytype_int16 yytable[] = 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, - 56, 57, 19, 0, 0, 20, 334, 58, 21, 22, + 56, 57, 19, 0, 0, 20, 394, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, @@ -641,7 +631,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, 0, 0, 20, - 397, 58, 21, 22, 23, 0, 0, 24, 25, 26, + 413, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -650,148 +640,127 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, - 19, 0, 0, 20, 416, 58, 21, 22, 23, 0, + 19, 0, 0, 20, 0, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, - 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, + 37, 38, 0, 0, 0, 0, 0, 520, 521, 0, + 0, 524, 0, 0, 0, 528, 529, 39, 0, 0, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, - 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, - 55, 18, 56, 57, 19, 0, 0, 20, 0, 58, - 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, - 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, - 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, + 48, 49, 50, 51, 0, 540, 541, 0, 0, 0, + 0, 0, 52, 0, 552, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 53, 54, 561, + 55, 0, 56, 57, 563, 564, 0, 0, 0, 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 39, 0, 0, 40, 41, 42, 43, 44, 0, - 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, - 0, 0, 0, 0, 0, 0, 52, 0, 0, 188, - 0, 0, 0, 0, 0, 0, 189, 190, 0, 0, - 0, 53, 54, 0, 55, 0, 56, 57, 0, 0, - 0, 0, 0, 284, 191, 192, 407, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 0, 0, - 0, 0, 204, 188, 0, 205, 206, 207, 208, 0, - 189, 190, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, - 0, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 0, 0, 0, 0, 204, 188, 0, 205, - 206, 207, 208, 0, 189, 190, 0, 0, 0, 0, + 0, 0, 0, 576, 186, 0, 0, 0, 0, 0, + 0, 187, 188, 0, 585, 0, 0, 0, 0, 587, + 0, 0, 0, 0, 0, 0, 0, 0, 592, 189, + 190, 404, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 0, 0, 0, 0, 202, 186, 0, + 203, 204, 205, 206, 0, 187, 188, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 189, 190, 0, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 0, 0, 0, + 0, 202, 186, 0, 203, 204, 205, 206, 0, 187, + 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 0, 0, 0, 0, 202, -292, 0, 203, 204, + 205, 206, 0, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 192, 0, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 0, 0, 0, 0, - 204, 0, 0, 205, 206, 207, 208 + 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 0, 0, 0, 0, 202, + 0, 0, 203, 204, 205, 206 }; static const yytype_int16 yycheck[] = { - 10, 17, 44, 9, 50, 50, 130, 364, 142, 143, - 52, 270, 11, 492, 13, 22, 12, 22, 13, 524, - 0, 18, 11, 20, 29, 22, 14, 24, 25, 11, - 27, 28, 18, 22, 44, 159, 22, 80, 24, 25, - 13, 27, 28, 10, 83, 84, 22, 44, 45, 14, - 354, 112, 19, 50, 14, 16, 14, 16, 44, 45, - 364, 20, 15, 367, 368, 24, 14, 96, 14, 112, - 23, 14, 111, 11, 13, 13, 83, 84, 84, 11, - 47, 13, 77, 10, 11, 590, 13, 112, 130, 16, - 112, 58, 14, 20, 104, 83, 84, 24, 25, 578, - 27, 98, 493, 494, 77, 115, 497, 83, 84, 151, - 501, 502, 108, 112, 75, 161, 161, 159, 83, 84, - 130, 83, 84, 83, 84, 83, 84, 137, 138, 263, - 521, 522, 142, 143, 15, 83, 84, 83, 84, 530, - 83, 84, 103, 70, 103, 77, 143, 451, 112, 159, - 11, 112, 13, 112, 545, 11, 11, 143, 13, 550, - 551, 83, 84, 14, 161, 11, 133, 13, 11, 11, - 13, 13, 431, 94, 141, 142, 143, 22, 569, 83, - 84, 11, 228, 228, 11, 112, 13, 83, 84, 580, - 10, 495, 496, 26, 585, 162, 16, 22, 16, 112, - 20, 217, 20, 594, 24, 112, 24, 111, 218, 176, - 177, 208, 179, 180, 181, 111, 77, 223, 224, 225, - 226, 227, 264, 229, 230, 529, 232, 233, 487, 586, - 22, 228, 83, 84, 77, 26, 22, 112, 83, 84, - 31, 112, 209, 210, 211, 212, 213, 214, 215, 216, - 94, 95, 22, 263, 527, 75, 96, 97, 83, 84, - 270, 565, 112, 387, 112, 47, 48, 49, 50, 11, - 543, 544, 54, 22, 56, 242, 243, 244, 245, 246, - 247, 53, 555, 22, 418, 11, 112, 83, 84, 111, - 16, 83, 84, 566, 567, 80, 263, 83, 84, 25, - 26, 83, 84, 61, 29, 31, 579, 51, 52, 77, - 68, 69, 279, 83, 84, 111, 111, 284, 16, 365, - 365, 12, 20, 77, 219, 220, 24, 294, 325, 111, - 13, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 83, 84, 26, 387, 104, 37, 38, 107, - 108, 109, 110, 369, 364, 26, 323, 324, 103, 356, - 366, 83, 84, 59, 331, 112, 490, 15, 365, 31, - 111, 381, 382, 90, 91, 385, 29, 387, 83, 84, - 390, 81, 388, 111, 351, 352, 353, 354, 12, 111, - 83, 84, 107, 108, 109, 110, 29, 364, 11, 13, - 367, 368, 25, 84, 68, 18, 111, 20, 418, 22, - 25, 24, 25, 25, 27, 28, 25, 25, 111, 18, - 430, 431, 428, 112, 26, 16, 432, 112, 112, 86, - 43, 44, 45, 46, 111, 99, 403, 443, 112, 21, - 104, 23, 12, 107, 108, 109, 110, 12, 490, 12, - 12, 418, 34, 47, 48, 49, 50, 39, 12, 26, - 54, 43, 56, 11, 46, 68, 69, 49, 16, 51, - 111, 53, 54, 55, 56, 57, 111, 487, 26, 111, - 490, 111, 111, 31, 451, 112, 22, 11, 101, 83, - 84, 111, 508, 111, 510, 462, 99, 81, 504, 11, - 111, 104, 12, 519, 107, 108, 109, 110, 22, 515, - 99, 68, 69, 523, 524, 104, 22, 527, 107, 108, - 109, 110, 112, 136, 111, 111, 79, 537, 495, 496, - 143, 22, 22, 543, 544, 111, 533, 94, 95, 96, - 97, 98, 99, 111, 22, 555, 112, 104, 17, 78, - 107, 108, 109, 110, 13, 111, 566, 567, 108, 111, - 111, 528, 529, 573, 111, 528, 582, 104, 352, 579, - 107, 108, 109, 110, 586, 286, 586, 430, 382, 161, - 590, 3, 4, 5, 6, 7, 8, 9, 244, 245, - 246, 247, 255, 383, 468, 515, 178, 488, 565, 365, - 161, -1, 184, 228, -1, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 0, 1, 238, -1, -1, -1, -1, - -1, -1, -1, 10, 11, -1, 13, -1, -1, 16, - -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, - 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, -1, 68, 69, 54, 55, 56, - 57, 58, -1, 60, -1, 62, 63, 64, 65, 66, - 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, - 93, 94, 95, 96, 97, 98, 99, -1, 85, -1, - -1, 104, 325, -1, 107, 108, 109, 110, -1, -1, - -1, 0, 1, 100, 101, -1, 103, -1, 105, 106, - -1, 10, 11, -1, 13, 112, -1, 16, -1, -1, - 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, - 29, 30, -1, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, -1, 68, 69, 54, 55, 56, 57, 58, - -1, 60, -1, 62, 63, 64, 65, 66, 67, -1, - -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, - -1, 96, 97, 98, 99, -1, 85, -1, -1, 104, - 68, 69, 107, 108, 109, 110, -1, -1, -1, -1, - -1, 100, 101, -1, 103, 407, 105, 106, -1, -1, - -1, -1, -1, 112, 92, 93, 94, 95, 96, 97, - 98, 99, -1, -1, 1, -1, 104, -1, -1, 107, - 108, 109, 110, 10, 11, 12, 13, -1, -1, 16, - -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, - 27, 28, 29, 30, 456, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 68, 69, -1, 54, 55, 56, - 57, 58, -1, 60, -1, 62, 63, 64, 65, 66, - 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, - -1, -1, -1, -1, 98, 99, -1, -1, 85, -1, - 104, -1, -1, 107, 108, 109, 110, -1, -1, -1, - -1, 1, -1, 100, 101, -1, 103, -1, 105, 106, - 10, 11, 12, 13, -1, 112, 16, -1, -1, 19, - 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, - 30, -1, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, -1, -1, -1, 54, 55, 56, 57, 58, -1, - 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, - 70, 71, 72, 73, 74, 75, 76, -1, -1, -1, - -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, - 100, 101, -1, 103, -1, 105, 106, 10, 11, 12, - 13, -1, 112, 16, -1, -1, 19, 20, 21, 22, - -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, + 10, 17, 44, 9, 129, 50, 361, 19, 12, 19, + 52, 50, 11, 489, 13, 22, 268, 80, 0, 14, + 16, 18, 29, 20, 11, 22, 351, 24, 25, 521, + 27, 28, 157, 14, 44, 47, 361, 47, 16, 364, + 365, 14, 20, 10, 13, 13, 24, 44, 45, 112, + 112, 26, 19, 50, 13, 18, 31, 10, 11, 22, + 13, 24, 25, 16, 27, 28, 14, 20, 14, 112, + 14, 24, 25, 14, 27, 11, 112, 13, 84, 75, + 47, 44, 45, 14, 11, 15, 13, 129, 83, 84, + 11, 58, 13, 22, 104, 587, 22, 112, 15, 575, + 94, 98, 83, 84, 108, 115, 23, 103, 150, 77, + 83, 84, 96, 112, 159, 157, 112, 70, 77, 129, + 159, 22, 11, 448, 22, 103, 136, 137, 22, 141, + 142, 141, 142, 22, 112, 83, 84, 83, 84, 83, + 84, 77, 83, 84, 11, 142, 11, 157, 83, 84, + 77, 16, 83, 84, 83, 84, 77, 83, 84, 112, + 25, 26, 159, 83, 84, 132, 31, 492, 493, 22, + 11, 11, 13, 140, 141, 142, 428, 83, 84, 142, + 26, 226, 83, 84, 112, 83, 84, 226, 10, 83, + 84, 111, 11, 160, 16, 83, 84, 112, 20, 215, + 112, 526, 24, 96, 97, 111, 216, 174, 175, 206, + 177, 178, 179, 94, 95, 221, 222, 223, 224, 225, + 262, 227, 228, 111, 230, 231, 51, 52, 583, 226, + 83, 84, 484, 112, 83, 84, 112, 562, 83, 84, + 207, 208, 209, 210, 211, 212, 213, 214, 11, 261, + 13, 261, 112, 75, 11, 83, 84, 22, 268, 384, + 22, 18, 111, 20, 53, 22, 111, 24, 25, 14, + 27, 28, 80, 240, 241, 242, 243, 244, 245, 112, + 68, 69, 111, 111, 83, 84, 43, 44, 45, 46, + 83, 84, 217, 218, 261, 47, 48, 49, 50, 68, + 69, 16, 54, 29, 56, 20, 11, 77, 13, 24, + 277, 99, 111, 11, 281, 13, 104, 362, 111, 107, + 108, 109, 110, 362, 291, 322, 111, 96, 97, 98, + 99, 83, 84, 22, 11, 104, 13, 77, 107, 108, + 109, 110, 384, 13, 101, 37, 38, 524, 90, 91, + 366, 361, 26, 320, 321, 26, 353, 363, 112, 111, + 103, 328, 487, 540, 541, 362, 59, 31, 378, 379, + 15, 29, 382, 68, 384, 552, 111, 387, 135, 385, + 81, 348, 349, 350, 351, 142, 563, 564, 12, 29, + 13, 11, 25, 84, 361, 25, 16, 364, 365, 576, + 25, 68, 69, 415, 99, 415, 26, 25, 25, 104, + 112, 31, 107, 108, 109, 110, 18, 427, 428, 425, + 16, 26, 112, 429, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 400, 440, 86, 21, 104, 23, 112, + 107, 108, 109, 110, 112, 487, 111, 12, 415, 34, + 47, 48, 49, 50, 39, 12, 12, 54, 43, 56, + 12, 46, 12, 26, 49, 111, 51, 111, 53, 54, + 55, 56, 57, 111, 484, 111, 16, 487, 112, 236, + 20, 448, 111, 22, 24, 111, 83, 84, 99, 505, + 111, 507, 459, 104, 81, 501, 107, 108, 109, 110, + 516, 107, 108, 109, 110, 11, 512, 11, 68, 69, + 520, 521, 12, 111, 524, 3, 4, 5, 6, 7, + 8, 9, 112, 22, 534, 492, 493, 22, 111, 111, + 540, 541, 79, 530, 94, 95, 96, 97, 98, 99, + 68, 69, 552, 22, 104, 22, 112, 107, 108, 109, + 110, 22, 111, 563, 564, 17, 111, 111, 525, 526, + 570, 78, 111, 579, 13, 322, 576, 111, 111, 525, + 98, 99, 108, 583, 159, 349, 104, 587, 583, 107, + 108, 109, 110, 104, 427, 379, 107, 108, 109, 110, + 253, 176, 465, 380, 512, 562, 283, 182, 485, 226, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 0, 1, + 242, 243, 244, 245, 159, 362, -1, -1, 10, 11, + -1, 13, -1, -1, 16, -1, -1, 19, 20, 21, + 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, + 68, 69, 54, 55, 56, 57, 58, -1, 60, -1, + 62, 63, 64, 65, 66, 67, -1, -1, 70, 71, + 72, 73, 74, 75, 76, 93, 94, 95, 96, 97, + 98, 99, -1, 85, -1, -1, 104, -1, -1, 107, + 108, 109, 110, -1, -1, 0, 1, -1, 100, 101, + -1, 103, -1, 105, 106, 10, 11, -1, 13, -1, + 112, 16, -1, -1, 19, 20, 21, 22, -1, 24, + 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, + 55, 56, 57, 58, -1, 60, -1, 62, 63, 64, + 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, + 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, + 85, -1, -1, -1, 68, 69, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 100, 101, -1, 103, 404, + 105, 106, -1, -1, -1, -1, -1, 112, 92, 93, + 94, 95, 96, 97, 98, 99, -1, -1, 1, -1, + 104, -1, -1, 107, 108, 109, 110, 10, 11, 12, + 13, -1, -1, 16, -1, -1, 19, 20, 21, 22, + -1, 24, 25, 26, 27, 28, 29, 30, 453, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, 55, 56, 57, 58, -1, 60, -1, 62, @@ -819,16 +788,16 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 100, 101, -1, 103, -1, 105, 106, 10, 11, - -1, 13, -1, 112, 16, -1, -1, 19, 20, 21, + 12, 13, -1, 112, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, 55, 56, 57, 58, -1, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, 70, 71, - 72, 73, 74, 75, 76, -1, -1, 79, -1, -1, + 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 100, 101, - -1, 103, -1, 105, 106, 10, 11, -1, 13, -1, + -1, 103, -1, 105, 106, 10, 11, 12, 13, -1, 112, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, @@ -841,64 +810,74 @@ static const yytype_int16 yycheck[] = 105, 106, 10, 11, -1, 13, -1, 112, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, - 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, 55, 56, 57, 58, -1, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, - -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, - -1, -1, 100, 101, -1, 103, 10, 105, 106, 13, - -1, -1, 16, -1, 112, 19, 20, 21, 22, -1, + -1, 79, -1, -1, -1, -1, -1, 85, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1, -1, 100, 101, -1, 103, -1, 105, 106, 10, + 11, -1, 13, -1, 112, 16, -1, -1, 19, 20, + 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, + -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + -1, -1, -1, 54, 55, 56, 57, 58, -1, 60, + -1, 62, 63, 64, 65, 66, 67, -1, -1, 70, + 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, + -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1, -1, 100, + 101, -1, 103, -1, 105, 106, 10, 11, -1, 13, + -1, 112, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, - 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, - 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, + 34, 35, 36, 37, 38, -1, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, + 54, 55, 56, 57, 58, -1, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 100, 101, -1, 103, 10, 105, 106, 13, -1, -1, 16, -1, 112, 19, - 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, + 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 60, -1, -1, 63, 64, 65, 66, 67, 0, -1, - 70, 71, 72, 73, 74, 75, 76, -1, -1, 11, - -1, 13, 14, 15, -1, 85, -1, -1, -1, -1, - 22, 23, -1, -1, -1, -1, -1, -1, -1, -1, - 100, 101, -1, 103, -1, 105, 106, -1, -1, -1, - -1, 111, 112, -1, -1, 47, 48, 49, 50, -1, - -1, -1, 54, -1, 56, -1, -1, -1, -1, 61, - -1, -1, -1, -1, -1, -1, 68, 69, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, - -1, 83, 84, -1, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 0, 68, - 69, -1, 104, -1, -1, 107, 108, 109, 110, 111, - -1, -1, 14, 15, -1, -1, -1, -1, -1, -1, - 22, 23, 91, 92, 93, 94, 95, 96, 97, 98, - 99, -1, -1, -1, -1, 104, -1, -1, 107, 108, - 109, 110, -1, -1, -1, 47, 48, 49, 50, -1, - -1, -1, 54, -1, 56, -1, -1, -1, -1, 61, - -1, -1, -1, -1, -1, -1, 68, 69, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, - -1, 83, 84, -1, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, -1, -1, - -1, -1, 104, -1, -1, 107, 108, 109, 110, 111, - 10, 11, -1, 13, -1, -1, 16, -1, -1, 19, - 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, -1, -1, - -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 100, 101, -1, 103, 10, 105, 106, 13, 14, -1, + -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, + 100, 101, -1, 103, 10, 105, 106, 13, -1, -1, 16, -1, 112, 19, 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, + 66, 67, 0, -1, 70, 71, 72, 73, 74, 75, + 76, -1, -1, 11, -1, 13, 14, 15, -1, 85, + -1, -1, -1, -1, 22, 23, -1, -1, -1, -1, + -1, -1, -1, -1, 100, 101, -1, 103, -1, 105, + 106, -1, -1, -1, -1, 111, 112, -1, -1, 47, + 48, 49, 50, -1, -1, -1, 54, -1, 56, -1, + -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, + 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, -1, 83, 84, -1, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 0, -1, -1, -1, 104, -1, -1, 107, + 108, 109, 110, 111, -1, -1, 14, 15, -1, -1, + -1, -1, -1, -1, 22, 23, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, + 48, 49, 50, -1, -1, -1, 54, -1, 56, -1, + -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, + 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, -1, 83, 84, -1, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, -1, -1, -1, -1, 104, -1, -1, 107, + 108, 109, 110, 111, 10, 11, -1, 13, -1, -1, + 16, -1, -1, 19, 20, 21, -1, -1, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -913,7 +892,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, -1, 103, 10, 105, 106, 13, -1, - -1, 16, -1, 112, 19, 20, 21, 22, -1, 24, + -1, 16, -1, 112, 19, 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -922,7 +901,7 @@ static const yytype_int16 yycheck[] = 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, -1, 103, 10, - 105, 106, 13, -1, -1, 16, -1, 112, 19, 20, + 105, 106, 13, -1, -1, 16, 111, 112, 19, 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, @@ -988,37 +967,36 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, -1, 103, 10, 105, 106, - 13, -1, -1, 16, 111, 112, 19, 20, 21, -1, + 13, -1, -1, 16, -1, 112, 19, 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, - 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, + 43, 44, -1, -1, -1, -1, -1, 490, 491, -1, + -1, 494, -1, -1, -1, 498, 499, 60, -1, -1, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, - 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, - -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 100, 101, -1, - 103, 10, 105, 106, 13, -1, -1, 16, -1, 112, - 19, 20, 21, -1, -1, 24, 25, 26, 27, 28, - 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, - -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, + 73, 74, 75, 76, -1, 518, 519, -1, -1, -1, + -1, -1, 85, -1, 527, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 100, 101, 542, + 103, -1, 105, 106, 547, 548, -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, 63, 64, 65, 66, 67, -1, - -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, - -1, -1, -1, -1, -1, -1, 85, -1, -1, 61, - -1, -1, -1, -1, -1, -1, 68, 69, -1, -1, - -1, 100, 101, -1, 103, -1, 105, 106, -1, -1, - -1, -1, -1, 112, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, -1, -1, - -1, -1, 104, 61, -1, 107, 108, 109, 110, -1, - 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 86, 87, - -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, -1, -1, -1, -1, 104, 61, -1, 107, - 108, 109, 110, -1, 68, 69, -1, -1, -1, -1, + -1, -1, -1, 566, 61, -1, -1, -1, -1, -1, + -1, 68, 69, -1, 577, -1, -1, -1, -1, 582, + -1, -1, -1, -1, -1, -1, -1, -1, 591, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, -1, -1, -1, 104, 61, -1, + 107, 108, 109, 110, -1, 68, 69, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 86, 87, -1, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, -1, -1, -1, + -1, 104, 61, -1, 107, 108, 109, 110, -1, 68, + 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, 104, 61, -1, 107, 108, + 109, 110, -1, 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 87, -1, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, -1, -1, -1, -1, - 104, -1, -1, 107, 108, 109, 110 + -1, -1, -1, -1, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, -1, -1, -1, -1, 104, + -1, -1, 107, 108, 109, 110 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1037,54 +1015,54 @@ static const yytype_uint8 yystos[] = 41, 42, 45, 46, 47, 48, 49, 50, 54, 55, 56, 57, 58, 62, 122, 132, 145, 178, 39, 130, 131, 132, 123, 128, 172, 173, 128, 26, 31, 122, - 204, 212, 14, 178, 212, 192, 212, 192, 212, 212, - 212, 212, 193, 13, 112, 192, 156, 156, 156, 192, - 112, 112, 80, 112, 122, 192, 26, 123, 179, 196, - 204, 212, 212, 122, 192, 22, 178, 26, 31, 158, - 192, 103, 112, 195, 204, 205, 206, 192, 179, 192, - 192, 192, 192, 192, 111, 178, 83, 84, 15, 11, - 13, 112, 96, 97, 96, 94, 95, 94, 61, 68, - 69, 86, 87, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 104, 107, 108, 109, 110, 112, - 11, 13, 11, 13, 11, 13, 11, 125, 157, 158, - 158, 26, 155, 112, 112, 112, 112, 75, 103, 112, - 202, 204, 112, 112, 122, 11, 126, 22, 53, 123, - 147, 22, 47, 48, 49, 50, 54, 56, 131, 132, - 130, 16, 20, 24, 123, 163, 164, 166, 167, 168, - 169, 14, 196, 112, 80, 178, 111, 122, 29, 123, - 159, 77, 123, 160, 111, 111, 178, 197, 197, 212, - 179, 12, 22, 196, 112, 192, 195, 204, 205, 206, - 111, 178, 77, 161, 13, 111, 178, 178, 192, 178, - 178, 111, 178, 192, 192, 192, 192, 192, 192, 192, + 204, 212, 197, 212, 192, 212, 192, 212, 212, 212, + 212, 193, 13, 112, 192, 156, 156, 156, 192, 112, + 112, 80, 112, 122, 192, 26, 123, 179, 196, 204, + 212, 212, 122, 192, 197, 26, 31, 158, 192, 103, + 112, 195, 204, 205, 206, 192, 179, 192, 192, 192, + 192, 192, 111, 178, 83, 84, 15, 11, 13, 112, + 96, 97, 96, 94, 95, 94, 61, 68, 69, 86, + 87, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 104, 107, 108, 109, 110, 112, 11, 13, + 11, 13, 11, 13, 11, 125, 157, 158, 158, 26, + 155, 112, 112, 112, 112, 75, 103, 112, 202, 204, + 112, 112, 122, 11, 126, 22, 53, 123, 147, 22, + 47, 48, 49, 50, 54, 56, 131, 132, 130, 16, + 20, 24, 123, 163, 164, 166, 167, 168, 169, 14, + 196, 112, 80, 178, 111, 122, 29, 123, 159, 77, + 123, 160, 111, 111, 178, 197, 197, 212, 179, 22, + 196, 112, 192, 195, 204, 205, 206, 111, 178, 77, + 161, 13, 111, 178, 178, 192, 178, 178, 111, 178, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 10, 11, 13, 16, 20, 24, 25, 27, - 70, 112, 182, 204, 111, 178, 178, 178, 178, 178, - 178, 178, 178, 128, 26, 123, 154, 155, 155, 26, - 135, 125, 125, 125, 125, 103, 125, 75, 200, 201, - 203, 204, 205, 206, 125, 125, 112, 125, 125, 127, - 59, 122, 144, 178, 151, 178, 144, 144, 144, 144, - 31, 162, 162, 15, 197, 179, 14, 181, 160, 29, - 125, 177, 111, 81, 111, 178, 12, 111, 178, 161, - 111, 29, 178, 13, 22, 14, 111, 88, 25, 178, - 178, 25, 25, 25, 25, 25, 111, 178, 112, 111, - 22, 14, 22, 14, 22, 14, 22, 12, 18, 124, - 133, 134, 11, 22, 26, 150, 178, 151, 152, 178, - 152, 199, 204, 112, 123, 145, 149, 152, 153, 178, - 200, 125, 152, 152, 128, 112, 86, 123, 165, 165, - 167, 111, 23, 123, 198, 196, 125, 175, 112, 123, - 170, 171, 111, 111, 14, 178, 12, 192, 22, 14, - 111, 197, 12, 12, 12, 12, 125, 159, 160, 125, - 26, 111, 111, 111, 111, 112, 125, 111, 22, 138, - 152, 111, 111, 12, 139, 192, 178, 81, 11, 172, - 11, 14, 12, 111, 22, 160, 22, 176, 177, 141, - 196, 148, 148, 126, 126, 152, 152, 126, 136, 112, - 111, 126, 126, 125, 128, 111, 128, 79, 22, 174, - 175, 128, 22, 126, 126, 51, 52, 123, 146, 146, - 111, 111, 147, 150, 152, 126, 204, 12, 12, 123, - 129, 12, 147, 147, 126, 112, 126, 126, 22, 111, - 147, 140, 22, 29, 142, 152, 147, 147, 137, 126, - 111, 17, 78, 123, 143, 111, 148, 147, 126, 128, - 126, 153, 79, 146, 111, 126 + 192, 192, 192, 192, 192, 192, 192, 192, 192, 10, + 11, 13, 16, 20, 24, 25, 27, 70, 112, 182, + 204, 111, 178, 178, 178, 178, 178, 178, 178, 178, + 128, 26, 123, 154, 155, 155, 26, 135, 125, 125, + 125, 125, 103, 125, 75, 200, 201, 203, 204, 205, + 206, 125, 125, 112, 125, 125, 127, 59, 122, 144, + 178, 151, 178, 144, 144, 144, 144, 31, 162, 162, + 15, 197, 179, 14, 181, 160, 29, 125, 177, 111, + 81, 111, 178, 12, 111, 178, 161, 111, 29, 178, + 13, 22, 14, 111, 88, 25, 178, 178, 25, 25, + 25, 25, 25, 111, 178, 112, 111, 22, 14, 22, + 14, 22, 14, 22, 12, 18, 124, 133, 134, 11, + 22, 26, 150, 178, 151, 152, 178, 152, 199, 204, + 112, 123, 145, 149, 152, 153, 178, 200, 125, 152, + 152, 128, 112, 86, 123, 165, 165, 167, 111, 23, + 123, 198, 196, 125, 175, 112, 123, 170, 171, 111, + 111, 14, 178, 12, 192, 22, 14, 111, 197, 12, + 12, 12, 12, 125, 159, 160, 125, 26, 111, 111, + 111, 111, 112, 125, 111, 22, 138, 152, 111, 111, + 12, 139, 192, 178, 81, 11, 172, 11, 14, 12, + 111, 22, 160, 22, 176, 177, 141, 196, 148, 148, + 126, 126, 152, 152, 126, 136, 112, 111, 126, 126, + 125, 128, 111, 128, 79, 22, 174, 175, 128, 22, + 126, 126, 51, 52, 123, 146, 146, 111, 111, 147, + 150, 152, 126, 204, 12, 12, 123, 129, 12, 147, + 147, 126, 112, 126, 126, 22, 111, 147, 140, 22, + 29, 142, 152, 147, 147, 137, 126, 111, 17, 78, + 123, 143, 111, 148, 147, 126, 128, 126, 153, 79, + 146, 111, 126 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -1110,16 +1088,16 @@ static const yytype_uint8 yyr1[] = 184, 184, 184, 184, 184, 184, 184, 185, 185, 185, 185, 186, 186, 187, 187, 187, 187, 188, 188, 189, 189, 189, 189, 189, 189, 189, 189, 189, 190, 190, - 190, 190, 190, 190, 191, 191, 192, 192, 192, 192, + 190, 190, 191, 191, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 193, 192, 192, 192, 192, 194, - 194, 194, 194, 195, 195, 195, 195, 195, 196, 196, - 197, 197, 198, 198, 199, 200, 200, 200, 201, 201, - 202, 202, 203, 204, 205, 206, 207, 207, 208, 209, - 209, 210, 210, 211, 211, 212, 212, 212, 212 + 192, 192, 193, 192, 192, 192, 192, 194, 194, 194, + 194, 195, 195, 195, 195, 195, 196, 196, 197, 197, + 198, 198, 199, 200, 200, 200, 201, 201, 202, 202, + 203, 204, 205, 206, 207, 207, 208, 209, 209, 210, + 210, 211, 211, 212, 212, 212, 212 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1144,17 +1122,17 @@ static const yytype_uint8 yyr2[] = 6, 4, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 2, 2, 3, 3, 1, 3, 2, 2, 3, 3, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, - 4, 3, 5, 4, 2, 2, 1, 1, 1, 1, - 5, 2, 1, 2, 3, 1, 2, 1, 1, 1, - 1, 1, 1, 4, 4, 5, 5, 1, 1, 3, - 4, 3, 4, 4, 4, 4, 4, 1, 2, 2, - 1, 2, 2, 1, 2, 1, 2, 1, 3, 1, - 3, 1, 3, 4, 0, 6, 1, 1, 1, 3, - 2, 4, 3, 3, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 4, 2, 1, - 3, 1, 3, 1, 3, 1, 1, 1, 1 + 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, + 5, 4, 2, 2, 1, 1, 1, 1, 5, 2, + 1, 2, 3, 1, 2, 1, 1, 1, 1, 1, + 1, 4, 4, 5, 5, 1, 1, 3, 4, 3, + 4, 4, 4, 4, 4, 1, 2, 2, 1, 2, + 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, + 3, 4, 0, 6, 1, 1, 1, 3, 2, 4, + 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 4, 2, 1, 3, 1, + 3, 1, 3, 1, 1, 1, 1 }; typedef enum { @@ -1203,6 +1181,6 @@ static const toketypes yy_type_tab[] = }; /* Generated from: - * 9d640388a78a9c6e6e45594dbbf5b3076c577c84be62ff3142c4e54821baf06e perly.y + * fe008713888439604cbf82f172e7a2abd6c268a1fc97055ec5b3fff4d5e8ed3d perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.y b/perly.y index d7b4f00d22b2..023dcb091375 100644 --- a/perly.y +++ b/perly.y @@ -1153,14 +1153,11 @@ termunop : PERLY_MINUS term %prec UMINUS /* -$x */ ; /* Constructors for anonymous data */ -anonymous: PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE - { $$ = newANONLIST($expr); } - | PERLY_BRACKET_OPEN PERLY_BRACKET_CLOSE - { $$ = newANONLIST(NULL);} - | HASHBRACK expr PERLY_SEMICOLON PERLY_BRACE_CLOSE %prec PERLY_PAREN_OPEN /* { foo => "Bar" } */ - { $$ = newANONHASH($expr); } - | HASHBRACK PERLY_SEMICOLON PERLY_BRACE_CLOSE %prec PERLY_PAREN_OPEN /* { } (PERLY_SEMICOLON by tokener) */ - { $$ = newANONHASH(NULL); } +anonymous + : PERLY_BRACKET_OPEN optexpr PERLY_BRACKET_CLOSE + { $$ = newANONLIST($optexpr); } + | HASHBRACK optexpr PERLY_SEMICOLON PERLY_BRACE_CLOSE %prec PERLY_PAREN_OPEN /* { foo => "Bar" } */ + { $$ = newANONHASH($optexpr); } | ANONSUB startanonsub proto subattrlist subbody %prec PERLY_PAREN_OPEN { SvREFCNT_inc_simple_void(PL_compcv); $$ = newANONATTRSUB($startanonsub, $proto, $subattrlist, $subbody); } From 7694af3acb6f3a7af8a9988dd381ff67bfefab36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branislav=20Zahradn=C3=ADk?= Date: Tue, 8 Jun 2021 11:42:57 +0200 Subject: [PATCH 7/7] Support "local sub name {}" expression Consistency complement to "my sub". --- MANIFEST | 1 + perly.act | 702 +++++++++++++----------- perly.h | 2 +- perly.tab | 1340 +++++++++++++++++++++++----------------------- perly.y | 55 +- t/op/local-sub.t | 36 ++ 6 files changed, 1145 insertions(+), 991 deletions(-) create mode 100644 t/op/local-sub.t diff --git a/MANIFEST b/MANIFEST index e15db8ea8a32..ef121bff2184 100644 --- a/MANIFEST +++ b/MANIFEST @@ -5873,6 +5873,7 @@ t/op/lexsub.t See if lexical subroutines work t/op/lfs.t See if large files work for perlio t/op/list.t See if lists and list slices work t/op/local.t See if local works +t/op/local-sub.t See if local sub works t/op/localref.t See if local ${deref} works t/op/lock.t Tests for lock args & retval (no threads) t/op/loopctl.t See if next/last/redo work diff --git a/perly.act b/perly.act index 23215c840a14..30471d0cdba4 100644 --- a/perly.act +++ b/perly.act @@ -5,7 +5,7 @@ */ case 2: -#line 139 "perly.y" +#line 140 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -14,7 +14,7 @@ case 2: break; case 3: -#line 144 "perly.y" +#line 145 "perly.y" { newPROG(block_end((ps[-1].val.ival),(ps[0].val.opval))); PL_compiling.cop_seq = 0; @@ -24,7 +24,7 @@ case 2: break; case 4: -#line 150 "perly.y" +#line 151 "perly.y" { parser->expect = XTERM; (yyval.ival) = 0; @@ -33,7 +33,7 @@ case 2: break; case 5: -#line 155 "perly.y" +#line 156 "perly.y" { PL_eval_root = (ps[0].val.opval); (yyval.ival) = 0; @@ -42,7 +42,7 @@ case 2: break; case 6: -#line 160 "perly.y" +#line 161 "perly.y" { parser->expect = XBLOCK; (yyval.ival) = 0; @@ -51,7 +51,7 @@ case 2: break; case 7: -#line 165 "perly.y" +#line 166 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[0].val.opval); @@ -63,7 +63,7 @@ case 2: break; case 8: -#line 173 "perly.y" +#line 174 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -72,7 +72,7 @@ case 2: break; case 9: -#line 178 "perly.y" +#line 179 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[0].val.opval); @@ -84,7 +84,7 @@ case 2: break; case 10: -#line 186 "perly.y" +#line 187 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -93,7 +93,7 @@ case 2: break; case 11: -#line 191 "perly.y" +#line 192 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[0].val.opval); @@ -105,7 +105,7 @@ case 2: break; case 12: -#line 199 "perly.y" +#line 200 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -114,7 +114,7 @@ case 2: break; case 13: -#line 204 "perly.y" +#line 205 "perly.y" { PL_eval_root = (ps[0].val.opval); (yyval.ival) = 0; @@ -123,7 +123,7 @@ case 2: break; case 14: -#line 209 "perly.y" +#line 210 "perly.y" { parser->expect = XSTATE; (yyval.ival) = 0; @@ -132,7 +132,7 @@ case 2: break; case 15: -#line 214 "perly.y" +#line 215 "perly.y" { PL_eval_root = (ps[0].val.opval); (yyval.ival) = 0; @@ -141,7 +141,7 @@ case 2: break; case 16: -#line 222 "perly.y" +#line 223 "perly.y" { if (parser->copline > (line_t)(ps[-3].val.ival)) parser->copline = (line_t)(ps[-3].val.ival); (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval)); @@ -150,13 +150,13 @@ case 2: break; case 17: -#line 229 "perly.y" +#line 230 "perly.y" { (yyval.opval) = NULL; } break; case 18: -#line 234 "perly.y" +#line 235 "perly.y" { if (parser->copline > (line_t)(ps[-6].val.ival)) parser->copline = (line_t)(ps[-6].val.ival); (yyval.opval) = block_end((ps[-5].val.ival), (ps[-2].val.opval)); @@ -165,14 +165,14 @@ case 2: break; case 19: -#line 241 "perly.y" +#line 242 "perly.y" { (yyval.ival) = block_start(TRUE); parser->parsed_sub = 0; } break; case 20: -#line 246 "perly.y" +#line 247 "perly.y" { if (parser->copline > (line_t)(ps[-3].val.ival)) parser->copline = (line_t)(ps[-3].val.ival); (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval)); @@ -181,14 +181,14 @@ case 2: break; case 21: -#line 253 "perly.y" +#line 254 "perly.y" { (yyval.ival) = block_start(FALSE); parser->parsed_sub = 0; } break; case 23: -#line 261 "perly.y" +#line 262 "perly.y" { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval)); PL_pad_reset_pending = TRUE; if ((ps[-1].val.opval) && (ps[0].val.opval)) @@ -198,7 +198,7 @@ case 2: break; case 25: -#line 272 "perly.y" +#line 273 "perly.y" { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval)); PL_pad_reset_pending = TRUE; if ((ps[-1].val.opval) && (ps[0].val.opval)) @@ -208,7 +208,7 @@ case 2: break; case 26: -#line 281 "perly.y" +#line 282 "perly.y" { (yyval.opval) = (ps[0].val.opval) ? newSTATEOP(0, NULL, (ps[0].val.opval)) : NULL; } @@ -216,13 +216,13 @@ case 2: break; case 27: -#line 285 "perly.y" +#line 286 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 28: -#line 289 "perly.y" +#line 290 "perly.y" { SV *label = cSVOPx_sv((ps[-1].val.opval)); (yyval.opval) = newSTATEOP(SvFLAGS(label) & SVf_UTF8, @@ -233,7 +233,7 @@ case 2: break; case 29: -#line 296 "perly.y" +#line 297 "perly.y" { SV *label = cSVOPx_sv((ps[-1].val.opval)); (yyval.opval) = newSTATEOP(SvFLAGS(label) & SVf_UTF8, @@ -244,13 +244,13 @@ case 2: break; case 30: -#line 306 "perly.y" +#line 307 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 31: -#line 308 "perly.y" +#line 309 "perly.y" { CV *fmtcv = PL_compcv; newFORM((ps[-2].val.ival), (ps[-1].val.opval), (ps[0].val.opval)); @@ -264,7 +264,7 @@ case 2: break; case 32: -#line 320 "perly.y" +#line 321 "perly.y" { init_named_cv(PL_compcv, (ps[-1].val.opval)); parser->in_my = 0; @@ -274,7 +274,7 @@ case 2: break; case 33: -#line 326 "perly.y" +#line 327 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (ps[-5].val.opval)->op_type == OP_CONST @@ -289,7 +289,7 @@ case 2: break; case 34: -#line 341 "perly.y" +#line 342 "perly.y" { init_named_cv(PL_compcv, (ps[-1].val.opval)); parser->in_my = 0; @@ -299,7 +299,7 @@ case 2: break; case 35: -#line 347 "perly.y" +#line 348 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (ps[-4].val.opval)->op_type == OP_CONST @@ -314,7 +314,7 @@ case 2: break; case 36: -#line 358 "perly.y" +#line 359 "perly.y" { package((ps[-1].val.opval)); if ((ps[-2].val.opval)) @@ -325,13 +325,13 @@ case 2: break; case 37: -#line 365 "perly.y" +#line 366 "perly.y" { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ } break; case 38: -#line 367 "perly.y" +#line 368 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); utilize((ps[-6].val.ival), (ps[-5].val.ival), (ps[-3].val.opval), (ps[-2].val.opval), (ps[-1].val.opval)); @@ -342,7 +342,7 @@ case 2: break; case 39: -#line 374 "perly.y" +#line 375 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newCONDOP(0, (ps[-3].val.opval), op_scope((ps[-1].val.opval)), (ps[0].val.opval))); @@ -352,7 +352,7 @@ case 2: break; case 40: -#line 380 "perly.y" +#line 381 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newCONDOP(0, (ps[-3].val.opval), (ps[0].val.opval), op_scope((ps[-1].val.opval)))); @@ -362,7 +362,7 @@ case 2: break; case 41: -#line 386 "perly.y" +#line 387 "perly.y" { (yyval.opval) = block_end((ps[-3].val.ival), newGIVENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)), 0)); parser->copline = (line_t)(ps[-5].val.ival); @@ -371,19 +371,19 @@ case 2: break; case 42: -#line 391 "perly.y" +#line 392 "perly.y" { (yyval.opval) = block_end((ps[-3].val.ival), newWHENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)))); } break; case 43: -#line 393 "perly.y" +#line 394 "perly.y" { (yyval.opval) = newWHENOP(0, op_scope((ps[0].val.opval))); } break; case 44: -#line 395 "perly.y" +#line 396 "perly.y" { (yyval.opval) = block_end((ps[-5].val.ival), newWHILEOP(0, 1, NULL, @@ -394,7 +394,7 @@ case 2: break; case 45: -#line 402 "perly.y" +#line 403 "perly.y" { (yyval.opval) = block_end((ps[-5].val.ival), newWHILEOP(0, 1, NULL, @@ -405,19 +405,19 @@ case 2: break; case 46: -#line 409 "perly.y" +#line 410 "perly.y" { parser->expect = XTERM; } break; case 47: -#line 411 "perly.y" +#line 412 "perly.y" { parser->expect = XTERM; } break; case 48: -#line 414 "perly.y" +#line 415 "perly.y" { OP *initop = (ps[-9].val.opval); OP *forop = newWHILEOP(0, 1, NULL, @@ -436,7 +436,7 @@ case 2: break; case 49: -#line 429 "perly.y" +#line 430 "perly.y" { (yyval.opval) = block_end((ps[-6].val.ival), newFOROP(0, (ps[-5].val.opval), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); parser->copline = (line_t)(ps[-8].val.ival); @@ -445,7 +445,7 @@ case 2: break; case 50: -#line 434 "perly.y" +#line 435 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0, op_lvalue((ps[-6].val.opval), OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); @@ -455,13 +455,13 @@ case 2: break; case 51: -#line 440 "perly.y" +#line 441 "perly.y" { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } break; case 52: -#line 442 "perly.y" +#line 443 "perly.y" { (yyval.opval) = block_end( (ps[-7].val.ival), @@ -478,7 +478,7 @@ case 2: break; case 53: -#line 455 "perly.y" +#line 456 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newFOROP( 0, op_lvalue(newUNOP(OP_REFGEN, 0, @@ -490,7 +490,7 @@ case 2: break; case 54: -#line 463 "perly.y" +#line 464 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0, NULL, (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); @@ -500,19 +500,19 @@ case 2: break; case 55: -#line 469 "perly.y" +#line 470 "perly.y" { parser->in_my = 1; } break; case 56: -#line 471 "perly.y" +#line 472 "perly.y" { parser->in_my = 0; intro_my(); } break; case 57: -#line 473 "perly.y" +#line 474 "perly.y" { (yyval.opval) = newTRYCATCHOP(0, (ps[-8].val.opval), (ps[-3].val.opval), block_end((ps[-4].val.ival), op_scope((ps[0].val.opval)))); @@ -521,7 +521,7 @@ case 2: break; case 58: -#line 478 "perly.y" +#line 479 "perly.y" { /* a block is a loop that happens once */ (yyval.opval) = newWHILEOP(0, 1, NULL, @@ -531,7 +531,7 @@ case 2: break; case 59: -#line 484 "perly.y" +#line 485 "perly.y" { package((ps[-2].val.opval)); if ((ps[-3].val.opval)) { @@ -542,7 +542,7 @@ case 2: break; case 60: -#line 491 "perly.y" +#line 492 "perly.y" { /* a block is a loop that happens once */ (yyval.opval) = newWHILEOP(0, 1, NULL, @@ -554,7 +554,7 @@ case 2: break; case 61: -#line 499 "perly.y" +#line 500 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } @@ -562,7 +562,7 @@ case 2: break; case 62: -#line 503 "perly.y" +#line 504 "perly.y" { (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); @@ -571,7 +571,7 @@ case 2: break; case 63: -#line 508 "perly.y" +#line 509 "perly.y" { (yyval.opval) = NULL; parser->copline = NOLINE; @@ -580,7 +580,7 @@ case 2: break; case 64: -#line 516 "perly.y" +#line 517 "perly.y" { OP *list; if ((ps[0].val.opval)) { OP *term = (ps[0].val.opval); @@ -599,62 +599,62 @@ case 2: break; case 66: -#line 535 "perly.y" +#line 536 "perly.y" { (yyval.opval) = op_unscope((ps[-1].val.opval)); } break; case 68: -#line 543 "perly.y" +#line 544 "perly.y" { (yyval.opval) = NULL; } break; case 69: -#line 545 "perly.y" +#line 546 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 70: -#line 547 "perly.y" +#line 548 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[0].val.opval), (ps[-2].val.opval)); } break; case 71: -#line 549 "perly.y" +#line 550 "perly.y" { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[0].val.opval), (ps[-2].val.opval)); } break; case 72: -#line 551 "perly.y" +#line 552 "perly.y" { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[0].val.opval)), (ps[-2].val.opval)); } break; case 73: -#line 553 "perly.y" +#line 554 "perly.y" { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[0].val.opval), (ps[-2].val.opval)); } break; case 74: -#line 555 "perly.y" +#line 556 "perly.y" { (yyval.opval) = newFOROP(0, NULL, (ps[0].val.opval), (ps[-2].val.opval), NULL); parser->copline = (line_t)(ps[-1].val.ival); } break; case 75: -#line 558 "perly.y" +#line 559 "perly.y" { (yyval.opval) = newWHENOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); } break; case 77: -#line 565 "perly.y" +#line 566 "perly.y" { ((ps[0].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = op_scope((ps[0].val.opval)); @@ -663,7 +663,7 @@ case 2: break; case 78: -#line 570 "perly.y" +#line 571 "perly.y" { parser->copline = (line_t)(ps[-5].val.ival); (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[-3].val.opval)), @@ -674,13 +674,13 @@ case 2: break; case 80: -#line 582 "perly.y" +#line 583 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; case 81: -#line 587 "perly.y" +#line 588 "perly.y" { (yyval.ival) = (PL_min_intro_pending && PL_max_intro_pending >= PL_min_intro_pending); intro_my(); } @@ -688,7 +688,7 @@ case 2: break; case 84: -#line 599 "perly.y" +#line 600 "perly.y" { YYSTYPE tmplval; (void)scan_num("1", &tmplval); (yyval.opval) = tmplval.opval; } @@ -696,100 +696,100 @@ case 2: break; case 86: -#line 607 "perly.y" +#line 608 "perly.y" { (yyval.opval) = invert(scalar((ps[0].val.opval))); } break; case 87: -#line 612 "perly.y" +#line 613 "perly.y" { (yyval.opval) = (ps[0].val.opval); intro_my(); } break; case 88: -#line 616 "perly.y" +#line 617 "perly.y" { (yyval.opval) = (ps[0].val.opval); intro_my(); } break; case 89: -#line 619 "perly.y" +#line 620 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 91: -#line 624 "perly.y" +#line 625 "perly.y" { (yyval.ival) = start_subparse(FALSE, 0); SAVEFREESV(PL_compcv); } break; case 92: -#line 630 "perly.y" +#line 631 "perly.y" { (yyval.ival) = start_subparse(FALSE, CVf_ANON); SAVEFREESV(PL_compcv); } break; case 93: -#line 635 "perly.y" +#line 636 "perly.y" { (yyval.ival) = start_subparse(TRUE, 0); SAVEFREESV(PL_compcv); } break; case 99: -#line 654 "perly.y" +#line 655 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 100: -#line 656 "perly.y" +#line 657 "perly.y" { (yyval.opval) = NULL; } break; case 101: -#line 661 "perly.y" +#line 662 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 102: -#line 663 "perly.y" +#line 664 "perly.y" { (yyval.opval) = NULL; } break; case 103: -#line 674 "perly.y" +#line 675 "perly.y" { parser->in_my = 0; (yyval.opval) = NULL; } break; case 104: -#line 676 "perly.y" +#line 677 "perly.y" { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); } break; case 105: -#line 681 "perly.y" +#line 682 "perly.y" { (yyval.ival) = '@'; } break; case 106: -#line 683 "perly.y" +#line 684 "perly.y" { (yyval.ival) = '%'; } break; case 107: -#line 687 "perly.y" +#line 688 "perly.y" { I32 sigil = (ps[-2].val.ival); OP *var = (ps[-1].val.opval); @@ -809,19 +809,19 @@ case 2: break; case 109: -#line 708 "perly.y" +#line 709 "perly.y" { (yyval.opval) = newOP(OP_NULL, 0); } break; case 110: -#line 710 "perly.y" +#line 711 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 111: -#line 716 "perly.y" +#line 717 "perly.y" { OP *var = (ps[-1].val.opval); OP *defexpr = (ps[0].val.opval); @@ -886,25 +886,25 @@ case 2: break; case 112: -#line 781 "perly.y" +#line 782 "perly.y" { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } break; case 113: -#line 783 "perly.y" +#line 784 "perly.y" { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } break; case 114: -#line 789 "perly.y" +#line 790 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; case 115: -#line 791 "perly.y" +#line 792 "perly.y" { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-2].val.opval), (ps[0].val.opval)); } @@ -912,19 +912,19 @@ case 2: break; case 116: -#line 795 "perly.y" +#line 796 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 121: -#line 812 "perly.y" +#line 813 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; case 122: -#line 815 "perly.y" +#line 816 "perly.y" { ENTER; SAVEIV(parser->sig_elems); @@ -939,7 +939,7 @@ case 2: break; case 123: -#line 826 "perly.y" +#line 827 "perly.y" { OP *sigops = (ps[0].val.opval); struct op_argcheck_aux *aux; @@ -998,13 +998,13 @@ case 2: break; case 125: -#line 885 "perly.y" +#line 886 "perly.y" { (yyval.opval) = NULL; } break; case 126: -#line 891 "perly.y" +#line 892 "perly.y" { if (parser->copline > (line_t)(ps[-2].val.ival)) parser->copline = (line_t)(ps[-2].val.ival); @@ -1014,13 +1014,13 @@ case 2: break; case 128: -#line 903 "perly.y" +#line 904 "perly.y" { (yyval.opval) = NULL; } break; case 129: -#line 908 "perly.y" +#line 909 "perly.y" { if (parser->copline > (line_t)(ps[-2].val.ival)) parser->copline = (line_t)(ps[-2].val.ival); @@ -1031,25 +1031,25 @@ case 2: break; case 130: -#line 919 "perly.y" +#line 920 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 131: -#line 921 "perly.y" +#line 922 "perly.y" { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 133: -#line 927 "perly.y" +#line 928 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; case 134: -#line 929 "perly.y" +#line 930 "perly.y" { OP* term = (ps[0].val.opval); (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term); @@ -1058,7 +1058,7 @@ case 2: break; case 136: -#line 938 "perly.y" +#line 939 "perly.y" { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) ); } @@ -1066,7 +1066,7 @@ case 2: break; case 137: -#line 942 "perly.y" +#line 943 "perly.y" { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) ); } @@ -1074,7 +1074,7 @@ case 2: break; case 138: -#line 946 "perly.y" +#line 947 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)), @@ -1084,7 +1084,7 @@ case 2: break; case 139: -#line 952 "perly.y" +#line 953 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, scalar((ps[-2].val.opval)), newMETHOP(OP_METHOD, 0, (ps[0].val.opval)))); @@ -1093,7 +1093,7 @@ case 2: break; case 140: -#line 957 "perly.y" +#line 958 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), @@ -1103,7 +1103,7 @@ case 2: break; case 141: -#line 963 "perly.y" +#line 964 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)), @@ -1113,32 +1113,32 @@ case 2: break; case 142: -#line 969 "perly.y" +#line 970 "perly.y" { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; case 143: -#line 971 "perly.y" +#line 972 "perly.y" { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; case 144: -#line 973 "perly.y" +#line 974 "perly.y" { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; case 145: -#line 975 "perly.y" +#line 976 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, NULL, (ps[0].val.opval)); } break; case 146: -#line 978 "perly.y" +#line 979 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval))); @@ -1147,20 +1147,20 @@ case 2: break; case 149: -#line 993 "perly.y" +#line 994 "perly.y" { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); } break; case 150: -#line 995 "perly.y" +#line 996 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval))); } break; case 151: -#line 998 "perly.y" +#line 999 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[-4].val.opval)),OP_RV2AV), scalar((ps[-1].val.opval))); @@ -1169,7 +1169,7 @@ case 2: break; case 152: -#line 1003 "perly.y" +#line 1004 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[-3].val.opval)),OP_RV2AV), scalar((ps[-1].val.opval))); @@ -1178,14 +1178,14 @@ case 2: break; case 153: -#line 1008 "perly.y" +#line 1009 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval))); } break; case 154: -#line 1011 "perly.y" +#line 1012 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-5].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } @@ -1193,7 +1193,7 @@ case 2: break; case 155: -#line 1015 "perly.y" +#line 1016 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-4].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } @@ -1201,7 +1201,7 @@ case 2: break; case 156: -#line 1019 "perly.y" +#line 1020 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[-3].val.opval)))); if (parser->expect == XBLOCK) @@ -1211,7 +1211,7 @@ case 2: break; case 157: -#line 1025 "perly.y" +#line 1026 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), newCVREF(0, scalar((ps[-4].val.opval))))); @@ -1222,7 +1222,7 @@ case 2: break; case 158: -#line 1033 "perly.y" +#line 1034 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), newCVREF(0, scalar((ps[-3].val.opval))))); @@ -1233,7 +1233,7 @@ case 2: break; case 159: -#line 1040 "perly.y" +#line 1041 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[-2].val.opval)))); if (parser->expect == XBLOCK) @@ -1243,37 +1243,37 @@ case 2: break; case 160: -#line 1046 "perly.y" +#line 1047 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); } break; case 161: -#line 1048 "perly.y" +#line 1049 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); } break; case 162: -#line 1050 "perly.y" +#line 1051 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); } break; case 163: -#line 1055 "perly.y" +#line 1056 "perly.y" { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); } break; case 164: -#line 1057 "perly.y" +#line 1058 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 165: -#line 1059 "perly.y" +#line 1060 "perly.y" { if ((ps[-1].val.ival) != OP_REPEAT) scalar((ps[-2].val.opval)); (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval))); @@ -1282,183 +1282,183 @@ case 2: break; case 166: -#line 1064 "perly.y" +#line 1065 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 167: -#line 1066 "perly.y" +#line 1067 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 168: -#line 1068 "perly.y" +#line 1069 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 169: -#line 1070 "perly.y" +#line 1071 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 170: -#line 1072 "perly.y" +#line 1073 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 171: -#line 1074 "perly.y" +#line 1075 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 172: -#line 1076 "perly.y" +#line 1077 "perly.y" { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 173: -#line 1078 "perly.y" +#line 1079 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 174: -#line 1080 "perly.y" +#line 1081 "perly.y" { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 175: -#line 1082 "perly.y" +#line 1083 "perly.y" { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 176: -#line 1084 "perly.y" +#line 1085 "perly.y" { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 177: -#line 1088 "perly.y" +#line 1089 "perly.y" { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } break; case 178: -#line 1090 "perly.y" +#line 1091 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 179: -#line 1092 "perly.y" +#line 1093 "perly.y" { yyerror("syntax error"); YYERROR; } break; case 180: -#line 1094 "perly.y" +#line 1095 "perly.y" { yyerror("syntax error"); YYERROR; } break; case 181: -#line 1098 "perly.y" +#line 1099 "perly.y" { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 182: -#line 1100 "perly.y" +#line 1101 "perly.y" { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 183: -#line 1104 "perly.y" +#line 1105 "perly.y" { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } break; case 184: -#line 1106 "perly.y" +#line 1107 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 185: -#line 1108 "perly.y" +#line 1109 "perly.y" { yyerror("syntax error"); YYERROR; } break; case 186: -#line 1110 "perly.y" +#line 1111 "perly.y" { yyerror("syntax error"); YYERROR; } break; case 187: -#line 1114 "perly.y" +#line 1115 "perly.y" { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 188: -#line 1116 "perly.y" +#line 1117 "perly.y" { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 189: -#line 1121 "perly.y" +#line 1122 "perly.y" { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); } break; case 190: -#line 1123 "perly.y" +#line 1124 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 191: -#line 1126 "perly.y" +#line 1127 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; case 192: -#line 1128 "perly.y" +#line 1129 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); } break; case 193: -#line 1130 "perly.y" +#line 1131 "perly.y" { (yyval.opval) = newUNOP(OP_POSTINC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); } break; case 194: -#line 1133 "perly.y" +#line 1134 "perly.y" { (yyval.opval) = newUNOP(OP_POSTDEC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));} break; case 195: -#line 1136 "perly.y" +#line 1137 "perly.y" { (yyval.opval) = op_convert_list(OP_JOIN, 0, op_append_elem( OP_LIST, @@ -1473,14 +1473,14 @@ case 2: break; case 196: -#line 1147 "perly.y" +#line 1148 "perly.y" { (yyval.opval) = newUNOP(OP_PREINC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); } break; case 197: -#line 1150 "perly.y" +#line 1151 "perly.y" { (yyval.opval) = newUNOP(OP_PREDEC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); } @@ -1488,122 +1488,174 @@ case 2: case 198: #line 1158 "perly.y" - { (yyval.opval) = newANONLIST((ps[-1].val.opval)); } + { + SvREFCNT_inc_simple_void(PL_compcv); + (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); + } break; case 199: -#line 1160 "perly.y" - { (yyval.opval) = newANONHASH((ps[-2].val.opval)); } +#line 1166 "perly.y" + { + SvREFCNT_inc_simple_void(PL_compcv); + (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); + } break; case 200: -#line 1162 "perly.y" - { SvREFCNT_inc_simple_void(PL_compcv); - (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); } +#line 1175 "perly.y" + { (yyval.opval) = newANONLIST((ps[-1].val.opval)); } break; case 201: -#line 1165 "perly.y" - { SvREFCNT_inc_simple_void(PL_compcv); - (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); } +#line 1177 "perly.y" + { (yyval.opval) = newANONHASH((ps[-2].val.opval)); } break; case 202: -#line 1171 "perly.y" - { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));} +#line 1179 "perly.y" + { (yyval.opval) = (ps[0].val.opval); } break; case 203: -#line 1173 "perly.y" - { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));} +#line 1181 "perly.y" + { (yyval.opval) = (ps[0].val.opval) ; } break; - case 208: -#line 1181 "perly.y" - { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } + case 204: +#line 1186 "perly.y" + { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));} break; - case 209: -#line 1183 "perly.y" - { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } + case 205: +#line 1188 "perly.y" + { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));} break; case 210: -#line 1185 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } +#line 1196 "perly.y" + { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 211: -#line 1187 "perly.y" - { (yyval.opval) = localize((ps[0].val.opval),0); } +#line 1198 "perly.y" + { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } break; case 212: -#line 1189 "perly.y" - { (yyval.opval) = sawparens((ps[-1].val.opval)); } +#line 1200 "perly.y" + { (yyval.opval) = (ps[0].val.opval); } break; case 213: -#line 1191 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } +#line 1202 "perly.y" + { (yyval.opval) = localize((ps[0].val.opval),0); } break; case 214: -#line 1193 "perly.y" - { (yyval.opval) = sawparens(newNULLLIST()); } +#line 1204 "perly.y" + { + SvREFCNT_inc_simple_void(PL_compcv); + + /* "rewrite" as + * local *$subname = sub $anonymous_sub_declaration + */ + (yyval.opval) = newASSIGNOP ( + OPf_STACKED, + localize (newGVREF (0, scalar ((ps[-1].val.opval))), 0), + 0, + (ps[0].val.opval) + ); + } break; case 215: -#line 1195 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } +#line 1218 "perly.y" + { + SvREFCNT_inc_simple_void(PL_compcv); + + /* "rewrite" as + * local *$subname = sub $anonymous_sigsub_declaration + */ + (yyval.opval) = newASSIGNOP ( + OPf_STACKED, + localize (newGVREF (0, scalar ((ps[-1].val.opval))), 0), + 0, + (ps[0].val.opval) + ); + } break; case 216: -#line 1197 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } +#line 1232 "perly.y" + { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; case 217: -#line 1199 "perly.y" +#line 1234 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 218: -#line 1201 "perly.y" - { (yyval.opval) = (ps[0].val.opval); } +#line 1236 "perly.y" + { (yyval.opval) = sawparens(newNULLLIST()); } break; case 219: -#line 1203 "perly.y" - { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} +#line 1238 "perly.y" + { (yyval.opval) = (ps[0].val.opval); } break; case 220: -#line 1205 "perly.y" +#line 1240 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 221: -#line 1207 "perly.y" +#line 1242 "perly.y" + { (yyval.opval) = (ps[0].val.opval); } + + break; + + case 222: +#line 1244 "perly.y" + { (yyval.opval) = (ps[0].val.opval); } + + break; + + case 223: +#line 1246 "perly.y" + { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} + + break; + + case 224: +#line 1248 "perly.y" + { (yyval.opval) = (ps[0].val.opval); } + + break; + + case 225: +#line 1250 "perly.y" { (yyval.opval) = op_prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -1616,8 +1668,8 @@ case 2: break; - case 222: -#line 1217 "perly.y" + case 226: +#line 1260 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVASLICE, 0, @@ -1630,8 +1682,8 @@ case 2: break; - case 223: -#line 1227 "perly.y" + case 227: +#line 1270 "perly.y" { (yyval.opval) = op_prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -1644,8 +1696,8 @@ case 2: break; - case 224: -#line 1237 "perly.y" + case 228: +#line 1280 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVHSLICE, 0, @@ -1658,27 +1710,27 @@ case 2: break; - case 225: -#line 1247 "perly.y" + case 229: +#line 1290 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 226: -#line 1249 "perly.y" + case 230: +#line 1292 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); } break; - case 227: -#line 1251 "perly.y" + case 231: +#line 1294 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval))); } break; - case 228: -#line 1254 "perly.y" + case 232: +#line 1297 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval)))); @@ -1686,153 +1738,153 @@ case 2: break; - case 229: -#line 1259 "perly.y" + case 233: +#line 1302 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; - case 230: -#line 1263 "perly.y" + case 234: +#line 1306 "perly.y" { (yyval.opval) = newSVREF((ps[-3].val.opval)); } break; - case 231: -#line 1265 "perly.y" + case 235: +#line 1308 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 232: -#line 1267 "perly.y" + case 236: +#line 1310 "perly.y" { (yyval.opval) = newHVREF((ps[-3].val.opval)); } break; - case 233: -#line 1269 "perly.y" + case 237: +#line 1312 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } break; - case 234: -#line 1272 "perly.y" + case 238: +#line 1315 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } break; - case 235: -#line 1274 "perly.y" + case 239: +#line 1317 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); PL_hints |= HINT_BLOCK_SCOPE; } break; - case 236: -#line 1277 "perly.y" + case 240: +#line 1320 "perly.y" { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 237: -#line 1279 "perly.y" + case 241: +#line 1322 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; - case 238: -#line 1281 "perly.y" + case 242: +#line 1324 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 239: -#line 1283 "perly.y" + case 243: +#line 1326 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 240: -#line 1285 "perly.y" + case 244: +#line 1328 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 241: -#line 1287 "perly.y" + case 245: +#line 1330 "perly.y" { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } break; - case 242: -#line 1289 "perly.y" + case 246: +#line 1332 "perly.y" { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } break; - case 243: -#line 1291 "perly.y" + case 247: +#line 1334 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 244: -#line 1293 "perly.y" + case 248: +#line 1336 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; - case 245: -#line 1296 "perly.y" + case 249: +#line 1339 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 246: -#line 1298 "perly.y" + case 250: +#line 1341 "perly.y" { (yyval.opval) = newOP((ps[-2].val.ival), 0);} break; - case 247: -#line 1300 "perly.y" + case 251: +#line 1343 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 248: -#line 1302 "perly.y" + case 252: +#line 1345 "perly.y" { (yyval.opval) = (ps[-2].val.opval); } break; - case 249: -#line 1304 "perly.y" + case 253: +#line 1347 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 250: -#line 1306 "perly.y" + case 254: +#line 1349 "perly.y" { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT) ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0))) : newOP((ps[-2].val.ival), OPf_SPECIAL); } break; - case 251: -#line 1310 "perly.y" + case 255: +#line 1353 "perly.y" { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 252: -#line 1312 "perly.y" + case 256: +#line 1355 "perly.y" { if ( (ps[0].val.opval)->op_type != OP_TRANS && (ps[0].val.opval)->op_type != OP_TRANSR @@ -1846,162 +1898,162 @@ case 2: break; - case 253: -#line 1323 "perly.y" + case 257: +#line 1366 "perly.y" { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); } break; - case 257: -#line 1332 "perly.y" + case 261: +#line 1375 "perly.y" { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } break; - case 258: -#line 1334 "perly.y" + case 262: +#line 1377 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),1); } break; - case 259: -#line 1336 "perly.y" + case 263: +#line 1379 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); } break; - case 260: -#line 1338 "perly.y" + case 264: +#line 1381 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } break; - case 261: -#line 1343 "perly.y" + case 265: +#line 1386 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; - case 262: -#line 1345 "perly.y" + case 266: +#line 1388 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; - case 263: -#line 1348 "perly.y" + case 267: +#line 1391 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 264: -#line 1350 "perly.y" + case 268: +#line 1393 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 265: -#line 1352 "perly.y" + case 269: +#line 1395 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 271: -#line 1368 "perly.y" + case 275: +#line 1411 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 272: -#line 1374 "perly.y" + case 276: +#line 1417 "perly.y" { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } break; - case 280: -#line 1391 "perly.y" + case 284: +#line 1434 "perly.y" { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 281: -#line 1395 "perly.y" + case 285: +#line 1438 "perly.y" { (yyval.opval) = newSVREF((ps[0].val.opval)); } break; - case 282: -#line 1399 "perly.y" + case 286: +#line 1442 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } break; - case 283: -#line 1405 "perly.y" + case 287: +#line 1448 "perly.y" { (yyval.opval) = newHVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } break; - case 284: -#line 1411 "perly.y" + case 288: +#line 1454 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); } break; - case 285: -#line 1413 "perly.y" + case 289: +#line 1456 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 286: -#line 1417 "perly.y" + case 290: +#line 1460 "perly.y" { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); } break; - case 288: -#line 1422 "perly.y" + case 292: +#line 1465 "perly.y" { (yyval.opval) = newAVREF((ps[-2].val.opval)); } break; - case 290: -#line 1427 "perly.y" + case 294: +#line 1470 "perly.y" { (yyval.opval) = newHVREF((ps[-2].val.opval)); } break; - case 292: -#line 1432 "perly.y" + case 296: +#line 1475 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); } break; - case 293: -#line 1437 "perly.y" + case 297: +#line 1480 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; - case 294: -#line 1439 "perly.y" + case 298: +#line 1482 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; - case 295: -#line 1441 "perly.y" + case 299: +#line 1484 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; - case 296: -#line 1444 "perly.y" + case 300: +#line 1487 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; @@ -2012,6 +2064,6 @@ case 2: /* Generated from: - * fe008713888439604cbf82f172e7a2abd6c268a1fc97055ec5b3fff4d5e8ed3d perly.y + * a79c404183cf0d524710cc4f8e0c487685978f3f71a46fb8a4fd8c7d7ce137c3 perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.h b/perly.h index d87aca844ecd..5a4b71475835 100644 --- a/perly.h +++ b/perly.h @@ -218,6 +218,6 @@ int yyparse (void); /* Generated from: - * fe008713888439604cbf82f172e7a2abd6c268a1fc97055ec5b3fff4d5e8ed3d perly.y + * a79c404183cf0d524710cc4f8e0c487685978f3f71a46fb8a4fd8c7d7ce137c3 perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.tab b/perly.tab index 24d96e5b2032..21e4e74da138 100644 --- a/perly.tab +++ b/perly.tab @@ -6,16 +6,16 @@ #define YYFINAL 16 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3225 +#define YYLAST 3281 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 113 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 100 +#define YYNNTS 102 /* YYNRULES -- Number of rules. */ -#define YYNRULES 296 +#define YYNRULES 300 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 593 +#define YYNSTATES 601 #define YYUNDEFTOK 2 #define YYMAXUTOK 367 @@ -72,36 +72,37 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 139, 139, 138, 150, 149, 160, 159, 173, 172, - 186, 185, 199, 198, 209, 208, 221, 229, 233, 240, - 245, 252, 259, 260, 270, 271, 280, 284, 288, 295, - 305, 307, 320, 317, 341, 336, 357, 365, 364, 373, - 379, 385, 390, 392, 394, 401, 409, 411, 408, 428, - 433, 440, 439, 454, 462, 469, 471, 468, 477, 484, - 483, 498, 502, 507, 515, 533, 534, 538, 542, 544, - 546, 548, 550, 552, 554, 557, 563, 564, 569, 580, - 581, 586, 593, 594, 598, 602, 606, 611, 615, 619, - 620, 623, 629, 634, 640, 641, 646, 647, 652, 653, - 655, 660, 662, 673, 675, 680, 682, 686, 706, 707, - 709, 715, 780, 782, 788, 790, 794, 800, 801, 806, - 807, 811, 815, 815, 884, 885, 890, 902, 903, 907, - 918, 920, 922, 926, 928, 933, 937, 941, 945, 951, - 956, 962, 968, 970, 972, 975, 974, 985, 986, 990, - 994, 997, 1002, 1007, 1010, 1014, 1018, 1024, 1032, 1039, - 1045, 1047, 1049, 1054, 1056, 1058, 1063, 1065, 1067, 1069, - 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1087, 1089, 1091, - 1093, 1097, 1099, 1103, 1105, 1107, 1109, 1113, 1115, 1120, - 1122, 1125, 1127, 1129, 1132, 1135, 1146, 1149, 1157, 1159, - 1161, 1164, 1170, 1172, 1176, 1177, 1178, 1179, 1180, 1182, - 1184, 1186, 1188, 1190, 1192, 1194, 1196, 1198, 1200, 1202, - 1204, 1206, 1216, 1226, 1236, 1246, 1248, 1250, 1253, 1258, - 1262, 1264, 1266, 1268, 1271, 1273, 1276, 1278, 1280, 1282, - 1284, 1286, 1288, 1290, 1292, 1295, 1297, 1299, 1301, 1303, - 1305, 1309, 1312, 1311, 1324, 1325, 1326, 1331, 1333, 1335, - 1337, 1342, 1344, 1347, 1349, 1351, 1357, 1358, 1362, 1363, - 1367, 1368, 1373, 1377, 1378, 1379, 1382, 1383, 1386, 1387, - 1390, 1394, 1398, 1404, 1410, 1412, 1416, 1420, 1421, 1425, - 1426, 1430, 1431, 1436, 1438, 1440, 1443 + 0, 140, 140, 139, 151, 150, 161, 160, 174, 173, + 187, 186, 200, 199, 210, 209, 222, 230, 234, 241, + 246, 253, 260, 261, 271, 272, 281, 285, 289, 296, + 306, 308, 321, 318, 342, 337, 358, 366, 365, 374, + 380, 386, 391, 393, 395, 402, 410, 412, 409, 429, + 434, 441, 440, 455, 463, 470, 472, 469, 478, 485, + 484, 499, 503, 508, 516, 534, 535, 539, 543, 545, + 547, 549, 551, 553, 555, 558, 564, 565, 570, 581, + 582, 587, 594, 595, 599, 603, 607, 612, 616, 620, + 621, 624, 630, 635, 641, 642, 647, 648, 653, 654, + 656, 661, 663, 674, 676, 681, 683, 687, 707, 708, + 710, 716, 781, 783, 789, 791, 795, 801, 802, 807, + 808, 812, 816, 816, 885, 886, 891, 903, 904, 908, + 919, 921, 923, 927, 929, 934, 938, 942, 946, 952, + 957, 963, 969, 971, 973, 976, 975, 986, 987, 991, + 995, 998, 1003, 1008, 1011, 1015, 1019, 1025, 1033, 1040, + 1046, 1048, 1050, 1055, 1057, 1059, 1064, 1066, 1068, 1070, + 1072, 1074, 1076, 1078, 1080, 1082, 1084, 1088, 1090, 1092, + 1094, 1098, 1100, 1104, 1106, 1108, 1110, 1114, 1116, 1121, + 1123, 1126, 1128, 1130, 1133, 1136, 1147, 1150, 1157, 1165, + 1174, 1176, 1178, 1180, 1185, 1187, 1191, 1192, 1193, 1194, + 1195, 1197, 1199, 1201, 1203, 1217, 1231, 1233, 1235, 1237, + 1239, 1241, 1243, 1245, 1247, 1249, 1259, 1269, 1279, 1289, + 1291, 1293, 1296, 1301, 1305, 1307, 1309, 1311, 1314, 1316, + 1319, 1321, 1323, 1325, 1327, 1329, 1331, 1333, 1335, 1338, + 1340, 1342, 1344, 1346, 1348, 1352, 1355, 1354, 1367, 1368, + 1369, 1374, 1376, 1378, 1380, 1385, 1387, 1390, 1392, 1394, + 1400, 1401, 1405, 1406, 1410, 1411, 1416, 1420, 1421, 1422, + 1425, 1426, 1429, 1430, 1433, 1437, 1441, 1447, 1453, 1455, + 1459, 1463, 1464, 1468, 1469, 1473, 1474, 1479, 1481, 1483, + 1486 }; #endif @@ -142,10 +143,11 @@ static const char *const yytname[] = "subsignature", "subsigguts", "$@17", "optsubbody", "subbody", "optsigsubbody", "sigsubbody", "expr", "listexpr", "listop", "@18", "method", "subscripted", "termbinop", "termrelop", "relopchain", - "termeqop", "eqopchain", "termunop", "anonymous", "termdo", "term", - "@19", "myattrterm", "myterm", "optlistexpr", "optexpr", "optrepl", - "my_scalar", "my_var", "refgen_topic", "my_refgen", "amper", "scalar", - "ary", "hsh", "arylen", "star", "sliceme", "kvslice", "gelem", "indirob", YY_NULLPTR + "termeqop", "eqopchain", "termunop", "anonymous_sub_declaration", + "anonymous_sigsub_declaration", "anonymous", "termdo", "term", "@19", + "myattrterm", "myterm", "optlistexpr", "optexpr", "optrepl", "my_scalar", + "my_var", "refgen_topic", "my_refgen", "amper", "scalar", "ary", "hsh", + "arylen", "star", "sliceme", "kvslice", "gelem", "indirob", YY_NULLPTR }; #endif @@ -169,80 +171,81 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -493 +#define YYPACT_NINF -498 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-493))) + (!!((Yystate) == (-498))) -#define YYTABLE_NINF -292 +#define YYTABLE_NINF -296 #define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-292))) + (!!((Yytable_value) == (-296))) /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - 512, -493, -493, -493, -493, -493, -493, -493, 18, -493, - 2823, 13, 1516, 1419, -493, -493, -493, -493, 380, 2823, - 380, 2823, 380, 2823, 380, 380, -493, 380, 380, -493, - -493, 31, -62, -493, 2823, -493, -493, -493, -493, 2823, - -43, -36, -63, 2071, 1974, 380, 2071, 2823, 25, 2823, - 22, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2165, -493, - 65, 70, -493, 1, -493, 107, 16, 119, 6, -493, - -493, -493, 3027, -493, -493, -15, 159, 237, 295, -493, - 133, 302, 323, 160, -493, -493, -493, -493, -493, -493, - 25, 25, 154, -493, 72, 85, 88, 121, 4, 124, - 140, 13, 181, 235, 211, -493, 238, 403, 1419, -493, - -493, -493, -493, 618, -493, 285, 715, -493, -493, -493, - -493, -493, 255, -493, 479, -493, 479, -493, -493, 2823, - 167, 192, 2823, 171, 472, 13, 274, 230, 3027, 215, - 2259, 2823, 1974, -493, 472, 1872, -493, 70, -493, 1772, - 2823, -493, -493, 472, 311, -493, -493, 2823, 472, 2917, - 2353, 260, -493, -493, -493, 472, 70, 479, 479, 479, - 394, 394, 330, 80, 2823, 2823, 2823, 2823, 2823, 2447, - -493, -493, 2823, -493, -493, 2823, 2823, 2823, 2823, 2823, - 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, 2823, - 2823, 2823, 2823, -493, -493, -493, 47, 2541, 2823, 2823, - 2823, 2823, 2823, 2823, 2823, -493, 326, -493, -493, 329, - -493, -493, -493, -493, -493, 257, 178, -493, -493, 246, - -493, -493, -493, -493, 307, -493, 13, -493, -493, -493, - 2823, 2823, 2823, 2823, 2823, 2823, -493, -493, -493, 336, - -493, -493, -493, 336, -493, -493, -493, 355, -493, -493, - -493, 2823, 2823, 5, -493, -493, -493, -493, 230, 342, - -493, -493, -493, -493, 94, 299, 265, 2823, 70, 376, - -493, 2635, 479, 260, 64, 73, 79, -493, 112, 360, - -493, 2823, 377, 309, -493, 3027, 71, 19, -493, 151, - 472, 231, 3115, 389, 305, 3027, 2983, 333, 333, 736, - 602, 440, 231, 231, 472, 472, 212, 479, 479, 367, - 2823, 2823, 135, 370, 375, 382, -493, 383, 2729, 298, - -493, -493, 155, 74, 27, 99, 52, 102, 54, 106, - 837, -493, -493, 398, -493, -493, 111, 395, 2823, 2823, - 2823, 2823, -493, 404, -493, -493, 310, -493, -493, -493, - -493, 1610, 460, -493, 2823, 2823, -493, 327, -493, -493, - 65, -493, 65, -493, -493, -493, -493, -493, 349, 349, - 285, 335, 83, -493, 2823, -493, -493, 332, -493, -493, - -493, -493, 172, -493, 32, 201, -493, -493, -493, 56, - 2823, 435, -493, -493, 2823, -493, 147, 59, -493, -493, - -493, -493, -493, -493, 207, 2823, -493, 443, -493, 444, - -493, 448, -493, 450, -493, -493, -493, 274, 230, -493, - -493, 437, 354, 65, 356, 362, 65, 364, 366, -493, - -493, -493, -493, -493, 371, 461, 248, -493, 2823, 374, - 379, 934, -493, 2823, -493, -493, -493, -493, -493, 2823, - -493, 413, -493, 494, -493, -493, -493, 496, -493, -493, - 41, -493, 69, -493, 3071, 500, -493, -493, 402, -493, - -493, -493, -493, 501, 230, 505, -493, 2823, -493, -493, - 181, 181, 2823, 2823, 181, -493, 410, 417, 181, 181, - -493, -493, 3027, 65, -493, -493, 418, -493, -493, -493, - -493, 453, 521, -493, -493, -493, -493, 523, 181, 181, - 175, 175, 441, 445, 211, 2823, 2823, 181, -493, -493, - 404, 1031, -493, 1128, -493, -493, -493, -493, 1225, -493, - 211, 211, 181, 434, -493, -493, -493, 181, 181, -493, - 529, 446, 211, -493, -493, -493, -493, -7, -493, -493, - -493, -493, 2823, 211, 211, -493, 181, -493, 451, 538, - 483, -493, 456, -493, -493, -493, 211, 181, -493, -493, - -493, -493, 181, 1704, -493, -493, 1322, 175, 457, -493, - -493, 181, -493 + 487, -498, -498, -498, -498, -498, -498, -498, 44, -498, + 2879, 27, 1478, 1381, -498, -498, -498, -498, 368, 2879, + 368, 2879, 368, 2879, 368, 368, -498, 368, 368, -498, + -498, 37, -55, -498, 2879, -498, -498, -498, -498, 2879, + -15, -3, 62, 2127, 1936, 368, 2127, 2879, 53, 2030, + 61, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2221, -498, + 121, 115, -498, 2, -498, 169, -26, 181, -18, -498, + -498, -498, 3083, -498, -498, 47, 11, 283, 286, -498, + 134, 297, 306, 152, -498, -498, -498, -498, -498, -498, + 53, 53, 153, -498, 89, 119, 122, 140, -4, 148, + 157, 27, 227, 242, 230, -498, 265, 481, 1381, -498, + -498, -498, -498, 586, -498, 404, 702, -498, -498, -498, + -498, -498, 276, -498, 397, -498, 397, -498, -498, 2879, + 210, 233, 2879, 213, 308, 27, 310, -498, 270, -498, + 3083, 240, 2315, 2879, 1936, -498, 308, 1834, -498, 115, + -498, 1734, 2879, -498, -498, 308, 330, -498, -498, 2879, + 53, 53, 308, 2973, 2409, 277, -498, -498, -498, 308, + 115, 397, 397, 397, 288, 288, 345, -44, 2879, 2879, + 2879, 2879, 2879, 2503, -498, -498, 2879, -498, -498, 2879, + 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, 2879, + 2879, 2879, 2879, 2879, 2879, 2879, 2879, -498, -498, -498, + 48, 2597, 2879, 2879, 2879, 2879, 2879, 2879, 2879, -498, + 335, -498, -498, 339, -498, -498, -498, -498, -498, 279, + 182, -498, -498, 256, -498, -498, -498, -498, 314, -498, + 27, -498, -498, -498, 2879, 2879, 2879, 2879, 2879, 2879, + -498, -498, -498, 355, -498, -498, -498, 355, -498, -498, + -498, 376, -498, -498, -498, 2879, 2879, 12, -498, -498, + -498, -498, 270, 381, -498, -498, -498, -498, 41, 333, + 311, 2879, 115, 407, -498, -498, -498, 2691, 397, 277, + 109, 110, 130, -498, 84, 392, -498, 2879, 410, 346, + -498, 3083, 23, 19, -498, 106, 308, 340, 3171, 234, + 164, 3083, 3039, 1767, 1767, 1921, 570, 448, 340, 340, + 308, 308, 485, 397, 397, 408, 2879, 2879, 324, 409, + 415, 418, -498, 420, 2785, 317, -498, -498, 125, 52, + 28, 156, 32, 158, 55, 208, 799, -498, -498, 414, + -498, -498, 177, 431, 2879, 2879, 2879, 2879, -498, 430, + -498, -498, 348, -498, -498, -498, -498, 1572, 435, -498, + 2879, 2879, -498, 367, -498, -498, 121, -498, 121, -498, + -498, -498, -498, -498, 394, 394, 404, 370, 168, -498, + 2879, -498, -498, 371, -498, -498, -498, -498, 175, -498, + -498, -498, 16, 201, -498, -498, -498, 72, 2879, 472, + -498, -498, 2879, -498, 221, 74, -498, -498, -498, -498, + -498, -498, 205, 2879, -498, 474, -498, 475, -498, 476, + -498, 486, -498, -498, -498, 310, 270, -498, -498, 489, + 391, 121, 402, 412, 121, 413, 424, -498, -498, -498, + -498, -498, 416, 498, 253, -498, 2879, 429, 437, 896, + -498, 2879, -498, -498, -498, -498, -498, 2879, -498, 440, + -498, 514, -498, -498, -498, 515, -498, -498, 36, -498, + 78, -498, 3127, 537, -498, -498, 449, -498, -498, -498, + -498, 529, 270, 541, -498, 2879, -498, -498, 227, 227, + 2879, 2879, 227, -498, 447, 458, 227, 227, -498, -498, + 3083, 121, -498, -498, 459, -498, -498, -498, -498, 493, + 551, -498, -498, -498, -498, 553, 227, 227, 294, 294, + 465, 466, 230, 2879, 2879, 227, -498, -498, 430, 993, + -498, 1090, -498, -498, -498, -498, 1187, -498, 230, 230, + 227, 467, -498, -498, -498, 227, 227, -498, 556, 469, + 230, -498, -498, -498, -498, 171, -498, -498, -498, -498, + 2879, 230, 230, -498, 227, -498, 471, 566, 510, -498, + 479, -498, -498, -498, 230, 227, -498, -498, -498, -498, + 227, 1666, -498, -498, 1284, 294, 480, -498, -498, 227, + -498 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -252,94 +255,97 @@ static const yytype_uint16 yydefact[] = { 0, 2, 4, 6, 8, 10, 12, 14, 0, 19, 17, 0, 0, 0, 17, 122, 1, 17, 0, 17, - 0, 0, 0, 0, 0, 0, 254, 0, 0, 225, - 252, 213, 247, 249, 243, 92, 256, 92, 92, 235, - 245, 0, 0, 238, 17, 0, 0, 17, 0, 0, - 0, 241, 0, 0, 0, 0, 0, 0, 0, 268, - 269, 132, 255, 220, 204, 168, 177, 169, 183, 205, - 206, 207, 135, 210, 5, 226, 215, 218, 217, 219, - 216, 0, 0, 0, 19, 7, 68, 63, 30, 93, + 0, 0, 0, 0, 0, 0, 258, 0, 0, 229, + 256, 217, 251, 253, 247, 92, 260, 92, 92, 239, + 249, 0, 0, 242, 17, 0, 0, 17, 0, 0, + 0, 245, 0, 0, 0, 0, 0, 0, 0, 272, + 273, 132, 259, 224, 206, 168, 177, 169, 183, 207, + 208, 209, 135, 212, 5, 230, 219, 222, 221, 223, + 220, 0, 0, 0, 19, 7, 68, 63, 30, 93, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 9, 0, 69, 0, 11, - 27, 26, 22, 0, 15, 17, 0, 293, 296, 295, - 294, 280, 0, 281, 189, 283, 190, 282, 286, 17, - 0, 0, 0, 0, 244, 0, 17, 17, 236, 0, - 0, 17, 17, 239, 240, 293, 266, 267, 142, 294, - 0, 284, 203, 202, 0, 94, 95, 17, 211, 0, - 0, 258, 263, 265, 264, 242, 237, 191, 192, 209, - 196, 197, 214, 0, 0, 0, 133, 0, 0, 0, - 180, 179, 0, 186, 185, 0, 0, 0, 0, 0, + 27, 26, 22, 0, 15, 17, 0, 297, 300, 299, + 298, 284, 0, 285, 189, 287, 190, 286, 290, 17, + 0, 0, 0, 0, 248, 0, 17, 202, 17, 203, + 240, 0, 0, 17, 17, 243, 244, 297, 270, 271, + 142, 298, 0, 288, 205, 204, 0, 94, 95, 17, + 0, 0, 213, 0, 0, 262, 267, 269, 268, 246, + 241, 191, 192, 211, 196, 197, 218, 0, 0, 0, + 133, 0, 0, 0, 180, 179, 0, 186, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 193, 194, 195, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 17, 91, 91, 0, - 37, 19, 19, 19, 19, 19, 0, 19, 19, 0, - 19, 19, 43, 21, 0, 62, 0, 79, 58, 61, - 0, 0, 0, 0, 0, 0, 29, 28, 23, 103, - 106, 105, 117, 103, 113, 112, 116, 118, 123, 198, - 140, 17, 0, 0, 248, 145, 97, 96, 17, 100, - 98, 19, 246, 250, 0, 0, 0, 0, 136, 0, - 229, 0, 260, 0, 215, 218, 217, 262, 0, 102, - 257, 0, 212, 131, 130, 134, 0, 0, 159, 0, - 182, 188, 172, 165, 166, 163, 0, 174, 175, 173, - 171, 170, 187, 184, 181, 178, 167, 176, 164, 0, - 0, 0, 0, 290, 288, 292, 147, 0, 0, 139, - 148, 227, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 89, 90, 0, 32, 34, 0, 0, 84, 0, - 0, 0, 278, 0, 279, 276, 0, 277, 273, 274, - 275, 0, 0, 19, 0, 0, 17, 0, 80, 72, - 67, 73, 86, 70, 71, 74, 75, 104, 17, 17, - 114, 0, 17, 161, 17, 19, 99, 17, 201, 251, - 144, 143, 0, 199, 214, 0, 259, 261, 101, 0, - 0, 0, 152, 158, 0, 233, 0, 0, 230, 232, - 231, 234, 285, 156, 0, 17, 228, 0, 150, 0, - 221, 0, 222, 0, 16, 19, 31, 17, 17, 19, - 36, 0, 0, 85, 0, 0, 87, 0, 0, 272, - 19, 82, 83, 88, 0, 0, 69, 51, 0, 0, - 0, 0, 55, 109, 108, 111, 107, 115, 141, 0, - 270, 0, 146, 0, 200, 122, 119, 0, 120, 137, - 212, 162, 0, 155, 208, 0, 151, 157, 0, 153, - 223, 224, 149, 0, 17, 19, 59, 17, 81, 81, - 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, - 20, 19, 110, 271, 253, 17, 0, 17, 160, 154, - 138, 0, 19, 128, 35, 127, 17, 0, 0, 0, - 17, 17, 0, 0, 17, 84, 0, 0, 41, 42, - 0, 0, 121, 0, 17, 125, 33, 124, 0, 38, - 17, 17, 0, 0, 76, 39, 40, 0, 0, 54, - 0, 0, 17, 56, 126, 129, 24, 0, 60, 44, - 45, 77, 0, 17, 17, 47, 0, 50, 0, 0, - 17, 25, 0, 49, 53, 81, 17, 0, 18, 17, - 65, 64, 0, 0, 52, 57, 0, 17, 0, 66, - 78, 0, 48 + 0, 0, 0, 0, 0, 0, 0, 193, 194, 195, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, + 17, 91, 91, 0, 37, 19, 19, 19, 19, 19, + 0, 19, 19, 0, 19, 19, 43, 21, 0, 62, + 0, 79, 58, 61, 0, 0, 0, 0, 0, 0, + 29, 28, 23, 103, 106, 105, 117, 103, 113, 112, + 116, 118, 123, 200, 140, 17, 0, 0, 252, 145, + 97, 96, 17, 100, 98, 19, 250, 254, 0, 0, + 0, 0, 136, 0, 233, 92, 92, 0, 264, 0, + 219, 222, 221, 266, 0, 102, 261, 0, 216, 131, + 130, 134, 0, 0, 159, 0, 182, 188, 172, 165, + 166, 163, 0, 174, 175, 173, 171, 170, 187, 184, + 181, 178, 167, 176, 164, 0, 0, 0, 0, 294, + 292, 296, 147, 0, 0, 139, 148, 231, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 89, 90, 0, + 32, 34, 0, 0, 84, 0, 0, 0, 282, 0, + 283, 280, 0, 281, 277, 278, 279, 0, 0, 19, + 0, 0, 17, 0, 80, 72, 67, 73, 86, 70, + 71, 74, 75, 104, 17, 17, 114, 0, 17, 161, + 17, 19, 99, 17, 199, 255, 144, 143, 0, 201, + 214, 215, 218, 0, 263, 265, 101, 0, 0, 0, + 152, 158, 0, 237, 0, 0, 234, 236, 235, 238, + 289, 156, 0, 17, 232, 0, 150, 0, 225, 0, + 226, 0, 16, 19, 31, 17, 17, 19, 36, 0, + 0, 85, 0, 0, 87, 0, 0, 276, 19, 82, + 83, 88, 0, 0, 69, 51, 0, 0, 0, 0, + 55, 109, 108, 111, 107, 115, 141, 0, 274, 0, + 146, 0, 198, 122, 119, 0, 120, 137, 216, 162, + 0, 155, 210, 0, 151, 157, 0, 153, 227, 228, + 149, 0, 17, 19, 59, 17, 81, 81, 0, 0, + 0, 0, 0, 46, 0, 0, 0, 0, 20, 19, + 110, 275, 257, 17, 0, 17, 160, 154, 138, 0, + 19, 128, 35, 127, 17, 0, 0, 0, 17, 17, + 0, 0, 17, 84, 0, 0, 41, 42, 0, 0, + 121, 0, 17, 125, 33, 124, 0, 38, 17, 17, + 0, 0, 76, 39, 40, 0, 0, 54, 0, 0, + 17, 56, 126, 129, 24, 0, 60, 44, 45, 77, + 0, 17, 17, 47, 0, 50, 0, 0, 17, 25, + 0, 49, 53, 81, 17, 0, 18, 17, 65, 64, + 0, 0, 52, 57, 0, 17, 0, 66, 78, 0, + 48 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -493, -493, -493, -493, -493, -493, -493, -493, -493, 243, - -10, -493, -6, 2477, -493, -16, -493, 551, 464, -4, - -493, -493, -493, -493, -493, -493, -493, -493, -493, -493, - -493, 378, -355, -492, -177, -476, -493, 44, 226, -325, - -5, -493, 75, 308, -493, 258, 157, -252, 313, 337, - -493, -493, 206, -493, 213, -493, -493, -493, -493, 127, - -493, -493, 82, -493, 113, 33, -42, -493, -493, -493, - -493, -493, -493, -493, -493, -493, -493, -493, -493, 415, - -493, -493, 465, -125, -12, -493, -493, 263, -493, -493, - 373, 3, -45, -39, -493, -493, -493, -493, -493, 37 + -498, -498, -498, -498, -498, -498, -498, -498, -498, 126, + -10, -498, -6, 2525, -498, -16, -498, 585, 492, -8, + -498, -498, -498, -498, -498, -498, -498, -498, -498, -498, + -498, 263, -356, -497, -179, -479, -498, 68, 249, -316, + 18, -498, 180, -30, -498, -71, 202, -255, 328, 388, + -498, -498, 262, -498, 268, -498, -498, -498, -498, 197, + -498, -498, 135, -498, 179, 33, -42, -498, -498, -498, + -498, -498, -498, -498, -498, -498, -498, 390, 387, -498, + -498, 272, -498, -498, 513, -123, -12, -498, -498, 313, + -498, -498, 452, 3, -36, -34, -498, -498, -498, -498, + -498, 38 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 8, 9, 10, 11, 12, 13, 14, 15, 104, - 112, 426, 387, 234, 366, 113, 557, 248, 110, 111, - 427, 428, 347, 525, 575, 496, 501, 568, 516, 571, - 581, 369, 106, 545, 238, 518, 443, 432, 371, 435, - 445, 343, 220, 135, 216, 157, 268, 271, 290, 378, - 253, 254, 455, 255, 256, 257, 258, 467, 468, 114, - 115, 536, 464, 514, 388, 107, 61, 62, 384, 329, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 131, 73, 161, 148, 74, 461, 438, 355, 356, 228, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 123 + 112, 434, 393, 238, 372, 113, 565, 252, 110, 111, + 435, 436, 353, 533, 583, 504, 509, 576, 524, 579, + 589, 375, 106, 553, 242, 526, 451, 440, 377, 443, + 453, 349, 224, 136, 220, 159, 272, 275, 296, 384, + 257, 258, 463, 259, 260, 261, 262, 475, 476, 114, + 115, 544, 472, 522, 394, 107, 61, 62, 390, 335, + 63, 64, 65, 66, 67, 68, 69, 137, 139, 70, + 71, 72, 131, 73, 165, 150, 74, 469, 446, 361, + 362, 232, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 123 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -347,93 +353,128 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 59, 116, 147, 17, 260, 163, 442, 122, 105, 59, - 166, 164, 177, 519, 178, 569, 385, 141, 16, 383, - 20, 120, 570, 120, 84, 120, 437, 120, 120, 546, - 120, 120, 280, 402, 146, 154, 444, 59, 20, 449, - 450, 418, 22, 60, 132, 291, 24, 149, 120, 142, - 133, 155, 60, 162, 400, 121, 156, 319, 320, 125, - 321, 127, 128, 322, 129, 130, 420, 323, 422, 139, - 471, 324, 325, 476, 326, 208, 140, 209, 215, 225, - 60, 150, 151, 508, -287, 176, -287, 147, 174, 175, - -289, 173, -289, 401, 237, 590, 417, 207, 176, 583, - 185, 229, 174, 175, 247, 252, 459, 226, 278, -262, - 174, 175, 182, 179, 285, 147, 227, 327, -261, 146, - 286, 419, 429, 497, 421, 159, 267, 270, 423, 275, - 276, 59, 59, 430, 160, 174, 175, 174, 175, 174, - 175, -263, 174, 175, -291, 149, 84, 146, 174, 175, - -265, 20, 174, 175, 174, 175, -264, 174, 175, 328, - 408, 117, 284, 174, 175, 263, 118, 522, 523, 475, - 208, 214, 209, 274, 60, 60, 485, 174, 175, 277, - 219, 359, 174, 175, 221, 174, 175, 360, 18, 174, - 175, 292, 233, 288, 20, 174, 175, 222, 22, 340, - 223, 551, 24, 180, 181, 389, 342, 293, 294, 330, - 296, 297, 299, 183, 184, 348, 349, 350, 351, 353, - 382, 361, 362, 397, 364, 365, 542, 543, 442, 358, - 174, 175, 512, 224, 174, 175, 230, 572, 174, 175, - 332, 333, 334, 335, 336, 337, 338, 339, -287, 381, - -287, 59, 231, 354, 85, 174, 175, 235, 270, 462, - 239, 119, 403, 119, 236, 119, 416, 119, 119, 259, - 119, 119, 262, 370, 372, 370, 370, 370, 370, 261, - 187, 188, 264, 469, 174, 175, 143, 119, 119, 152, - 174, 175, 344, 345, 60, 240, 241, 242, 243, 187, - 188, 249, 244, 266, 245, 250, -289, 269, -289, 251, - 392, 201, 470, 210, 395, 211, 202, 359, 477, 203, - 204, 205, 206, 360, 399, 120, 272, 198, 199, 200, - 201, 174, 175, 279, 212, 202, 213, 289, 203, 204, - 205, 206, 147, 291, 232, 136, 137, 549, 217, 218, - 451, 441, 341, 406, 407, 346, 439, 448, 363, -87, - 352, 414, 517, 559, 560, 358, 367, 377, 454, 454, - 380, 386, 460, 187, 146, 567, 391, 466, 265, 463, - 390, 433, 372, 436, 436, 119, 573, 574, 393, 398, - 400, 84, 405, 175, 446, 409, 20, 436, 436, 584, - 410, 187, 188, 478, 201, 59, 117, 411, 412, 202, - 415, 118, 203, 204, 205, 206, 425, 267, 270, 483, - 20, 431, 440, 486, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 472, 493, 453, 124, 202, 126, 452, - 203, 204, 205, 206, 465, 147, 458, 473, 60, 134, - 240, 241, 242, 243, 138, 479, 480, 244, 144, 245, - 481, 153, 482, 487, 158, 488, 165, 489, 167, 168, - 169, 170, 171, 490, 270, 491, 20, 146, 492, 368, - 22, 436, 494, 495, 24, 498, 174, 175, 201, 531, - 499, 533, 503, 202, 504, 530, 203, 204, 205, 206, - 538, -292, -292, -292, 206, 505, 463, 507, 187, 188, - 544, 544, 509, 510, 237, 1, 2, 3, 4, 5, - 6, 7, 526, 511, 556, 436, 436, 513, 527, 532, - 237, 237, 534, 553, 196, 197, 198, 199, 200, 201, - 187, 188, 237, 535, 202, 539, 562, 203, 204, 205, - 206, 565, 547, 237, 237, 578, 548, 566, 433, 436, - 580, 579, 577, 586, 109, 119, 237, 582, 591, 550, - 200, 201, 246, 441, 282, 434, 202, 544, 588, 203, - 204, 205, 206, 202, 484, 456, 203, 204, 205, 206, - 379, 295, 506, 457, 537, 436, 396, 300, 515, 357, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, -13, 86, - 373, 374, 375, 376, 283, 447, 0, 0, 18, 84, - 0, 19, 0, 0, 20, 0, 0, 21, 22, 23, - 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, - 31, 32, 33, 34, 35, 36, 88, 108, 89, 90, - 91, 37, 38, 92, 93, 94, 95, 96, 97, 0, - 187, 188, 98, 99, 100, 101, 102, 0, 39, 0, - 103, 40, 41, 42, 43, 44, 0, 0, 45, 46, - 47, 48, 49, 50, 51, 195, 196, 197, 198, 199, - 200, 201, 0, 52, 0, 0, 202, 0, 0, 203, - 204, 205, 206, 0, 0, -3, 86, 0, 53, 54, - 0, 55, 0, 56, 57, 18, 84, 0, 19, 0, - 58, 20, 0, 0, 21, 22, 23, 87, 0, 24, - 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, - 34, 35, 36, 88, 108, 89, 90, 91, 37, 38, - 92, 93, 94, 95, 96, 97, 0, 0, 0, 98, - 99, 100, 101, 102, 0, 39, 0, 103, 40, 41, - 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, - 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 0, 0, 0, 187, 188, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 54, 0, 55, 474, - 56, 57, 0, 0, 0, 0, 0, 58, 194, 195, - 196, 197, 198, 199, 200, 201, 0, 0, 86, 0, - 202, 0, 0, 203, 204, 205, 206, 18, 84, 424, - 19, 0, 0, 20, 0, 0, 21, 22, 23, 87, - 0, 24, 25, 26, 27, 28, 29, 30, 502, 31, + 59, 116, 149, 17, 105, 135, 264, 122, 138, 59, + 170, 450, 20, 181, 167, 182, 168, 391, 527, 221, + 222, 120, 212, 120, 213, 120, 389, 120, 120, 297, + 120, 120, 554, 410, 148, 156, 284, 59, 84, 178, + 179, 445, 426, 60, 16, 409, 428, 151, 120, 408, + 132, 452, 60, 166, 457, 458, 121, 133, 325, 326, + 125, 327, 127, 128, 328, 129, 130, 298, 329, 430, + 186, 229, 330, 331, 425, 332, 189, 20, 219, 157, + 60, 22, 152, 153, 158, 24, 479, 149, 484, 285, + 286, 177, 516, -266, 241, 178, 179, 141, 598, 230, + 251, 233, 178, 179, 591, 256, 178, 179, 231, 142, + 282, 178, 179, -265, 183, 178, 179, 149, 333, 148, + 212, -291, 213, -291, 178, 179, 271, 291, 274, 292, + 180, 279, 280, 59, 59, 178, 179, 85, 178, 179, + 505, -293, 143, -293, 119, -295, 119, 151, 119, 148, + 119, 119, 395, 119, 119, 178, 179, 178, 179, 211, + 334, 178, 179, 218, 163, 267, 290, 178, 179, 145, + 119, 119, 154, 164, 144, 278, 60, 60, 427, 223, + 429, 493, 281, 180, 530, 531, -267, -269, 437, 178, + 179, 467, 18, 577, 365, 405, 366, 294, 20, 438, + 578, 225, 22, 346, 178, 179, 24, -268, 178, 179, + 348, 299, 300, 336, 302, 303, 305, 411, 559, 354, + 355, 356, 357, 359, 388, 367, 368, 236, 370, 371, + 431, 226, 191, 364, 227, 450, 424, 520, 237, 178, + 179, 178, 179, 483, 338, 339, 340, 341, 342, 343, + 344, 345, 228, 387, 580, 59, 138, 360, 178, 179, + 234, 269, 274, 205, 239, 184, 185, 470, 206, 235, + 119, 207, 208, 209, 210, 187, 188, 376, 378, 376, + 376, 376, 376, 240, 178, 179, 477, 243, 178, 179, + 263, 178, 179, 124, -291, 126, -291, -293, 60, -293, + 244, 245, 246, 247, 178, 179, 134, 248, 214, 249, + 215, 140, 478, 266, 398, 146, 485, 216, 155, 217, + 403, 162, 265, 169, 268, 171, 172, 173, 174, 175, + 407, 120, 365, 205, 366, 84, 178, 179, 206, 270, + 20, 207, 208, 209, 210, 550, 551, 273, 149, 416, + 117, 276, 283, 557, 295, 118, 459, 449, 297, 414, + 415, 347, 447, 456, -87, 352, 374, 422, 369, 567, + 568, 364, 525, 373, 462, 462, 191, 192, 468, 84, + 148, 575, 358, 474, 20, 471, 383, 441, 378, 444, + 444, 386, 581, 582, 117, -296, -296, -296, 210, 118, + 454, 350, 351, 444, 444, 592, 204, 205, 191, 192, + 392, 486, 206, 59, 396, 207, 208, 209, 210, 399, + 253, 406, 397, 408, 254, 271, 274, 491, 255, 423, + 179, 494, 433, 413, 417, 288, 202, 203, 204, 205, + 418, 480, 501, 419, 206, 420, 20, 207, 208, 209, + 210, 20, 301, 149, 119, 22, 60, 439, 306, 24, + 448, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 460, + 461, 466, 274, 473, 481, 148, 487, 488, 489, 444, + 1, 2, 3, 4, 5, 6, 7, 539, 490, 541, + 511, 206, 496, 538, 207, 208, 209, 210, 546, 379, + 380, 381, 382, 497, 471, 495, 191, 192, 552, 552, + 503, 512, 241, 498, 499, 513, 515, 502, 244, 245, + 246, 247, 564, 444, 444, 248, 500, 249, 241, 241, + 506, 561, 200, 201, 202, 203, 204, 205, 507, 517, + 241, 519, 206, 191, 192, 207, 208, 209, 210, 534, + 518, 241, 241, 521, 178, 179, 441, 444, 588, 535, + 540, 594, 542, 543, 241, 547, 555, 556, 573, 570, + 574, 449, 585, 586, 205, 552, -13, 86, 587, 206, + 590, 599, 207, 208, 209, 210, 18, 84, 109, 19, + 250, 558, 20, 444, 442, 21, 22, 23, 87, 596, + 24, 25, 26, 27, 28, 29, 30, 404, 31, 32, + 33, 34, 35, 36, 88, 108, 89, 90, 91, 37, + 38, 92, 93, 94, 95, 96, 97, 492, 191, 192, + 98, 99, 100, 101, 102, 385, 39, 464, 103, 40, + 41, 42, 43, 44, 465, 545, 45, 46, 47, 48, + 49, 50, 51, 199, 200, 201, 202, 203, 204, 205, + 514, 52, 523, 401, 206, 400, 289, 207, 208, 209, + 210, 455, 363, 0, 482, 0, 53, 54, 0, 55, + 0, 56, 57, 0, 0, 0, 0, 0, 58, 0, + 0, 0, -3, 86, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 84, 0, 19, 0, 0, 20, 0, + 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, + 28, 29, 30, 510, 31, 32, 33, 34, 35, 36, + 88, 108, 89, 90, 91, 37, 38, 92, 93, 94, + 95, 96, 97, 0, 0, 0, 98, 99, 100, 101, + 102, 0, 39, 0, 103, 40, 41, 42, 43, 44, + 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 86, 0, 53, 54, 0, 55, 0, 56, 57, 18, + 84, 432, 19, 0, 58, 20, 0, 0, 21, 22, + 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, + 0, 31, 32, 33, 34, 35, 36, 88, 108, 89, + 90, 91, 37, 38, 92, 93, 94, 95, 96, 97, + 0, 0, 0, 98, 99, 100, 101, 102, 0, 39, + 0, 103, 40, 41, 42, 43, 44, 0, 0, 45, + 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 53, + 54, 0, 55, 0, 56, 57, 18, 84, 508, 19, + 0, 58, 20, 0, 0, 21, 22, 23, 87, 0, + 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, + 33, 34, 35, 36, 88, 108, 89, 90, 91, 37, + 38, 92, 93, 94, 95, 96, 97, 0, 0, 0, + 98, 99, 100, 101, 102, 0, 39, 0, 103, 40, + 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, + 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, + 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 86, 0, 53, 54, 0, 55, + 0, 56, 57, 18, 84, 562, 19, 0, 58, 20, + 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, + 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, + 36, 88, 108, 89, 90, 91, 37, 38, 92, 93, + 94, 95, 96, 97, 0, 0, 0, 98, 99, 100, + 101, 102, 0, 39, 0, 103, 40, 41, 42, 43, + 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 86, 0, 53, 54, 0, 55, 0, 56, 57, + 18, 84, 563, 19, 0, 58, 20, 0, 0, 21, + 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, + 30, 0, 31, 32, 33, 34, 35, 36, 88, 108, + 89, 90, 91, 37, 38, 92, 93, 94, 95, 96, + 97, 0, 0, 0, 98, 99, 100, 101, 102, 0, + 39, 0, 103, 40, 41, 42, 43, 44, 0, 0, + 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, + 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, + 53, 54, 0, 55, 0, 56, 57, 18, 84, 566, + 19, 0, 58, 20, 0, 0, 21, 22, 23, 87, + 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 88, 108, 89, 90, 91, 37, 38, 92, 93, 94, 95, 96, 97, 0, 0, 0, 98, 99, 100, 101, 102, 0, 39, 0, 103, @@ -441,17 +482,17 @@ static const yytype_int16 yytable[] = 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 53, 54, 0, - 55, 0, 56, 57, 18, 84, 500, 19, 0, 58, + 55, 0, 56, 57, 18, 84, 0, 19, 0, 58, 20, 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 88, 108, 89, 90, 91, 37, 38, 92, 93, 94, 95, 96, 97, 0, 0, 0, 98, 99, 100, 101, 102, 0, 39, 0, 103, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, + 51, 0, 0, 597, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 53, 54, 0, 55, 0, 56, - 57, 18, 84, 554, 19, 0, 58, 20, 0, 0, + 57, 18, 84, 0, 19, 0, 58, 20, 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 88, 108, 89, 90, 91, 37, 38, 92, 93, 94, 95, @@ -461,101 +502,81 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 53, 54, 0, 55, 0, 56, 57, 18, 84, - 555, 19, 0, 58, 20, 0, 0, 21, 22, 23, + 0, 19, 0, 58, 20, 0, 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, 0, - 31, 32, 33, 34, 35, 36, 88, 108, 89, 90, + 31, 32, 33, 34, 35, 36, 88, 0, 89, 90, 91, 37, 38, 92, 93, 94, 95, 96, 97, 0, 0, 0, 98, 99, 100, 101, 102, 0, 39, 0, 103, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 86, 0, 53, 54, - 0, 55, 0, 56, 57, 18, 84, 558, 19, 0, - 58, 20, 0, 0, 21, 22, 23, 87, 0, 24, - 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, - 34, 35, 36, 88, 108, 89, 90, 91, 37, 38, - 92, 93, 94, 95, 96, 97, 0, 0, 0, 98, - 99, 100, 101, 102, 0, 39, 0, 103, 40, 41, - 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, - 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 86, 0, 53, 54, 0, 55, 0, - 56, 57, 18, 84, 0, 19, 0, 58, 20, 0, - 0, 21, 22, 23, 87, 0, 24, 25, 26, 27, + 0, 0, 0, 86, 0, 0, 0, 0, 53, 54, + 0, 55, 18, 56, 57, 19, 0, 0, 20, 0, + 58, 21, 22, 23, -17, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, - 88, 108, 89, 90, 91, 37, 38, 92, 93, 94, - 95, 96, 97, 0, 0, 0, 98, 99, 100, 101, - 102, 0, 39, 0, 103, 40, 41, 42, 43, 44, - 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, - 0, 589, 0, 0, 0, 0, 0, 52, 0, 0, + 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 53, 54, 0, 55, 0, 56, 57, 18, - 84, 0, 19, 0, 58, 20, 0, 0, 21, 22, - 23, 87, 0, 24, 25, 26, 27, 28, 29, 30, - 0, 31, 32, 33, 34, 35, 36, 88, 108, 89, - 90, 91, 37, 38, 92, 93, 94, 95, 96, 97, - 0, 0, 0, 98, 99, 100, 101, 102, 0, 39, - 0, 103, 40, 41, 42, 43, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 86, 0, 53, - 54, 0, 55, 0, 56, 57, 18, 84, 0, 19, - 0, 58, 20, 0, 0, 21, 22, 23, 87, 0, + 0, 0, 39, 0, 0, 40, 41, 42, 43, 44, + 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, + 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 86, 0, 0, + 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, + 0, 0, 20, 0, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, - 33, 34, 35, 36, 88, 0, 89, 90, 91, 37, - 38, 92, 93, 94, 95, 96, 97, 0, 0, 0, - 98, 99, 100, 101, 102, 0, 39, 0, 103, 40, + 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, + 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 39, 0, 0, 40, + 41, 42, 43, 44, -219, 0, 45, 46, 47, 48, + 49, 50, 51, 0, 0, 212, 0, 213, -219, -219, + 0, 52, 0, 0, 0, 0, -219, -219, 0, 0, + 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, + 0, 56, 57, 0, 0, 0, 0, -17, 58, 0, + 0, -219, -219, -219, -219, 0, 0, 0, -219, 0, + -219, 0, 0, 0, 0, -219, 0, 0, 0, 0, + 0, 0, -219, -219, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -219, 0, -219, -219, 0, + -219, -219, -219, -219, -219, -219, -219, -219, -219, -219, + -219, -219, -219, -219, -258, 191, 192, 0, -219, 0, + 0, -219, -219, -219, -219, -219, 0, 0, -258, -258, + 0, 0, 0, 0, 0, 0, -258, -258, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 0, 0, 0, + 0, 206, 0, 0, 207, 208, 209, 210, 0, 0, + 0, -258, -258, -258, -258, 0, 0, 0, -258, 0, + -258, 0, 0, 0, 0, -258, 0, 0, 0, 0, + 0, 0, -258, -258, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -258, 0, -258, -258, 0, + -258, -258, -258, -258, -258, -258, -258, -258, -258, -258, + -258, -258, -258, -258, 0, 0, 0, 0, -258, 0, + 0, -258, -258, -258, -258, -258, 18, 84, 0, 19, + 0, 0, 20, 0, 0, 21, 22, 23, 0, 0, + 24, 25, 147, 27, 28, 29, 30, 118, 31, 32, + 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, + 38, 0, 0, 0, 0, 0, 0, 0, 0, 191, + 192, 0, 0, 0, 0, 0, 39, 0, 0, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, - 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 0, 0, 0, 53, 54, 0, 55, + 49, 50, 51, 198, 199, 200, 201, 202, 203, 204, + 205, 52, 0, 0, 0, 206, 0, 0, 207, 208, + 209, 210, 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, 0, 0, 20, 0, 58, 21, - 22, 23, -17, 0, 24, 25, 26, 27, 28, 29, + 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, - 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, + 0, 160, 161, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 0, - 53, 54, 0, 55, 18, 56, 57, 19, 0, 0, - 20, 0, 58, 21, 22, 23, 0, 0, 24, 25, - 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, - 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 39, 0, 0, 40, 41, 42, - 43, 44, -215, 0, 45, 46, 47, 48, 49, 50, - 51, 0, 0, 208, 0, 209, -215, -215, 0, 52, - 0, 0, 0, 0, -215, -215, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 54, 0, 55, 0, 56, - 57, 0, 0, 0, 0, -17, 58, 0, 0, -215, - -215, -215, -215, 0, 0, 0, -215, 0, -215, 0, - 0, 0, 0, -215, 0, 0, 0, 0, 0, 0, - -215, -215, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -215, 0, -215, -215, 0, -215, -215, - -215, -215, -215, -215, -215, -215, -215, -215, -215, -215, - -215, -215, -254, 0, 0, 0, -215, 0, 0, -215, - -215, -215, -215, -215, 0, 0, -254, -254, 0, 0, - 0, 0, 0, 0, -254, -254, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -254, - -254, -254, -254, 0, 0, 0, -254, 0, -254, 0, - 0, 0, 0, -254, 0, 0, 0, 0, 0, 0, - -254, -254, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -254, 0, -254, -254, 0, -254, -254, - -254, -254, -254, -254, -254, -254, -254, -254, -254, -254, - -254, -254, 0, 0, 0, 0, -254, 0, 0, -254, - -254, -254, -254, -254, 18, 84, 0, 19, 0, 0, - 20, 0, 0, 21, 22, 23, 0, 0, 24, 25, - 145, 27, 28, 29, 30, 118, 31, 32, 33, 34, - 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 39, 0, 0, 40, 41, 42, - 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 54, 0, 55, 0, 56, - 57, 18, 84, 0, 19, 0, 58, 20, 0, 0, + 53, 54, 0, 55, 0, 56, 57, 18, 84, 0, + 19, 0, 58, 20, 0, 0, 21, 22, 23, 0, + 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, + 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, + 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, + 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, + 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, + 55, 18, 56, 57, 19, 0, 0, 20, 0, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, @@ -565,7 +586,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, 0, - 0, 20, 0, 58, 21, 22, 23, 0, 0, 24, + 0, 20, 176, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -574,7 +595,7 @@ static const yytype_int16 yytable[] = 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, - 56, 57, 19, 0, 0, 20, 172, 58, 21, 22, + 56, 57, 19, 0, 0, 20, 277, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, @@ -584,7 +605,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, 0, 0, 20, - 273, 58, 21, 22, 23, 0, 0, 24, 25, 26, + 293, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -593,7 +614,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, - 19, 0, 0, 20, 287, 58, 21, 22, 23, 0, + 19, 0, 0, 20, 304, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, @@ -602,7 +623,7 @@ static const yytype_int16 yytable[] = 48, 49, 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, - 55, 18, 56, 57, 19, 0, 0, 20, 298, 58, + 55, 18, 56, 57, 19, 0, 0, 20, 337, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, @@ -612,7 +633,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, 0, - 0, 20, 331, 58, 21, 22, 23, 0, 0, 24, + 0, 20, 402, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -621,7 +642,7 @@ static const yytype_int16 yytable[] = 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, - 56, 57, 19, 0, 0, 20, 394, 58, 21, 22, + 56, 57, 19, 0, 0, 20, 421, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, 0, 0, @@ -631,136 +652,162 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, 19, 0, 0, 20, - 413, 58, 21, 22, 23, 0, 0, 24, 25, 26, + 0, 58, 21, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, 37, 38, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 39, 0, 0, 40, 41, 42, 43, + 0, 0, 0, 528, 529, 0, 0, 532, 0, 0, + 0, 536, 537, 39, 0, 0, 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, 48, 49, 50, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, + 0, 548, 549, 0, 0, 0, 0, 0, 52, 0, + 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 53, 54, 569, 55, 0, 56, 57, + 571, 572, 0, 0, 0, 287, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, + 190, 0, 0, 0, 0, 0, 0, 191, 192, 0, + 593, 0, 0, 0, 0, 595, 0, 0, 0, 0, + 0, 0, 0, 0, 600, 193, 194, 412, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 0, + 0, 0, 0, 206, 190, 0, 207, 208, 209, 210, + 0, 191, 192, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, + 194, 0, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 0, 0, 0, 0, 206, 190, 0, + 207, 208, 209, 210, 0, 191, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 53, 54, 0, 55, 18, 56, 57, - 19, 0, 0, 20, 0, 58, 21, 22, 23, 0, - 0, 24, 25, 26, 27, 28, 29, 30, 0, 31, - 32, 33, 34, 35, 36, 0, 0, 0, 0, 0, - 37, 38, 0, 0, 0, 0, 0, 520, 521, 0, - 0, 524, 0, 0, 0, 528, 529, 39, 0, 0, - 40, 41, 42, 43, 44, 0, 0, 45, 46, 47, - 48, 49, 50, 51, 0, 540, 541, 0, 0, 0, - 0, 0, 52, 0, 552, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 53, 54, 561, - 55, 0, 56, 57, 563, 564, 0, 0, 0, 281, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 576, 186, 0, 0, 0, 0, 0, - 0, 187, 188, 0, 585, 0, 0, 0, 0, 587, - 0, 0, 0, 0, 0, 0, 0, 0, 592, 189, - 190, 404, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 0, 0, 0, 0, 202, 186, 0, - 203, 204, 205, 206, 0, 187, 188, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 189, 190, 0, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 0, 0, 0, - 0, 202, 186, 0, 203, 204, 205, 206, 0, 187, - 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 190, 0, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 0, 0, 0, 0, 202, -292, 0, 203, 204, - 205, 206, 0, 187, 188, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 194, 0, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 0, 0, 0, + 0, 206, -296, 0, 207, 208, 209, 210, 0, 191, + 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 0, 0, 0, 0, 202, - 0, 0, 203, 204, 205, 206 + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 0, 0, 0, 0, 206, 0, 0, 207, 208, + 209, 210 }; static const yytype_int16 yycheck[] = { - 10, 17, 44, 9, 129, 50, 361, 19, 12, 19, - 52, 50, 11, 489, 13, 22, 268, 80, 0, 14, - 16, 18, 29, 20, 11, 22, 351, 24, 25, 521, - 27, 28, 157, 14, 44, 47, 361, 47, 16, 364, - 365, 14, 20, 10, 13, 13, 24, 44, 45, 112, - 112, 26, 19, 50, 13, 18, 31, 10, 11, 22, - 13, 24, 25, 16, 27, 28, 14, 20, 14, 112, - 14, 24, 25, 14, 27, 11, 112, 13, 84, 75, - 47, 44, 45, 14, 11, 15, 13, 129, 83, 84, - 11, 58, 13, 22, 104, 587, 22, 112, 15, 575, - 94, 98, 83, 84, 108, 115, 23, 103, 150, 77, - 83, 84, 96, 112, 159, 157, 112, 70, 77, 129, - 159, 22, 11, 448, 22, 103, 136, 137, 22, 141, - 142, 141, 142, 22, 112, 83, 84, 83, 84, 83, - 84, 77, 83, 84, 11, 142, 11, 157, 83, 84, - 77, 16, 83, 84, 83, 84, 77, 83, 84, 112, - 25, 26, 159, 83, 84, 132, 31, 492, 493, 22, - 11, 11, 13, 140, 141, 142, 428, 83, 84, 142, - 26, 226, 83, 84, 112, 83, 84, 226, 10, 83, - 84, 111, 11, 160, 16, 83, 84, 112, 20, 215, - 112, 526, 24, 96, 97, 111, 216, 174, 175, 206, - 177, 178, 179, 94, 95, 221, 222, 223, 224, 225, - 262, 227, 228, 111, 230, 231, 51, 52, 583, 226, - 83, 84, 484, 112, 83, 84, 112, 562, 83, 84, - 207, 208, 209, 210, 211, 212, 213, 214, 11, 261, - 13, 261, 112, 75, 11, 83, 84, 22, 268, 384, - 22, 18, 111, 20, 53, 22, 111, 24, 25, 14, - 27, 28, 80, 240, 241, 242, 243, 244, 245, 112, - 68, 69, 111, 111, 83, 84, 43, 44, 45, 46, - 83, 84, 217, 218, 261, 47, 48, 49, 50, 68, - 69, 16, 54, 29, 56, 20, 11, 77, 13, 24, - 277, 99, 111, 11, 281, 13, 104, 362, 111, 107, - 108, 109, 110, 362, 291, 322, 111, 96, 97, 98, - 99, 83, 84, 22, 11, 104, 13, 77, 107, 108, - 109, 110, 384, 13, 101, 37, 38, 524, 90, 91, - 366, 361, 26, 320, 321, 26, 353, 363, 112, 111, - 103, 328, 487, 540, 541, 362, 59, 31, 378, 379, - 15, 29, 382, 68, 384, 552, 111, 387, 135, 385, - 81, 348, 349, 350, 351, 142, 563, 564, 12, 29, - 13, 11, 25, 84, 361, 25, 16, 364, 365, 576, - 25, 68, 69, 415, 99, 415, 26, 25, 25, 104, - 112, 31, 107, 108, 109, 110, 18, 427, 428, 425, - 16, 26, 112, 429, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 400, 440, 86, 21, 104, 23, 112, - 107, 108, 109, 110, 112, 487, 111, 12, 415, 34, - 47, 48, 49, 50, 39, 12, 12, 54, 43, 56, - 12, 46, 12, 26, 49, 111, 51, 111, 53, 54, - 55, 56, 57, 111, 484, 111, 16, 487, 112, 236, - 20, 448, 111, 22, 24, 111, 83, 84, 99, 505, - 111, 507, 459, 104, 81, 501, 107, 108, 109, 110, - 516, 107, 108, 109, 110, 11, 512, 11, 68, 69, - 520, 521, 12, 111, 524, 3, 4, 5, 6, 7, - 8, 9, 112, 22, 534, 492, 493, 22, 111, 111, - 540, 541, 79, 530, 94, 95, 96, 97, 98, 99, - 68, 69, 552, 22, 104, 22, 112, 107, 108, 109, - 110, 22, 111, 563, 564, 17, 111, 111, 525, 526, - 570, 78, 111, 579, 13, 322, 576, 111, 111, 525, - 98, 99, 108, 583, 159, 349, 104, 587, 583, 107, - 108, 109, 110, 104, 427, 379, 107, 108, 109, 110, - 253, 176, 465, 380, 512, 562, 283, 182, 485, 226, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 0, 1, - 242, 243, 244, 245, 159, 362, -1, -1, 10, 11, - -1, 13, -1, -1, 16, -1, -1, 19, 20, 21, - 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, - 68, 69, 54, 55, 56, 57, 58, -1, 60, -1, - 62, 63, 64, 65, 66, 67, -1, -1, 70, 71, - 72, 73, 74, 75, 76, 93, 94, 95, 96, 97, - 98, 99, -1, 85, -1, -1, 104, -1, -1, 107, - 108, 109, 110, -1, -1, 0, 1, -1, 100, 101, - -1, 103, -1, 105, 106, 10, 11, -1, 13, -1, - 112, 16, -1, -1, 19, 20, 21, 22, -1, 24, - 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, - 55, 56, 57, 58, -1, 60, -1, 62, 63, 64, - 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, - 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, - 85, -1, -1, -1, 68, 69, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 100, 101, -1, 103, 404, - 105, 106, -1, -1, -1, -1, -1, 112, 92, 93, - 94, 95, 96, 97, 98, 99, -1, -1, 1, -1, - 104, -1, -1, 107, 108, 109, 110, 10, 11, 12, - 13, -1, -1, 16, -1, -1, 19, 20, 21, 22, - -1, 24, 25, 26, 27, 28, 29, 30, 453, 32, + 10, 17, 44, 9, 12, 35, 129, 19, 38, 19, + 52, 367, 16, 11, 50, 13, 50, 272, 497, 90, + 91, 18, 11, 20, 13, 22, 14, 24, 25, 13, + 27, 28, 529, 14, 44, 47, 159, 47, 11, 83, + 84, 357, 14, 10, 0, 22, 14, 44, 45, 13, + 13, 367, 19, 50, 370, 371, 18, 112, 10, 11, + 22, 13, 24, 25, 16, 27, 28, 111, 20, 14, + 96, 75, 24, 25, 22, 27, 94, 16, 84, 26, + 47, 20, 44, 45, 31, 24, 14, 129, 14, 160, + 161, 58, 14, 77, 104, 83, 84, 112, 595, 103, + 108, 98, 83, 84, 583, 115, 83, 84, 112, 112, + 152, 83, 84, 77, 112, 83, 84, 159, 70, 129, + 11, 11, 13, 13, 83, 84, 136, 163, 138, 163, + 15, 143, 144, 143, 144, 83, 84, 11, 83, 84, + 456, 11, 80, 13, 18, 11, 20, 144, 22, 159, + 24, 25, 111, 27, 28, 83, 84, 83, 84, 112, + 112, 83, 84, 11, 103, 132, 163, 83, 84, 43, + 44, 45, 46, 112, 112, 142, 143, 144, 22, 26, + 22, 436, 144, 15, 500, 501, 77, 77, 11, 83, + 84, 23, 10, 22, 230, 111, 230, 164, 16, 22, + 29, 112, 20, 219, 83, 84, 24, 77, 83, 84, + 220, 178, 179, 210, 181, 182, 183, 111, 534, 225, + 226, 227, 228, 229, 266, 231, 232, 101, 234, 235, + 22, 112, 68, 230, 112, 591, 111, 492, 11, 83, + 84, 83, 84, 22, 211, 212, 213, 214, 215, 216, + 217, 218, 112, 265, 570, 265, 286, 75, 83, 84, + 112, 135, 272, 99, 22, 96, 97, 390, 104, 112, + 144, 107, 108, 109, 110, 94, 95, 244, 245, 246, + 247, 248, 249, 53, 83, 84, 111, 22, 83, 84, + 14, 83, 84, 21, 11, 23, 13, 11, 265, 13, + 47, 48, 49, 50, 83, 84, 34, 54, 11, 56, + 13, 39, 111, 80, 281, 43, 111, 11, 46, 13, + 287, 49, 112, 51, 111, 53, 54, 55, 56, 57, + 297, 328, 368, 99, 368, 11, 83, 84, 104, 29, + 16, 107, 108, 109, 110, 51, 52, 77, 390, 25, + 26, 111, 22, 532, 77, 31, 372, 367, 13, 326, + 327, 26, 359, 369, 111, 26, 240, 334, 112, 548, + 549, 368, 495, 59, 384, 385, 68, 69, 388, 11, + 390, 560, 103, 393, 16, 391, 31, 354, 355, 356, + 357, 15, 571, 572, 26, 107, 108, 109, 110, 31, + 367, 221, 222, 370, 371, 584, 98, 99, 68, 69, + 29, 423, 104, 423, 81, 107, 108, 109, 110, 12, + 16, 29, 111, 13, 20, 435, 436, 433, 24, 112, + 84, 437, 18, 25, 25, 163, 96, 97, 98, 99, + 25, 408, 448, 25, 104, 25, 16, 107, 108, 109, + 110, 16, 180, 495, 328, 20, 423, 26, 186, 24, + 112, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 112, + 86, 111, 492, 112, 12, 495, 12, 12, 12, 456, + 3, 4, 5, 6, 7, 8, 9, 513, 12, 515, + 467, 104, 111, 509, 107, 108, 109, 110, 524, 246, + 247, 248, 249, 111, 520, 26, 68, 69, 528, 529, + 22, 81, 532, 111, 111, 11, 11, 111, 47, 48, + 49, 50, 542, 500, 501, 54, 112, 56, 548, 549, + 111, 538, 94, 95, 96, 97, 98, 99, 111, 12, + 560, 22, 104, 68, 69, 107, 108, 109, 110, 112, + 111, 571, 572, 22, 83, 84, 533, 534, 578, 111, + 111, 587, 79, 22, 584, 22, 111, 111, 22, 112, + 111, 591, 111, 17, 99, 595, 0, 1, 78, 104, + 111, 111, 107, 108, 109, 110, 10, 11, 13, 13, + 108, 533, 16, 570, 355, 19, 20, 21, 22, 591, + 24, 25, 26, 27, 28, 29, 30, 289, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 435, 68, 69, + 54, 55, 56, 57, 58, 257, 60, 385, 62, 63, + 64, 65, 66, 67, 386, 520, 70, 71, 72, 73, + 74, 75, 76, 93, 94, 95, 96, 97, 98, 99, + 473, 85, 493, 286, 104, 285, 163, 107, 108, 109, + 110, 368, 230, -1, 412, -1, 100, 101, -1, 103, + -1, 105, 106, -1, -1, -1, -1, -1, 112, -1, + -1, -1, 0, 1, -1, -1, -1, -1, -1, -1, + -1, -1, 10, 11, -1, 13, -1, -1, 16, -1, + -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, + 28, 29, 30, 461, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, -1, -1, -1, 54, 55, 56, 57, + 58, -1, 60, -1, 62, 63, 64, 65, 66, 67, + -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, + -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1, -1, 100, 101, -1, 103, -1, 105, 106, 10, + 11, 12, 13, -1, 112, 16, -1, -1, 19, 20, + 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, + -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + -1, -1, -1, 54, 55, 56, 57, 58, -1, 60, + -1, 62, 63, 64, 65, 66, 67, -1, -1, 70, + 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, + -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1, -1, 100, + 101, -1, 103, -1, 105, 106, 10, 11, 12, 13, + -1, 112, 16, -1, -1, 19, 20, 21, 22, -1, + 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, + 54, 55, 56, 57, 58, -1, 60, -1, 62, 63, + 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, + 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, + -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1, -1, 100, 101, -1, 103, + -1, 105, 106, 10, 11, 12, 13, -1, 112, 16, + -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, + 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, -1, -1, -1, 54, 55, 56, + 57, 58, -1, 60, -1, 62, 63, 64, 65, 66, + 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, + -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1, -1, 100, 101, -1, 103, -1, 105, 106, + 10, 11, 12, 13, -1, 112, 16, -1, -1, 19, + 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, + 30, -1, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, -1, -1, -1, 54, 55, 56, 57, 58, -1, + 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, + 70, 71, 72, 73, 74, 75, 76, -1, -1, -1, + -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, + 100, 101, -1, 103, -1, 105, 106, 10, 11, 12, + 13, -1, 112, 16, -1, -1, 19, 20, 21, 22, + -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, 55, 56, 57, 58, -1, 60, -1, 62, @@ -768,17 +815,17 @@ static const yytype_int16 yycheck[] = 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 100, 101, -1, - 103, -1, 105, 106, 10, 11, 12, 13, -1, 112, + 103, -1, 105, 106, 10, 11, -1, 13, -1, 112, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, 55, 56, 57, 58, -1, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, - 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, + 76, -1, -1, 79, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 100, 101, -1, 103, -1, 105, - 106, 10, 11, 12, 13, -1, 112, 16, -1, -1, + 106, 10, 11, -1, 13, -1, 112, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, @@ -788,101 +835,81 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, 100, 101, -1, 103, -1, 105, 106, 10, 11, - 12, 13, -1, 112, 16, -1, -1, 19, 20, 21, + -1, 13, -1, 112, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 32, 33, 34, 35, 36, 37, 38, -1, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, 55, 56, 57, 58, -1, 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1, -1, 100, 101, - -1, 103, -1, 105, 106, 10, 11, 12, 13, -1, - 112, 16, -1, -1, 19, 20, 21, 22, -1, 24, - 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, - 55, 56, 57, 58, -1, 60, -1, 62, 63, 64, - 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, - 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, - 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1, -1, 100, 101, -1, 103, -1, - 105, 106, 10, 11, -1, 13, -1, 112, 16, -1, - -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, + -1, -1, -1, 1, -1, -1, -1, -1, 100, 101, + -1, 103, 10, 105, 106, 13, -1, -1, 16, -1, + 112, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, -1, -1, -1, 54, 55, 56, 57, - 58, -1, 60, -1, 62, 63, 64, 65, 66, 67, - -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, - -1, 79, -1, -1, -1, -1, -1, 85, -1, -1, + -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1, -1, 100, 101, -1, 103, -1, 105, 106, 10, - 11, -1, 13, -1, 112, 16, -1, -1, 19, 20, - 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, - -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - -1, -1, -1, 54, 55, 56, 57, 58, -1, 60, - -1, 62, 63, 64, 65, 66, 67, -1, -1, 70, - 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, - -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1, -1, 100, - 101, -1, 103, -1, 105, 106, 10, 11, -1, 13, - -1, 112, 16, -1, -1, 19, 20, 21, 22, -1, + -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, + -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, + -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, + -1, -1, 100, 101, -1, 103, 10, 105, 106, 13, + -1, -1, 16, -1, 112, 19, 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, - 34, 35, 36, 37, 38, -1, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, - 54, 55, 56, 57, 58, -1, 60, -1, 62, 63, + 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, + 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, + 64, 65, 66, 67, 0, -1, 70, 71, 72, 73, + 74, 75, 76, -1, -1, 11, -1, 13, 14, 15, + -1, 85, -1, -1, -1, -1, 22, 23, -1, -1, + -1, -1, -1, -1, -1, -1, 100, 101, -1, 103, + -1, 105, 106, -1, -1, -1, -1, 111, 112, -1, + -1, 47, 48, 49, 50, -1, -1, -1, 54, -1, + 56, -1, -1, -1, -1, 61, -1, -1, -1, -1, + -1, -1, 68, 69, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 81, -1, 83, 84, -1, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 0, 68, 69, -1, 104, -1, + -1, 107, 108, 109, 110, 111, -1, -1, 14, 15, + -1, -1, -1, -1, -1, -1, 22, 23, 91, 92, + 93, 94, 95, 96, 97, 98, 99, -1, -1, -1, + -1, 104, -1, -1, 107, 108, 109, 110, -1, -1, + -1, 47, 48, 49, 50, -1, -1, -1, 54, -1, + 56, -1, -1, -1, -1, 61, -1, -1, -1, -1, + -1, -1, 68, 69, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 81, -1, 83, 84, -1, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, -1, -1, -1, -1, 104, -1, + -1, 107, 108, 109, 110, 111, 10, 11, -1, 13, + -1, -1, 16, -1, -1, 19, 20, 21, -1, -1, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, + 44, -1, -1, -1, -1, -1, -1, -1, -1, 68, + 69, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, - 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, - -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1, -1, -1, -1, -1, 100, 101, -1, 103, + 74, 75, 76, 92, 93, 94, 95, 96, 97, 98, + 99, 85, -1, -1, -1, 104, -1, -1, 107, 108, + 109, 110, -1, -1, -1, -1, 100, 101, -1, 103, 10, 105, 106, 13, -1, -1, 16, -1, 112, 19, - 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, + 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, -1, - -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, + -1, 41, 42, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, - 100, 101, -1, 103, 10, 105, 106, 13, -1, -1, - 16, -1, 112, 19, 20, 21, -1, -1, 24, 25, - 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, - 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, - 66, 67, 0, -1, 70, 71, 72, 73, 74, 75, - 76, -1, -1, 11, -1, 13, 14, 15, -1, 85, - -1, -1, -1, -1, 22, 23, -1, -1, -1, -1, - -1, -1, -1, -1, 100, 101, -1, 103, -1, 105, - 106, -1, -1, -1, -1, 111, 112, -1, -1, 47, - 48, 49, 50, -1, -1, -1, 54, -1, 56, -1, - -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, - 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 81, -1, 83, 84, -1, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 0, -1, -1, -1, 104, -1, -1, 107, - 108, 109, 110, 111, -1, -1, 14, 15, -1, -1, - -1, -1, -1, -1, 22, 23, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, - 48, 49, 50, -1, -1, -1, 54, -1, 56, -1, - -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, - 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 81, -1, 83, 84, -1, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, -1, -1, -1, -1, 104, -1, -1, 107, - 108, 109, 110, 111, 10, 11, -1, 13, -1, -1, - 16, -1, -1, 19, 20, 21, -1, -1, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, -1, -1, 63, 64, 65, - 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, - 76, -1, -1, -1, -1, -1, -1, -1, -1, 85, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 100, 101, -1, 103, -1, 105, - 106, 10, 11, -1, 13, -1, 112, 16, -1, -1, + 100, 101, -1, 103, -1, 105, 106, 10, 11, -1, + 13, -1, 112, 16, -1, -1, 19, 20, 21, -1, + -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, + 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, + 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, + 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, + 73, 74, 75, 76, -1, -1, -1, -1, -1, -1, + -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 100, 101, -1, + 103, 10, 105, 106, 13, -1, -1, 16, -1, 112, 19, 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, @@ -892,7 +919,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, -1, 103, 10, 105, 106, 13, -1, - -1, 16, -1, 112, 19, 20, 21, -1, -1, 24, + -1, 16, 111, 112, 19, 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -958,45 +985,36 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 100, 101, -1, 103, 10, 105, 106, 13, -1, -1, 16, - 111, 112, 19, 20, 21, -1, -1, 24, 25, 26, + -1, 112, 19, 20, 21, -1, -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, 43, 44, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 60, -1, -1, 63, 64, 65, 66, + -1, -1, -1, 498, 499, -1, -1, 502, -1, -1, + -1, 506, 507, 60, -1, -1, 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, 73, 74, 75, 76, - -1, -1, -1, -1, -1, -1, -1, -1, 85, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 100, 101, -1, 103, 10, 105, 106, - 13, -1, -1, 16, -1, 112, 19, 20, 21, -1, - -1, 24, 25, 26, 27, 28, 29, 30, -1, 32, - 33, 34, 35, 36, 37, -1, -1, -1, -1, -1, - 43, 44, -1, -1, -1, -1, -1, 490, 491, -1, - -1, 494, -1, -1, -1, 498, 499, 60, -1, -1, - 63, 64, 65, 66, 67, -1, -1, 70, 71, 72, - 73, 74, 75, 76, -1, 518, 519, -1, -1, -1, - -1, -1, 85, -1, 527, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 100, 101, 542, - 103, -1, 105, 106, 547, 548, -1, -1, -1, 112, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 566, 61, -1, -1, -1, -1, -1, - -1, 68, 69, -1, 577, -1, -1, -1, -1, 582, - -1, -1, -1, -1, -1, -1, -1, -1, 591, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + -1, 526, 527, -1, -1, -1, -1, -1, 85, -1, + 535, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 100, 101, 550, 103, -1, 105, 106, + 555, 556, -1, -1, -1, 112, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 574, + 61, -1, -1, -1, -1, -1, -1, 68, 69, -1, + 585, -1, -1, -1, -1, 590, -1, -1, -1, -1, + -1, -1, -1, -1, 599, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, + -1, -1, -1, 104, 61, -1, 107, 108, 109, 110, + -1, 68, 69, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 86, + 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, -1, -1, -1, 104, 61, -1, 107, 108, 109, 110, -1, 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 86, 87, -1, 89, 90, 91, 92, + -1, -1, -1, -1, 87, -1, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, -1, -1, -1, 104, 61, -1, 107, 108, 109, 110, -1, 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 87, -1, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, -1, -1, -1, -1, 104, 61, -1, 107, 108, - 109, 110, -1, 68, 69, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, -1, -1, -1, -1, 104, - -1, -1, 107, 108, 109, 110 + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, -1, -1, -1, -1, 104, -1, -1, 107, 108, + 109, 110 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1010,59 +1028,60 @@ static const yytype_uint8 yystos[] = 63, 64, 65, 66, 67, 70, 71, 72, 73, 74, 75, 76, 85, 100, 101, 103, 105, 106, 112, 123, 178, 179, 180, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 194, 197, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 11, 122, 1, 22, 38, 40, + 192, 193, 194, 196, 199, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 11, 122, 1, 22, 38, 40, 41, 42, 45, 46, 47, 48, 49, 50, 54, 55, 56, 57, 58, 62, 122, 132, 145, 178, 39, 130, 131, 132, 123, 128, 172, 173, 128, 26, 31, 122, - 204, 212, 197, 212, 192, 212, 192, 212, 212, 212, - 212, 193, 13, 112, 192, 156, 156, 156, 192, 112, - 112, 80, 112, 122, 192, 26, 123, 179, 196, 204, - 212, 212, 122, 192, 197, 26, 31, 158, 192, 103, - 112, 195, 204, 205, 206, 192, 179, 192, 192, 192, - 192, 192, 111, 178, 83, 84, 15, 11, 13, 112, - 96, 97, 96, 94, 95, 94, 61, 68, 69, 86, - 87, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 104, 107, 108, 109, 110, 112, 11, 13, - 11, 13, 11, 13, 11, 125, 157, 158, 158, 26, - 155, 112, 112, 112, 112, 75, 103, 112, 202, 204, - 112, 112, 122, 11, 126, 22, 53, 123, 147, 22, - 47, 48, 49, 50, 54, 56, 131, 132, 130, 16, - 20, 24, 123, 163, 164, 166, 167, 168, 169, 14, - 196, 112, 80, 178, 111, 122, 29, 123, 159, 77, - 123, 160, 111, 111, 178, 197, 197, 212, 179, 22, - 196, 112, 192, 195, 204, 205, 206, 111, 178, 77, - 161, 13, 111, 178, 178, 192, 178, 178, 111, 178, - 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, 192, 10, - 11, 13, 16, 20, 24, 25, 27, 70, 112, 182, - 204, 111, 178, 178, 178, 178, 178, 178, 178, 178, - 128, 26, 123, 154, 155, 155, 26, 135, 125, 125, - 125, 125, 103, 125, 75, 200, 201, 203, 204, 205, - 206, 125, 125, 112, 125, 125, 127, 59, 122, 144, - 178, 151, 178, 144, 144, 144, 144, 31, 162, 162, - 15, 197, 179, 14, 181, 160, 29, 125, 177, 111, - 81, 111, 178, 12, 111, 178, 161, 111, 29, 178, - 13, 22, 14, 111, 88, 25, 178, 178, 25, 25, - 25, 25, 25, 111, 178, 112, 111, 22, 14, 22, - 14, 22, 14, 22, 12, 18, 124, 133, 134, 11, - 22, 26, 150, 178, 151, 152, 178, 152, 199, 204, - 112, 123, 145, 149, 152, 153, 178, 200, 125, 152, - 152, 128, 112, 86, 123, 165, 165, 167, 111, 23, - 123, 198, 196, 125, 175, 112, 123, 170, 171, 111, - 111, 14, 178, 12, 192, 22, 14, 111, 197, 12, - 12, 12, 12, 125, 159, 160, 125, 26, 111, 111, - 111, 111, 112, 125, 111, 22, 138, 152, 111, 111, - 12, 139, 192, 178, 81, 11, 172, 11, 14, 12, - 111, 22, 160, 22, 176, 177, 141, 196, 148, 148, - 126, 126, 152, 152, 126, 136, 112, 111, 126, 126, - 125, 128, 111, 128, 79, 22, 174, 175, 128, 22, - 126, 126, 51, 52, 123, 146, 146, 111, 111, 147, - 150, 152, 126, 204, 12, 12, 123, 129, 12, 147, - 147, 126, 112, 126, 126, 22, 111, 147, 140, 22, - 29, 142, 152, 147, 147, 137, 126, 111, 17, 78, - 123, 143, 111, 148, 147, 126, 128, 126, 153, 79, - 146, 111, 126 + 206, 214, 199, 214, 194, 214, 194, 214, 214, 214, + 214, 195, 13, 112, 194, 156, 156, 190, 156, 191, + 194, 112, 112, 80, 112, 122, 194, 26, 123, 179, + 198, 206, 214, 214, 122, 194, 199, 26, 31, 158, + 41, 42, 194, 103, 112, 197, 206, 207, 208, 194, + 179, 194, 194, 194, 194, 194, 111, 178, 83, 84, + 15, 11, 13, 112, 96, 97, 96, 94, 95, 94, + 61, 68, 69, 86, 87, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 104, 107, 108, 109, + 110, 112, 11, 13, 11, 13, 11, 13, 11, 125, + 157, 158, 158, 26, 155, 112, 112, 112, 112, 75, + 103, 112, 204, 206, 112, 112, 122, 11, 126, 22, + 53, 123, 147, 22, 47, 48, 49, 50, 54, 56, + 131, 132, 130, 16, 20, 24, 123, 163, 164, 166, + 167, 168, 169, 14, 198, 112, 80, 178, 111, 122, + 29, 123, 159, 77, 123, 160, 111, 111, 178, 199, + 199, 214, 179, 22, 198, 158, 158, 112, 194, 197, + 206, 207, 208, 111, 178, 77, 161, 13, 111, 178, + 178, 194, 178, 178, 111, 178, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 10, 11, 13, 16, 20, + 24, 25, 27, 70, 112, 182, 206, 111, 178, 178, + 178, 178, 178, 178, 178, 178, 128, 26, 123, 154, + 155, 155, 26, 135, 125, 125, 125, 125, 103, 125, + 75, 202, 203, 205, 206, 207, 208, 125, 125, 112, + 125, 125, 127, 59, 122, 144, 178, 151, 178, 144, + 144, 144, 144, 31, 162, 162, 15, 199, 179, 14, + 181, 160, 29, 125, 177, 111, 81, 111, 178, 12, + 190, 191, 111, 178, 161, 111, 29, 178, 13, 22, + 14, 111, 88, 25, 178, 178, 25, 25, 25, 25, + 25, 111, 178, 112, 111, 22, 14, 22, 14, 22, + 14, 22, 12, 18, 124, 133, 134, 11, 22, 26, + 150, 178, 151, 152, 178, 152, 201, 206, 112, 123, + 145, 149, 152, 153, 178, 202, 125, 152, 152, 128, + 112, 86, 123, 165, 165, 167, 111, 23, 123, 200, + 198, 125, 175, 112, 123, 170, 171, 111, 111, 14, + 178, 12, 194, 22, 14, 111, 199, 12, 12, 12, + 12, 125, 159, 160, 125, 26, 111, 111, 111, 111, + 112, 125, 111, 22, 138, 152, 111, 111, 12, 139, + 194, 178, 81, 11, 172, 11, 14, 12, 111, 22, + 160, 22, 176, 177, 141, 198, 148, 148, 126, 126, + 152, 152, 126, 136, 112, 111, 126, 126, 125, 128, + 111, 128, 79, 22, 174, 175, 128, 22, 126, 126, + 51, 52, 123, 146, 146, 111, 111, 147, 150, 152, + 126, 206, 12, 12, 123, 129, 12, 147, 147, 126, + 112, 126, 126, 22, 111, 147, 140, 22, 29, 142, + 152, 147, 147, 137, 126, 111, 17, 78, 123, 143, + 111, 148, 147, 126, 128, 126, 153, 79, 146, 111, + 126 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -1087,17 +1106,18 @@ static const yytype_uint8 yyr1[] = 183, 183, 183, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 185, 185, 185, 185, 186, 186, 187, 187, 187, 187, 188, 188, 189, - 189, 189, 189, 189, 189, 189, 189, 189, 190, 190, - 190, 190, 191, 191, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 193, 192, 192, 192, 192, 194, 194, 194, - 194, 195, 195, 195, 195, 195, 196, 196, 197, 197, - 198, 198, 199, 200, 200, 200, 201, 201, 202, 202, - 203, 204, 205, 206, 207, 207, 208, 209, 209, 210, - 210, 211, 211, 212, 212, 212, 212 + 189, 189, 189, 189, 189, 189, 189, 189, 190, 191, + 192, 192, 192, 192, 193, 193, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 195, 194, 194, 194, + 194, 196, 196, 196, 196, 197, 197, 197, 197, 197, + 198, 198, 199, 199, 200, 200, 201, 202, 202, 202, + 203, 203, 204, 204, 205, 206, 207, 208, 209, 209, + 210, 211, 211, 212, 212, 213, 213, 214, 214, 214, + 214 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1122,17 +1142,18 @@ static const yytype_uint8 yyr2[] = 6, 4, 5, 3, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3, 3, 3, 3, 1, 3, 2, 2, 3, 3, 1, 3, 2, 2, 3, 3, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, - 5, 4, 2, 2, 1, 1, 1, 1, 5, 2, - 1, 2, 3, 1, 2, 1, 1, 1, 1, 1, - 1, 4, 4, 5, 5, 1, 1, 3, 4, 3, - 4, 4, 4, 4, 4, 1, 2, 2, 1, 2, - 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, - 3, 4, 0, 6, 1, 1, 1, 3, 2, 4, - 3, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 1, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 2, 2, 4, 2, 1, 3, 1, - 3, 1, 3, 1, 1, 1, 1 + 2, 2, 2, 2, 2, 2, 2, 2, 4, 3, + 3, 4, 2, 2, 2, 2, 1, 1, 1, 1, + 5, 2, 1, 2, 4, 4, 3, 1, 2, 1, + 1, 1, 1, 1, 1, 4, 4, 5, 5, 1, + 1, 3, 4, 3, 4, 4, 4, 4, 4, 1, + 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, + 3, 1, 3, 1, 3, 4, 0, 6, 1, 1, + 1, 3, 2, 4, 3, 3, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, + 2, 1, 3, 1, 3, 1, 3, 1, 1, 1, + 1 }; typedef enum { @@ -1174,13 +1195,14 @@ static const toketypes yy_type_tab[] = toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval + toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval }; /* Generated from: - * fe008713888439604cbf82f172e7a2abd6c268a1fc97055ec5b3fff4d5e8ed3d perly.y + * a79c404183cf0d524710cc4f8e0c487685978f3f71a46fb8a4fd8c7d7ce137c3 perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro: */ diff --git a/perly.y b/perly.y index 023dcb091375..34cd54ec24e0 100644 --- a/perly.y +++ b/perly.y @@ -100,6 +100,7 @@ %type sigelem siglist optsiglist subsigguts subsignature optsubsignature %type subbody optsubbody sigsubbody optsigsubbody %type formstmtseq formline formarg +%type anonymous_sub_declaration anonymous_sigsub_declaration %nonassoc PREC_LOW %nonassoc LOOPEX @@ -1152,18 +1153,32 @@ termunop : PERLY_MINUS term %prec UMINUS /* -$x */ ; +anonymous_sub_declaration + : startanonsub proto subattrlist subbody + { + SvREFCNT_inc_simple_void(PL_compcv); + $$ = newANONATTRSUB($startanonsub, $proto, $subattrlist, $subbody); + } + ; + +anonymous_sigsub_declaration + : startanonsub subattrlist sigsubbody + { + SvREFCNT_inc_simple_void(PL_compcv); + $$ = newANONATTRSUB($startanonsub, NULL, $subattrlist, $sigsubbody); + } + ; + /* Constructors for anonymous data */ anonymous : PERLY_BRACKET_OPEN optexpr PERLY_BRACKET_CLOSE { $$ = newANONLIST($optexpr); } | HASHBRACK optexpr PERLY_SEMICOLON PERLY_BRACE_CLOSE %prec PERLY_PAREN_OPEN /* { foo => "Bar" } */ { $$ = newANONHASH($optexpr); } - | ANONSUB startanonsub proto subattrlist subbody %prec PERLY_PAREN_OPEN - { SvREFCNT_inc_simple_void(PL_compcv); - $$ = newANONATTRSUB($startanonsub, $proto, $subattrlist, $subbody); } - | ANON_SIGSUB startanonsub subattrlist sigsubbody %prec PERLY_PAREN_OPEN - { SvREFCNT_inc_simple_void(PL_compcv); - $$ = newANONATTRSUB($startanonsub, NULL, $subattrlist, $sigsubbody); } + | ANONSUB anonymous_sub_declaration %prec PERLY_PAREN_OPEN + { $$ = $[anonymous_sub_declaration]; } + | ANON_SIGSUB anonymous_sigsub_declaration %prec PERLY_PAREN_OPEN + { $$ = $[anonymous_sigsub_declaration] ; } ; /* Things called with "do" */ @@ -1185,6 +1200,34 @@ term[product] : termbinop { $$ = $myattrterm; } | LOCAL term[operand] %prec UNIOP { $$ = localize($operand,0); } + | LOCAL SUB subname anonymous_sub_declaration + { + SvREFCNT_inc_simple_void(PL_compcv); + + /* "rewrite" as + * local *$subname = sub $anonymous_sub_declaration + */ + $$ = newASSIGNOP ( + OPf_STACKED, + localize (newGVREF (0, scalar ($[subname])), 0), + 0, + $[anonymous_sub_declaration] + ); + } + | LOCAL SIGSUB subname anonymous_sigsub_declaration + { + SvREFCNT_inc_simple_void(PL_compcv); + + /* "rewrite" as + * local *$subname = sub $anonymous_sigsub_declaration + */ + $$ = newASSIGNOP ( + OPf_STACKED, + localize (newGVREF (0, scalar ($[subname])), 0), + 0, + $[anonymous_sigsub_declaration] + ); + } | PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE { $$ = sawparens($expr); } | QWLIST diff --git a/t/op/local-sub.t b/t/op/local-sub.t new file mode 100644 index 000000000000..c0a7c8f84356 --- /dev/null +++ b/t/op/local-sub.t @@ -0,0 +1,36 @@ +#!./perl + +BEGIN { + chdir 't' if -d 't'; + require './test.pl'; + set_up_inc( qw(. ../lib) ); +} +plan tests => 3; + +package Local::Sub { + sub test_local_sub { 42 } + + my $got = join "-", ( + test_local_sub, + do { local sub test_local_sub { 32 }; test_local_sub }, + test_local_sub + ); + + main::is ($got, "42-32-42", "local sub overrides existing sub"); + + $got = join "-", ( + test_local_sub, + do { local sub Local::Sub::test_local_sub { 21 }; test_local_sub }, + test_local_sub + ); + + main::is ($got, "42-21-42", "local sub overrides fully qualified sub"); + + $got = join "-", ( + eval { &non_existing; } // 'before', + eval { do { local sub test_local_sub { 42 }; test_local_sub } } // 'call', + eval { &non_existing; } // 'after', + ); + + main::is ($got, "before-42-after", "local sub can locally define sub as well"); +}