From 91dfae69439d43897881e86636d2817a768a1394 Mon Sep 17 00:00:00 2001 From: Lukas Mai Date: Thu, 31 Jul 2025 23:12:18 +0200 Subject: [PATCH 1/2] move "illegal anon sub" error from toke.c to perly.y This fixes the TODO test in t/op/anonsub.t, but breaks two other tests: - t/op/anonsub.t not ok 12 - '{ $x = sub }' is illegal # Failed test 12 - '{ $x = sub }' is illegal at t/op/anonsub.t line 15 # got 'Global symbol \"$x\" requires explicit package name (did you forget to declare \"my $x\"?) at (eval 12) line 1, line 87.\nIllegal declaration of anonymous subroutine at (eval 12) line 1, at EOF\n' # expected /(?^:^Illegal declaration of anonymous subroutine at)/ - t/lib/croak.t FILE: lib/croak/toke ; line 644 PROG: no feature 'apostrophe_as_package_separator'; sub 'Hello'_he_said (_); EXPECTED: Illegal declaration of anonymous subroutine at - line 2. EXIT STATUS: != 0 GOT: Bareword found where operator expected (Missing operator before "_he_said"?) at - line 2, near "'Hello'_he_said" Illegal declaration of anonymous subroutine at - line 2, near "sub 'Hello'" Execution of - aborted due to compilation errors. EXIT STATUS: 255 not ok 247 - tick in names: initial character of sub name (no feature) # Failed test 247 - tick in names: initial character of sub name (no feature) at lib/croak/toke line 644 Since we don't immediately error out from the lexer anymore, the parser may accumulate more errors before failing with "Illegal declaration of anonymous subroutine". The tests have been changed to accomodate the new diagnostics. Fixes #5959. --- perly.act | 362 ++++---- perly.h | 128 +-- perly.tab | 2125 +++++++++++++++++++++++----------------------- perly.y | 10 +- t/lib/croak/toke | 4 +- t/op/anonsub.t | 2 +- toke.c | 7 +- 7 files changed, 1335 insertions(+), 1303 deletions(-) diff --git a/perly.act b/perly.act index 03cd049fdd6e..ac6bd19da75a 100644 --- a/perly.act +++ b/perly.act @@ -1676,15 +1676,27 @@ case 2: /* @1: %empty */ break; - case 233: /* anonymous: KW_SUB_anon_sig startanonsub subattrlist sigsubbody */ + case 233: /* anonymous: KW_SUB_anon startanonsub proto subattrlist */ #line 1263 "perly.y" + { yyerror("Illegal declaration of anonymous subroutine"); YYERROR; } + + break; + + case 234: /* anonymous: KW_SUB_anon_sig startanonsub subattrlist sigsubbody */ +#line 1265 "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 234: /* anonymous: KW_METHOD_anon startanonmethod subattrlist sigsubbody */ -#line 1266 "perly.y" + case 235: /* anonymous: KW_SUB_anon_sig startanonsub subattrlist */ +#line 1268 "perly.y" + { yyerror("Illegal declaration of anonymous subroutine"); YYERROR; } + + break; + + case 236: /* anonymous: KW_METHOD_anon startanonmethod subattrlist sigsubbody */ +#line 1270 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-2].val.ival), NULL, (ps[-1].val.opval), (ps[0].val.opval)); @@ -1692,98 +1704,104 @@ case 2: /* @1: %empty */ break; - case 235: /* termdo: KW_DO term */ -#line 1274 "perly.y" + case 237: /* anonymous: KW_METHOD_anon startanonmethod subattrlist */ +#line 1275 "perly.y" + { yyerror("Illegal declaration of anonymous subroutine"); YYERROR; } + + break; + + case 238: /* termdo: KW_DO term */ +#line 1280 "perly.y" { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));} break; - case 236: /* termdo: KW_DO block */ -#line 1276 "perly.y" + case 239: /* termdo: KW_DO block */ +#line 1282 "perly.y" { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));} break; - case 241: /* term: term PERLY_QUESTION_MARK term PERLY_COLON term */ -#line 1284 "perly.y" + case 244: /* term: term PERLY_QUESTION_MARK term PERLY_COLON term */ +#line 1290 "perly.y" { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 242: /* term: REFGEN term */ -#line 1286 "perly.y" + case 245: /* term: REFGEN term */ +#line 1292 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } break; - case 243: /* term: myattrterm */ -#line 1288 "perly.y" + case 246: /* term: myattrterm */ +#line 1294 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 244: /* term: KW_LOCAL term */ -#line 1290 "perly.y" + case 247: /* term: KW_LOCAL term */ +#line 1296 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),0); } break; - case 245: /* term: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1292 "perly.y" + case 248: /* term: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1298 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; - case 246: /* term: QWLIST */ -#line 1294 "perly.y" + case 249: /* term: QWLIST */ +#line 1300 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 247: /* term: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1296 "perly.y" + case 250: /* term: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1302 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; - case 248: /* term: scalar */ -#line 1298 "perly.y" + case 251: /* term: scalar */ +#line 1304 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 249: /* term: star */ -#line 1300 "perly.y" + case 252: /* term: star */ +#line 1306 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 250: /* term: hsh */ -#line 1302 "perly.y" + case 253: /* term: hsh */ +#line 1308 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 251: /* term: ary */ -#line 1304 "perly.y" + case 254: /* term: ary */ +#line 1310 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 252: /* term: arylen */ -#line 1306 "perly.y" + case 255: /* term: arylen */ +#line 1312 "perly.y" { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} break; - case 253: /* term: subscripted */ -#line 1308 "perly.y" + case 256: /* term: subscripted */ +#line 1314 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 254: /* term: sliceme PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1310 "perly.y" + case 257: /* term: sliceme PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1316 "perly.y" { (yyval.opval) = op_prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -1796,8 +1814,8 @@ case 2: /* @1: %empty */ break; - case 255: /* term: kvslice PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ -#line 1320 "perly.y" + case 258: /* term: kvslice PERLY_BRACKET_OPEN expr PERLY_BRACKET_CLOSE */ +#line 1326 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVASLICE, 0, @@ -1810,8 +1828,8 @@ case 2: /* @1: %empty */ break; - case 256: /* term: sliceme PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1330 "perly.y" + case 259: /* term: sliceme PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1336 "perly.y" { (yyval.opval) = op_prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -1824,8 +1842,8 @@ case 2: /* @1: %empty */ break; - case 257: /* term: kvslice PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ -#line 1340 "perly.y" + case 260: /* term: kvslice PERLY_BRACE_OPEN expr PERLY_SEMICOLON PERLY_BRACE_CLOSE */ +#line 1346 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVHSLICE, 0, @@ -1838,27 +1856,27 @@ case 2: /* @1: %empty */ break; - case 258: /* term: THING */ -#line 1350 "perly.y" + case 261: /* term: THING */ +#line 1356 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 259: /* term: amper */ -#line 1352 "perly.y" + case 262: /* term: amper */ +#line 1358 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); } break; - case 260: /* term: amper PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1354 "perly.y" + case 263: /* term: amper PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1360 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval))); } break; - case 261: /* term: amper PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1357 "perly.y" + case 264: /* term: amper PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1363 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval)))); @@ -1866,153 +1884,153 @@ case 2: /* @1: %empty */ break; - case 262: /* term: NOAMP subname optlistexpr */ -#line 1362 "perly.y" + case 265: /* term: NOAMP subname optlistexpr */ +#line 1368 "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 263: /* term: term ARROW PERLY_DOLLAR PERLY_STAR */ -#line 1366 "perly.y" + case 266: /* term: term ARROW PERLY_DOLLAR PERLY_STAR */ +#line 1372 "perly.y" { (yyval.opval) = newSVREF((ps[-3].val.opval)); } break; - case 264: /* term: term ARROW PERLY_SNAIL PERLY_STAR */ -#line 1368 "perly.y" + case 267: /* term: term ARROW PERLY_SNAIL PERLY_STAR */ +#line 1374 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 265: /* term: term ARROW PERLY_PERCENT_SIGN PERLY_STAR */ -#line 1370 "perly.y" + case 268: /* term: term ARROW PERLY_PERCENT_SIGN PERLY_STAR */ +#line 1376 "perly.y" { (yyval.opval) = newHVREF((ps[-3].val.opval)); } break; - case 266: /* term: term ARROW PERLY_AMPERSAND PERLY_STAR */ -#line 1372 "perly.y" + case 269: /* term: term ARROW PERLY_AMPERSAND PERLY_STAR */ +#line 1378 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } break; - case 267: /* term: term ARROW PERLY_STAR PERLY_STAR */ -#line 1375 "perly.y" + case 270: /* term: term ARROW PERLY_STAR PERLY_STAR */ +#line 1381 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } break; - case 268: /* term: LOOPEX */ -#line 1377 "perly.y" + case 271: /* term: LOOPEX */ +#line 1383 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); PL_hints |= HINT_BLOCK_SCOPE; } break; - case 269: /* term: LOOPEX term */ -#line 1380 "perly.y" + case 272: /* term: LOOPEX term */ +#line 1386 "perly.y" { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 270: /* term: NOTOP listexpr */ -#line 1382 "perly.y" + case 273: /* term: NOTOP listexpr */ +#line 1388 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; - case 271: /* term: UNIOP */ -#line 1384 "perly.y" + case 274: /* term: UNIOP */ +#line 1390 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 272: /* term: UNIOP block */ -#line 1386 "perly.y" + case 275: /* term: UNIOP block */ +#line 1392 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 273: /* term: UNIOP term */ -#line 1388 "perly.y" + case 276: /* term: UNIOP term */ +#line 1394 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 274: /* term: KW_REQUIRE */ -#line 1390 "perly.y" + case 277: /* term: KW_REQUIRE */ +#line 1396 "perly.y" { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } break; - case 275: /* term: KW_REQUIRE term */ -#line 1392 "perly.y" + case 278: /* term: KW_REQUIRE term */ +#line 1398 "perly.y" { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } break; - case 276: /* term: UNIOPSUB */ -#line 1394 "perly.y" + case 279: /* term: UNIOPSUB */ +#line 1400 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 277: /* term: UNIOPSUB term */ -#line 1396 "perly.y" + case 280: /* term: UNIOPSUB term */ +#line 1402 "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 278: /* term: FUNC0 */ -#line 1399 "perly.y" + case 281: /* term: FUNC0 */ +#line 1405 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 279: /* term: FUNC0 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1401 "perly.y" + case 282: /* term: FUNC0 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1407 "perly.y" { (yyval.opval) = newOP((ps[-2].val.ival), 0);} break; - case 280: /* term: FUNC0OP */ -#line 1403 "perly.y" + case 283: /* term: FUNC0OP */ +#line 1409 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 281: /* term: FUNC0OP PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1405 "perly.y" + case 284: /* term: FUNC0OP PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1411 "perly.y" { (yyval.opval) = (ps[-2].val.opval); } break; - case 282: /* term: FUNC0SUB */ -#line 1407 "perly.y" + case 285: /* term: FUNC0SUB */ +#line 1413 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 283: /* term: FUNC1 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1409 "perly.y" + case 286: /* term: FUNC1 PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1415 "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 284: /* term: FUNC1 PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1413 "perly.y" + case 287: /* term: FUNC1 PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1419 "perly.y" { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 285: /* @23: %empty */ -#line 1415 "perly.y" + case 288: /* @23: %empty */ +#line 1421 "perly.y" { if ( (ps[0].val.opval)->op_type != OP_TRANS && (ps[0].val.opval)->op_type != OP_TRANSR @@ -2026,68 +2044,68 @@ case 2: /* @1: %empty */ break; - case 286: /* term: PMFUNC @23 SUBLEXSTART listexpr optrepl SUBLEXEND */ -#line 1426 "perly.y" + case 289: /* term: PMFUNC @23 SUBLEXSTART listexpr optrepl SUBLEXEND */ +#line 1432 "perly.y" { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); } break; - case 290: /* myattrterm: KW_MY myterm myattrlist */ -#line 1435 "perly.y" + case 293: /* myattrterm: KW_MY myterm myattrlist */ +#line 1441 "perly.y" { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } break; - case 291: /* myattrterm: KW_MY myterm */ -#line 1437 "perly.y" + case 294: /* myattrterm: KW_MY myterm */ +#line 1443 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),1); } break; - case 292: /* myattrterm: KW_MY REFGEN myterm myattrlist */ -#line 1439 "perly.y" + case 295: /* myattrterm: KW_MY REFGEN myterm myattrlist */ +#line 1445 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); } break; - case 293: /* myattrterm: KW_MY REFGEN term */ -#line 1441 "perly.y" + case 296: /* myattrterm: KW_MY REFGEN term */ +#line 1447 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } break; - case 294: /* myterm: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ -#line 1446 "perly.y" + case 297: /* myterm: PERLY_PAREN_OPEN expr PERLY_PAREN_CLOSE */ +#line 1452 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; - case 295: /* myterm: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ -#line 1448 "perly.y" + case 298: /* myterm: PERLY_PAREN_OPEN PERLY_PAREN_CLOSE */ +#line 1454 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; - case 296: /* myterm: scalar */ -#line 1451 "perly.y" + case 299: /* myterm: scalar */ +#line 1457 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 297: /* myterm: hsh */ -#line 1453 "perly.y" + case 300: /* myterm: hsh */ +#line 1459 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 298: /* myterm: ary */ -#line 1455 "perly.y" + case 301: /* myterm: ary */ +#line 1461 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 299: /* fieldvar: scalar */ -#line 1460 "perly.y" + case 302: /* fieldvar: scalar */ +#line 1466 "perly.y" { (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; op_free((ps[0].val.opval)); @@ -2095,8 +2113,8 @@ case 2: /* @1: %empty */ break; - case 300: /* fieldvar: hsh */ -#line 1465 "perly.y" + case 303: /* fieldvar: hsh */ +#line 1471 "perly.y" { (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; op_free((ps[0].val.opval)); @@ -2104,8 +2122,8 @@ case 2: /* @1: %empty */ break; - case 301: /* fieldvar: ary */ -#line 1470 "perly.y" + case 304: /* fieldvar: ary */ +#line 1476 "perly.y" { (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; op_free((ps[0].val.opval)); @@ -2113,20 +2131,20 @@ case 2: /* @1: %empty */ break; - case 302: /* optfieldattrlist: COLONATTR THING */ -#line 1478 "perly.y" + case 305: /* optfieldattrlist: COLONATTR THING */ +#line 1484 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 303: /* optfieldattrlist: COLONATTR */ -#line 1480 "perly.y" + case 306: /* optfieldattrlist: COLONATTR */ +#line 1486 "perly.y" { (yyval.opval) = NULL; } break; - case 305: /* fielddecl: KW_FIELD fieldvar optfieldattrlist */ -#line 1486 "perly.y" + case 308: /* fielddecl: KW_FIELD fieldvar optfieldattrlist */ +#line 1492 "perly.y" { parser->in_my = 0; if((ps[0].val.opval)) @@ -2136,8 +2154,8 @@ case 2: /* @1: %empty */ break; - case 306: /* $@24: %empty */ -#line 1493 "perly.y" + case 309: /* $@24: %empty */ +#line 1499 "perly.y" { parser->in_my = 0; if((ps[-1].val.opval)) @@ -2148,8 +2166,8 @@ case 2: /* @1: %empty */ break; - case 307: /* fielddecl: KW_FIELD fieldvar optfieldattrlist ASSIGNOP $@24 term */ -#line 1501 "perly.y" + case 310: /* fielddecl: KW_FIELD fieldvar optfieldattrlist ASSIGNOP $@24 term */ +#line 1507 "perly.y" { class_set_field_defop((PADNAME *)(ps[-4].val.pval), (ps[-2].val.ival), (ps[0].val.opval)); LEAVE; @@ -2158,122 +2176,122 @@ case 2: /* @1: %empty */ break; - case 313: /* optrepl: PERLY_SLASH expr */ -#line 1521 "perly.y" + case 316: /* optrepl: PERLY_SLASH expr */ +#line 1527 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; - case 314: /* my_scalar: scalar */ -#line 1527 "perly.y" + case 317: /* my_scalar: scalar */ +#line 1533 "perly.y" { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } break; - case 315: /* list_of_scalars: list_of_scalars PERLY_COMMA */ -#line 1532 "perly.y" + case 318: /* list_of_scalars: list_of_scalars PERLY_COMMA */ +#line 1538 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; - case 316: /* list_of_scalars: list_of_scalars PERLY_COMMA scalar */ -#line 1534 "perly.y" + case 319: /* list_of_scalars: list_of_scalars PERLY_COMMA scalar */ +#line 1540 "perly.y" { (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 318: /* my_list_of_scalars: list_of_scalars */ -#line 1541 "perly.y" + case 321: /* my_list_of_scalars: list_of_scalars */ +#line 1547 "perly.y" { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); } break; - case 326: /* amper: PERLY_AMPERSAND indirob */ -#line 1558 "perly.y" + case 329: /* amper: PERLY_AMPERSAND indirob */ +#line 1564 "perly.y" { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 327: /* scalar: PERLY_DOLLAR indirob */ -#line 1562 "perly.y" + case 330: /* scalar: PERLY_DOLLAR indirob */ +#line 1568 "perly.y" { (yyval.opval) = newSVREF((ps[0].val.opval)); } break; - case 328: /* ary: PERLY_SNAIL indirob */ -#line 1566 "perly.y" + case 331: /* ary: PERLY_SNAIL indirob */ +#line 1572 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } break; - case 329: /* hsh: PERLY_PERCENT_SIGN indirob */ -#line 1572 "perly.y" + case 332: /* hsh: PERLY_PERCENT_SIGN indirob */ +#line 1578 "perly.y" { (yyval.opval) = newHVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } break; - case 330: /* arylen: DOLSHARP indirob */ -#line 1578 "perly.y" + case 333: /* arylen: DOLSHARP indirob */ +#line 1584 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); } break; - case 331: /* arylen: term ARROW DOLSHARP PERLY_STAR */ -#line 1580 "perly.y" + case 334: /* arylen: term ARROW DOLSHARP PERLY_STAR */ +#line 1586 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 332: /* star: PERLY_STAR indirob */ -#line 1584 "perly.y" + case 335: /* star: PERLY_STAR indirob */ +#line 1590 "perly.y" { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); } break; - case 334: /* sliceme: term ARROW PERLY_SNAIL */ -#line 1589 "perly.y" + case 337: /* sliceme: term ARROW PERLY_SNAIL */ +#line 1595 "perly.y" { (yyval.opval) = newAVREF((ps[-2].val.opval)); } break; - case 336: /* kvslice: term ARROW PERLY_PERCENT_SIGN */ -#line 1594 "perly.y" + case 339: /* kvslice: term ARROW PERLY_PERCENT_SIGN */ +#line 1600 "perly.y" { (yyval.opval) = newHVREF((ps[-2].val.opval)); } break; - case 338: /* gelem: term ARROW PERLY_STAR */ -#line 1599 "perly.y" + case 341: /* gelem: term ARROW PERLY_STAR */ +#line 1605 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); } break; - case 339: /* indirob: BAREWORD */ -#line 1604 "perly.y" + case 342: /* indirob: BAREWORD */ +#line 1610 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; - case 340: /* indirob: scalar */ -#line 1606 "perly.y" + case 343: /* indirob: scalar */ +#line 1612 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; - case 341: /* indirob: block */ -#line 1608 "perly.y" + case 344: /* indirob: block */ +#line 1614 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; - case 342: /* indirob: PRIVATEREF */ -#line 1611 "perly.y" + case 345: /* indirob: PRIVATEREF */ +#line 1617 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; @@ -2285,6 +2303,6 @@ case 2: /* @1: %empty */ /* Generated from: - * 77a59f73bcda0e12f216863101470b10051433a1712bbf7219acbd22399b8568 perly.y + * c0af31db816b03f7b0aa8c3f33f53d00fc1eb497776acea4416cd6d4f45c0f8c perly.y * f13e9c08cea6302f0c1d1f467405bd0e0880d0ea92d0669901017a7f7e94ab28 regen_perly.pl * ex: set ro ft=c: */ diff --git a/perly.h b/perly.h index 214f412c362c..83975312fbda 100644 --- a/perly.h +++ b/perly.h @@ -128,68 +128,69 @@ extern int yydebug; PLUGEXPR = 322, /* PLUGEXPR */ PLUGSTMT = 323, /* PLUGSTMT */ LABEL = 324, /* LABEL */ - LOOPEX = 325, /* LOOPEX */ - DOTDOT = 326, /* DOTDOT */ - YADAYADA = 327, /* YADAYADA */ - FUNC0 = 328, /* FUNC0 */ - FUNC1 = 329, /* FUNC1 */ - FUNC = 330, /* FUNC */ - UNIOP = 331, /* UNIOP */ - LSTOP = 332, /* LSTOP */ - BLKLSTOP = 333, /* BLKLSTOP */ - POWOP = 334, /* POWOP */ - MULOP = 335, /* MULOP */ - ADDOP = 336, /* ADDOP */ - DOLSHARP = 337, /* DOLSHARP */ - HASHBRACK = 338, /* HASHBRACK */ - NOAMP = 339, /* NOAMP */ - COLONATTR = 340, /* COLONATTR */ - FORMLBRACK = 341, /* FORMLBRACK */ - FORMRBRACK = 342, /* FORMRBRACK */ - SUBLEXSTART = 343, /* SUBLEXSTART */ - SUBLEXEND = 344, /* SUBLEXEND */ - PHASER = 345, /* PHASER */ - PREC_LOW = 346, /* PREC_LOW */ - PLUGIN_LOW_OP = 347, /* PLUGIN_LOW_OP */ - OROP = 348, /* OROP */ - PLUGIN_LOGICAL_OR_LOW_OP = 349, /* PLUGIN_LOGICAL_OR_LOW_OP */ - ANDOP = 350, /* ANDOP */ - PLUGIN_LOGICAL_AND_LOW_OP = 351, /* PLUGIN_LOGICAL_AND_LOW_OP */ - NOTOP = 352, /* NOTOP */ - ASSIGNOP = 353, /* ASSIGNOP */ - PLUGIN_ASSIGN_OP = 354, /* PLUGIN_ASSIGN_OP */ - PERLY_QUESTION_MARK = 355, /* PERLY_QUESTION_MARK */ - PERLY_COLON = 356, /* PERLY_COLON */ - OROR = 357, /* OROR */ - DORDOR = 358, /* DORDOR */ - PLUGIN_LOGICAL_OR_OP = 359, /* PLUGIN_LOGICAL_OR_OP */ - ANDAND = 360, /* ANDAND */ - PLUGIN_LOGICAL_AND_OP = 361, /* PLUGIN_LOGICAL_AND_OP */ - BITOROP = 362, /* BITOROP */ - BITANDOP = 363, /* BITANDOP */ - CHEQOP = 364, /* CHEQOP */ - NCEQOP = 365, /* NCEQOP */ - CHRELOP = 366, /* CHRELOP */ - NCRELOP = 367, /* NCRELOP */ - PLUGIN_REL_OP = 368, /* PLUGIN_REL_OP */ - SHIFTOP = 369, /* SHIFTOP */ - PLUGIN_ADD_OP = 370, /* PLUGIN_ADD_OP */ - PLUGIN_MUL_OP = 371, /* PLUGIN_MUL_OP */ - MATCHOP = 372, /* MATCHOP */ - PERLY_EXCLAMATION_MARK = 373, /* PERLY_EXCLAMATION_MARK */ - PERLY_TILDE = 374, /* PERLY_TILDE */ - UMINUS = 375, /* UMINUS */ - REFGEN = 376, /* REFGEN */ - PLUGIN_POW_OP = 377, /* PLUGIN_POW_OP */ - PREINC = 378, /* PREINC */ - PREDEC = 379, /* PREDEC */ - POSTINC = 380, /* POSTINC */ - POSTDEC = 381, /* POSTDEC */ - POSTJOIN = 382, /* POSTJOIN */ - PLUGIN_HIGH_OP = 383, /* PLUGIN_HIGH_OP */ - ARROW = 384, /* ARROW */ - PERLY_PAREN_CLOSE = 385, /* PERLY_PAREN_CLOSE */ - PERLY_PAREN_OPEN = 386 /* PERLY_PAREN_OPEN */ + PROTOTYPE = 325, /* PROTOTYPE */ + LOOPEX = 326, /* LOOPEX */ + DOTDOT = 327, /* DOTDOT */ + YADAYADA = 328, /* YADAYADA */ + FUNC0 = 329, /* FUNC0 */ + FUNC1 = 330, /* FUNC1 */ + FUNC = 331, /* FUNC */ + UNIOP = 332, /* UNIOP */ + LSTOP = 333, /* LSTOP */ + BLKLSTOP = 334, /* BLKLSTOP */ + POWOP = 335, /* POWOP */ + MULOP = 336, /* MULOP */ + ADDOP = 337, /* ADDOP */ + DOLSHARP = 338, /* DOLSHARP */ + HASHBRACK = 339, /* HASHBRACK */ + NOAMP = 340, /* NOAMP */ + COLONATTR = 341, /* COLONATTR */ + FORMLBRACK = 342, /* FORMLBRACK */ + FORMRBRACK = 343, /* FORMRBRACK */ + SUBLEXSTART = 344, /* SUBLEXSTART */ + SUBLEXEND = 345, /* SUBLEXEND */ + PHASER = 346, /* PHASER */ + PREC_LOW = 347, /* PREC_LOW */ + PLUGIN_LOW_OP = 348, /* PLUGIN_LOW_OP */ + OROP = 349, /* OROP */ + PLUGIN_LOGICAL_OR_LOW_OP = 350, /* PLUGIN_LOGICAL_OR_LOW_OP */ + ANDOP = 351, /* ANDOP */ + PLUGIN_LOGICAL_AND_LOW_OP = 352, /* PLUGIN_LOGICAL_AND_LOW_OP */ + NOTOP = 353, /* NOTOP */ + ASSIGNOP = 354, /* ASSIGNOP */ + PLUGIN_ASSIGN_OP = 355, /* PLUGIN_ASSIGN_OP */ + PERLY_QUESTION_MARK = 356, /* PERLY_QUESTION_MARK */ + PERLY_COLON = 357, /* PERLY_COLON */ + OROR = 358, /* OROR */ + DORDOR = 359, /* DORDOR */ + PLUGIN_LOGICAL_OR_OP = 360, /* PLUGIN_LOGICAL_OR_OP */ + ANDAND = 361, /* ANDAND */ + PLUGIN_LOGICAL_AND_OP = 362, /* PLUGIN_LOGICAL_AND_OP */ + BITOROP = 363, /* BITOROP */ + BITANDOP = 364, /* BITANDOP */ + CHEQOP = 365, /* CHEQOP */ + NCEQOP = 366, /* NCEQOP */ + CHRELOP = 367, /* CHRELOP */ + NCRELOP = 368, /* NCRELOP */ + PLUGIN_REL_OP = 369, /* PLUGIN_REL_OP */ + SHIFTOP = 370, /* SHIFTOP */ + PLUGIN_ADD_OP = 371, /* PLUGIN_ADD_OP */ + PLUGIN_MUL_OP = 372, /* PLUGIN_MUL_OP */ + MATCHOP = 373, /* MATCHOP */ + PERLY_EXCLAMATION_MARK = 374, /* PERLY_EXCLAMATION_MARK */ + PERLY_TILDE = 375, /* PERLY_TILDE */ + UMINUS = 376, /* UMINUS */ + REFGEN = 377, /* REFGEN */ + PLUGIN_POW_OP = 378, /* PLUGIN_POW_OP */ + PREINC = 379, /* PREINC */ + PREDEC = 380, /* PREDEC */ + POSTINC = 381, /* POSTINC */ + POSTDEC = 382, /* POSTDEC */ + POSTJOIN = 383, /* POSTJOIN */ + PLUGIN_HIGH_OP = 384, /* PLUGIN_HIGH_OP */ + ARROW = 385, /* ARROW */ + PERLY_PAREN_CLOSE = 386, /* PERLY_PAREN_CLOSE */ + PERLY_PAREN_OPEN = 387 /* PERLY_PAREN_OPEN */ }; typedef enum yytokentype yytoken_kind_t; #endif @@ -210,6 +211,7 @@ S_is_opval_token(int type) { case PLUGSTMT: case PMFUNC: case PRIVATEREF: + case PROTOTYPE: case QWLIST: case THING: case UNIOPSUB: @@ -244,6 +246,6 @@ int yyparse (void); /* Generated from: - * 77a59f73bcda0e12f216863101470b10051433a1712bbf7219acbd22399b8568 perly.y + * c0af31db816b03f7b0aa8c3f33f53d00fc1eb497776acea4416cd6d4f45c0f8c perly.y * f13e9c08cea6302f0c1d1f467405bd0e0880d0ea92d0669901017a7f7e94ab28 regen_perly.pl * ex: set ro ft=c: */ diff --git a/perly.tab b/perly.tab index d134b54b5427..e587abc747bc 100644 --- a/perly.tab +++ b/perly.tab @@ -78,181 +78,182 @@ enum yysymbol_kind_t YYSYMBOL_PLUGEXPR = 67, /* PLUGEXPR */ YYSYMBOL_PLUGSTMT = 68, /* PLUGSTMT */ YYSYMBOL_LABEL = 69, /* LABEL */ - YYSYMBOL_LOOPEX = 70, /* LOOPEX */ - YYSYMBOL_DOTDOT = 71, /* DOTDOT */ - YYSYMBOL_YADAYADA = 72, /* YADAYADA */ - YYSYMBOL_FUNC0 = 73, /* FUNC0 */ - YYSYMBOL_FUNC1 = 74, /* FUNC1 */ - YYSYMBOL_FUNC = 75, /* FUNC */ - YYSYMBOL_UNIOP = 76, /* UNIOP */ - YYSYMBOL_LSTOP = 77, /* LSTOP */ - YYSYMBOL_BLKLSTOP = 78, /* BLKLSTOP */ - YYSYMBOL_POWOP = 79, /* POWOP */ - YYSYMBOL_MULOP = 80, /* MULOP */ - YYSYMBOL_ADDOP = 81, /* ADDOP */ - YYSYMBOL_DOLSHARP = 82, /* DOLSHARP */ - YYSYMBOL_HASHBRACK = 83, /* HASHBRACK */ - YYSYMBOL_NOAMP = 84, /* NOAMP */ - YYSYMBOL_COLONATTR = 85, /* COLONATTR */ - YYSYMBOL_FORMLBRACK = 86, /* FORMLBRACK */ - YYSYMBOL_FORMRBRACK = 87, /* FORMRBRACK */ - YYSYMBOL_SUBLEXSTART = 88, /* SUBLEXSTART */ - YYSYMBOL_SUBLEXEND = 89, /* SUBLEXEND */ - YYSYMBOL_PHASER = 90, /* PHASER */ - YYSYMBOL_PREC_LOW = 91, /* PREC_LOW */ - YYSYMBOL_PLUGIN_LOW_OP = 92, /* PLUGIN_LOW_OP */ - YYSYMBOL_OROP = 93, /* OROP */ - YYSYMBOL_PLUGIN_LOGICAL_OR_LOW_OP = 94, /* PLUGIN_LOGICAL_OR_LOW_OP */ - YYSYMBOL_ANDOP = 95, /* ANDOP */ - YYSYMBOL_PLUGIN_LOGICAL_AND_LOW_OP = 96, /* PLUGIN_LOGICAL_AND_LOW_OP */ - YYSYMBOL_NOTOP = 97, /* NOTOP */ - YYSYMBOL_ASSIGNOP = 98, /* ASSIGNOP */ - YYSYMBOL_PLUGIN_ASSIGN_OP = 99, /* PLUGIN_ASSIGN_OP */ - YYSYMBOL_PERLY_QUESTION_MARK = 100, /* PERLY_QUESTION_MARK */ - YYSYMBOL_PERLY_COLON = 101, /* PERLY_COLON */ - YYSYMBOL_OROR = 102, /* OROR */ - YYSYMBOL_DORDOR = 103, /* DORDOR */ - YYSYMBOL_PLUGIN_LOGICAL_OR_OP = 104, /* PLUGIN_LOGICAL_OR_OP */ - YYSYMBOL_ANDAND = 105, /* ANDAND */ - YYSYMBOL_PLUGIN_LOGICAL_AND_OP = 106, /* PLUGIN_LOGICAL_AND_OP */ - YYSYMBOL_BITOROP = 107, /* BITOROP */ - YYSYMBOL_BITANDOP = 108, /* BITANDOP */ - YYSYMBOL_CHEQOP = 109, /* CHEQOP */ - YYSYMBOL_NCEQOP = 110, /* NCEQOP */ - YYSYMBOL_CHRELOP = 111, /* CHRELOP */ - YYSYMBOL_NCRELOP = 112, /* NCRELOP */ - YYSYMBOL_PLUGIN_REL_OP = 113, /* PLUGIN_REL_OP */ - YYSYMBOL_SHIFTOP = 114, /* SHIFTOP */ - YYSYMBOL_PLUGIN_ADD_OP = 115, /* PLUGIN_ADD_OP */ - YYSYMBOL_PLUGIN_MUL_OP = 116, /* PLUGIN_MUL_OP */ - YYSYMBOL_MATCHOP = 117, /* MATCHOP */ - YYSYMBOL_PERLY_EXCLAMATION_MARK = 118, /* PERLY_EXCLAMATION_MARK */ - YYSYMBOL_PERLY_TILDE = 119, /* PERLY_TILDE */ - YYSYMBOL_UMINUS = 120, /* UMINUS */ - YYSYMBOL_REFGEN = 121, /* REFGEN */ - YYSYMBOL_PLUGIN_POW_OP = 122, /* PLUGIN_POW_OP */ - YYSYMBOL_PREINC = 123, /* PREINC */ - YYSYMBOL_PREDEC = 124, /* PREDEC */ - YYSYMBOL_POSTINC = 125, /* POSTINC */ - YYSYMBOL_POSTDEC = 126, /* POSTDEC */ - YYSYMBOL_POSTJOIN = 127, /* POSTJOIN */ - YYSYMBOL_PLUGIN_HIGH_OP = 128, /* PLUGIN_HIGH_OP */ - YYSYMBOL_ARROW = 129, /* ARROW */ - YYSYMBOL_PERLY_PAREN_CLOSE = 130, /* PERLY_PAREN_CLOSE */ - YYSYMBOL_PERLY_PAREN_OPEN = 131, /* PERLY_PAREN_OPEN */ - YYSYMBOL_YYACCEPT = 132, /* $accept */ - YYSYMBOL_grammar = 133, /* grammar */ - YYSYMBOL_134_1 = 134, /* @1 */ - YYSYMBOL_135_2 = 135, /* @2 */ - YYSYMBOL_136_3 = 136, /* @3 */ - YYSYMBOL_137_4 = 137, /* @4 */ - YYSYMBOL_138_5 = 138, /* @5 */ - YYSYMBOL_139_6 = 139, /* @6 */ - YYSYMBOL_140_7 = 140, /* @7 */ - YYSYMBOL_sigsub_or_method_named = 141, /* sigsub_or_method_named */ - YYSYMBOL_block = 142, /* block */ - YYSYMBOL_empty = 143, /* empty */ - YYSYMBOL_formblock = 144, /* formblock */ - YYSYMBOL_remember = 145, /* remember */ - YYSYMBOL_mblock = 146, /* mblock */ - YYSYMBOL_mremember = 147, /* mremember */ - YYSYMBOL_catch_paren = 148, /* catch_paren */ - YYSYMBOL_149_8 = 149, /* $@8 */ - YYSYMBOL_150_9 = 150, /* $@9 */ - YYSYMBOL_stmtseq = 151, /* stmtseq */ - YYSYMBOL_formstmtseq = 152, /* formstmtseq */ - YYSYMBOL_fullstmt = 153, /* fullstmt */ - YYSYMBOL_labfullstmt = 154, /* labfullstmt */ - YYSYMBOL_barestmt = 155, /* barestmt */ - YYSYMBOL_156_10 = 156, /* $@10 */ - YYSYMBOL_157_11 = 157, /* $@11 */ - YYSYMBOL_158_12 = 158, /* $@12 */ - YYSYMBOL_159_13 = 159, /* $@13 */ - YYSYMBOL_160_14 = 160, /* $@14 */ - YYSYMBOL_161_15 = 161, /* $@15 */ - YYSYMBOL_162_16 = 162, /* @16 */ - YYSYMBOL_163_17 = 163, /* $@17 */ - YYSYMBOL_164_18 = 164, /* $@18 */ - YYSYMBOL_165_19 = 165, /* $@19 */ - YYSYMBOL_formline = 166, /* formline */ - YYSYMBOL_formarg = 167, /* formarg */ - YYSYMBOL_condition = 168, /* condition */ - YYSYMBOL_sideff = 169, /* sideff */ - YYSYMBOL_else = 170, /* else */ - YYSYMBOL_cont = 171, /* cont */ - YYSYMBOL_finally = 172, /* finally */ - YYSYMBOL_mintro = 173, /* mintro */ - YYSYMBOL_nexpr = 174, /* nexpr */ - YYSYMBOL_texpr = 175, /* texpr */ - YYSYMBOL_iexpr = 176, /* iexpr */ - YYSYMBOL_mexpr = 177, /* mexpr */ - YYSYMBOL_mnexpr = 178, /* mnexpr */ - YYSYMBOL_formname = 179, /* formname */ - YYSYMBOL_startsub = 180, /* startsub */ - YYSYMBOL_startanonsub = 181, /* startanonsub */ - YYSYMBOL_startanonmethod = 182, /* startanonmethod */ - YYSYMBOL_startformsub = 183, /* startformsub */ - YYSYMBOL_subname = 184, /* subname */ - YYSYMBOL_proto = 185, /* proto */ - YYSYMBOL_subattrlist = 186, /* subattrlist */ - YYSYMBOL_myattrlist = 187, /* myattrlist */ - YYSYMBOL_sigvarname = 188, /* sigvarname */ - YYSYMBOL_sigslurpsigil = 189, /* sigslurpsigil */ - YYSYMBOL_sigslurpelem = 190, /* sigslurpelem */ - YYSYMBOL_sigscalarelem = 191, /* sigscalarelem */ - YYSYMBOL_sigelem = 192, /* sigelem */ - YYSYMBOL_siglist = 193, /* siglist */ - YYSYMBOL_optsiglist = 194, /* optsiglist */ - YYSYMBOL_optsubsignature = 195, /* optsubsignature */ - YYSYMBOL_subsignature = 196, /* subsignature */ - YYSYMBOL_subsigguts = 197, /* subsigguts */ - YYSYMBOL_198_20 = 198, /* $@20 */ - YYSYMBOL_optsubbody = 199, /* optsubbody */ - YYSYMBOL_subbody = 200, /* subbody */ - YYSYMBOL_optsigsubbody = 201, /* optsigsubbody */ - YYSYMBOL_sigsubbody = 202, /* sigsubbody */ - YYSYMBOL_203_21 = 203, /* $@21 */ - YYSYMBOL_expr = 204, /* expr */ - YYSYMBOL_listexpr = 205, /* listexpr */ - YYSYMBOL_listop = 206, /* listop */ - YYSYMBOL_207_22 = 207, /* @22 */ - YYSYMBOL_methodname = 208, /* methodname */ - YYSYMBOL_subscripted = 209, /* subscripted */ - YYSYMBOL_termbinop = 210, /* termbinop */ - YYSYMBOL_termrelop = 211, /* termrelop */ - YYSYMBOL_relopchain = 212, /* relopchain */ - YYSYMBOL_termeqop = 213, /* termeqop */ - YYSYMBOL_eqopchain = 214, /* eqopchain */ - YYSYMBOL_termunop = 215, /* termunop */ - YYSYMBOL_anonymous = 216, /* anonymous */ - YYSYMBOL_termdo = 217, /* termdo */ - YYSYMBOL_term = 218, /* term */ - YYSYMBOL_219_23 = 219, /* @23 */ - YYSYMBOL_myattrterm = 220, /* myattrterm */ - YYSYMBOL_myterm = 221, /* myterm */ - YYSYMBOL_fieldvar = 222, /* fieldvar */ - YYSYMBOL_optfieldattrlist = 223, /* optfieldattrlist */ - YYSYMBOL_fielddecl = 224, /* fielddecl */ - YYSYMBOL_225_24 = 225, /* $@24 */ - YYSYMBOL_optlistexpr = 226, /* optlistexpr */ - YYSYMBOL_optexpr = 227, /* optexpr */ - YYSYMBOL_optrepl = 228, /* optrepl */ - YYSYMBOL_my_scalar = 229, /* my_scalar */ - YYSYMBOL_list_of_scalars = 230, /* list_of_scalars */ - YYSYMBOL_my_list_of_scalars = 231, /* my_list_of_scalars */ - YYSYMBOL_my_var = 232, /* my_var */ - YYSYMBOL_refgen_topic = 233, /* refgen_topic */ - YYSYMBOL_my_refgen = 234, /* my_refgen */ - YYSYMBOL_amper = 235, /* amper */ - YYSYMBOL_scalar = 236, /* scalar */ - YYSYMBOL_ary = 237, /* ary */ - YYSYMBOL_hsh = 238, /* hsh */ - YYSYMBOL_arylen = 239, /* arylen */ - YYSYMBOL_star = 240, /* star */ - YYSYMBOL_sliceme = 241, /* sliceme */ - YYSYMBOL_kvslice = 242, /* kvslice */ - YYSYMBOL_gelem = 243, /* gelem */ - YYSYMBOL_indirob = 244 /* indirob */ + YYSYMBOL_PROTOTYPE = 70, /* PROTOTYPE */ + YYSYMBOL_LOOPEX = 71, /* LOOPEX */ + YYSYMBOL_DOTDOT = 72, /* DOTDOT */ + YYSYMBOL_YADAYADA = 73, /* YADAYADA */ + YYSYMBOL_FUNC0 = 74, /* FUNC0 */ + YYSYMBOL_FUNC1 = 75, /* FUNC1 */ + YYSYMBOL_FUNC = 76, /* FUNC */ + YYSYMBOL_UNIOP = 77, /* UNIOP */ + YYSYMBOL_LSTOP = 78, /* LSTOP */ + YYSYMBOL_BLKLSTOP = 79, /* BLKLSTOP */ + YYSYMBOL_POWOP = 80, /* POWOP */ + YYSYMBOL_MULOP = 81, /* MULOP */ + YYSYMBOL_ADDOP = 82, /* ADDOP */ + YYSYMBOL_DOLSHARP = 83, /* DOLSHARP */ + YYSYMBOL_HASHBRACK = 84, /* HASHBRACK */ + YYSYMBOL_NOAMP = 85, /* NOAMP */ + YYSYMBOL_COLONATTR = 86, /* COLONATTR */ + YYSYMBOL_FORMLBRACK = 87, /* FORMLBRACK */ + YYSYMBOL_FORMRBRACK = 88, /* FORMRBRACK */ + YYSYMBOL_SUBLEXSTART = 89, /* SUBLEXSTART */ + YYSYMBOL_SUBLEXEND = 90, /* SUBLEXEND */ + YYSYMBOL_PHASER = 91, /* PHASER */ + YYSYMBOL_PREC_LOW = 92, /* PREC_LOW */ + YYSYMBOL_PLUGIN_LOW_OP = 93, /* PLUGIN_LOW_OP */ + YYSYMBOL_OROP = 94, /* OROP */ + YYSYMBOL_PLUGIN_LOGICAL_OR_LOW_OP = 95, /* PLUGIN_LOGICAL_OR_LOW_OP */ + YYSYMBOL_ANDOP = 96, /* ANDOP */ + YYSYMBOL_PLUGIN_LOGICAL_AND_LOW_OP = 97, /* PLUGIN_LOGICAL_AND_LOW_OP */ + YYSYMBOL_NOTOP = 98, /* NOTOP */ + YYSYMBOL_ASSIGNOP = 99, /* ASSIGNOP */ + YYSYMBOL_PLUGIN_ASSIGN_OP = 100, /* PLUGIN_ASSIGN_OP */ + YYSYMBOL_PERLY_QUESTION_MARK = 101, /* PERLY_QUESTION_MARK */ + YYSYMBOL_PERLY_COLON = 102, /* PERLY_COLON */ + YYSYMBOL_OROR = 103, /* OROR */ + YYSYMBOL_DORDOR = 104, /* DORDOR */ + YYSYMBOL_PLUGIN_LOGICAL_OR_OP = 105, /* PLUGIN_LOGICAL_OR_OP */ + YYSYMBOL_ANDAND = 106, /* ANDAND */ + YYSYMBOL_PLUGIN_LOGICAL_AND_OP = 107, /* PLUGIN_LOGICAL_AND_OP */ + YYSYMBOL_BITOROP = 108, /* BITOROP */ + YYSYMBOL_BITANDOP = 109, /* BITANDOP */ + YYSYMBOL_CHEQOP = 110, /* CHEQOP */ + YYSYMBOL_NCEQOP = 111, /* NCEQOP */ + YYSYMBOL_CHRELOP = 112, /* CHRELOP */ + YYSYMBOL_NCRELOP = 113, /* NCRELOP */ + YYSYMBOL_PLUGIN_REL_OP = 114, /* PLUGIN_REL_OP */ + YYSYMBOL_SHIFTOP = 115, /* SHIFTOP */ + YYSYMBOL_PLUGIN_ADD_OP = 116, /* PLUGIN_ADD_OP */ + YYSYMBOL_PLUGIN_MUL_OP = 117, /* PLUGIN_MUL_OP */ + YYSYMBOL_MATCHOP = 118, /* MATCHOP */ + YYSYMBOL_PERLY_EXCLAMATION_MARK = 119, /* PERLY_EXCLAMATION_MARK */ + YYSYMBOL_PERLY_TILDE = 120, /* PERLY_TILDE */ + YYSYMBOL_UMINUS = 121, /* UMINUS */ + YYSYMBOL_REFGEN = 122, /* REFGEN */ + YYSYMBOL_PLUGIN_POW_OP = 123, /* PLUGIN_POW_OP */ + YYSYMBOL_PREINC = 124, /* PREINC */ + YYSYMBOL_PREDEC = 125, /* PREDEC */ + YYSYMBOL_POSTINC = 126, /* POSTINC */ + YYSYMBOL_POSTDEC = 127, /* POSTDEC */ + YYSYMBOL_POSTJOIN = 128, /* POSTJOIN */ + YYSYMBOL_PLUGIN_HIGH_OP = 129, /* PLUGIN_HIGH_OP */ + YYSYMBOL_ARROW = 130, /* ARROW */ + YYSYMBOL_PERLY_PAREN_CLOSE = 131, /* PERLY_PAREN_CLOSE */ + YYSYMBOL_PERLY_PAREN_OPEN = 132, /* PERLY_PAREN_OPEN */ + YYSYMBOL_YYACCEPT = 133, /* $accept */ + YYSYMBOL_grammar = 134, /* grammar */ + YYSYMBOL_135_1 = 135, /* @1 */ + YYSYMBOL_136_2 = 136, /* @2 */ + YYSYMBOL_137_3 = 137, /* @3 */ + YYSYMBOL_138_4 = 138, /* @4 */ + YYSYMBOL_139_5 = 139, /* @5 */ + YYSYMBOL_140_6 = 140, /* @6 */ + YYSYMBOL_141_7 = 141, /* @7 */ + YYSYMBOL_sigsub_or_method_named = 142, /* sigsub_or_method_named */ + YYSYMBOL_block = 143, /* block */ + YYSYMBOL_empty = 144, /* empty */ + YYSYMBOL_formblock = 145, /* formblock */ + YYSYMBOL_remember = 146, /* remember */ + YYSYMBOL_mblock = 147, /* mblock */ + YYSYMBOL_mremember = 148, /* mremember */ + YYSYMBOL_catch_paren = 149, /* catch_paren */ + YYSYMBOL_150_8 = 150, /* $@8 */ + YYSYMBOL_151_9 = 151, /* $@9 */ + YYSYMBOL_stmtseq = 152, /* stmtseq */ + YYSYMBOL_formstmtseq = 153, /* formstmtseq */ + YYSYMBOL_fullstmt = 154, /* fullstmt */ + YYSYMBOL_labfullstmt = 155, /* labfullstmt */ + YYSYMBOL_barestmt = 156, /* barestmt */ + YYSYMBOL_157_10 = 157, /* $@10 */ + YYSYMBOL_158_11 = 158, /* $@11 */ + YYSYMBOL_159_12 = 159, /* $@12 */ + YYSYMBOL_160_13 = 160, /* $@13 */ + YYSYMBOL_161_14 = 161, /* $@14 */ + YYSYMBOL_162_15 = 162, /* $@15 */ + YYSYMBOL_163_16 = 163, /* @16 */ + YYSYMBOL_164_17 = 164, /* $@17 */ + YYSYMBOL_165_18 = 165, /* $@18 */ + YYSYMBOL_166_19 = 166, /* $@19 */ + YYSYMBOL_formline = 167, /* formline */ + YYSYMBOL_formarg = 168, /* formarg */ + YYSYMBOL_condition = 169, /* condition */ + YYSYMBOL_sideff = 170, /* sideff */ + YYSYMBOL_else = 171, /* else */ + YYSYMBOL_cont = 172, /* cont */ + YYSYMBOL_finally = 173, /* finally */ + YYSYMBOL_mintro = 174, /* mintro */ + YYSYMBOL_nexpr = 175, /* nexpr */ + YYSYMBOL_texpr = 176, /* texpr */ + YYSYMBOL_iexpr = 177, /* iexpr */ + YYSYMBOL_mexpr = 178, /* mexpr */ + YYSYMBOL_mnexpr = 179, /* mnexpr */ + YYSYMBOL_formname = 180, /* formname */ + YYSYMBOL_startsub = 181, /* startsub */ + YYSYMBOL_startanonsub = 182, /* startanonsub */ + YYSYMBOL_startanonmethod = 183, /* startanonmethod */ + YYSYMBOL_startformsub = 184, /* startformsub */ + YYSYMBOL_subname = 185, /* subname */ + YYSYMBOL_proto = 186, /* proto */ + YYSYMBOL_subattrlist = 187, /* subattrlist */ + YYSYMBOL_myattrlist = 188, /* myattrlist */ + YYSYMBOL_sigvarname = 189, /* sigvarname */ + YYSYMBOL_sigslurpsigil = 190, /* sigslurpsigil */ + YYSYMBOL_sigslurpelem = 191, /* sigslurpelem */ + YYSYMBOL_sigscalarelem = 192, /* sigscalarelem */ + YYSYMBOL_sigelem = 193, /* sigelem */ + YYSYMBOL_siglist = 194, /* siglist */ + YYSYMBOL_optsiglist = 195, /* optsiglist */ + YYSYMBOL_optsubsignature = 196, /* optsubsignature */ + YYSYMBOL_subsignature = 197, /* subsignature */ + YYSYMBOL_subsigguts = 198, /* subsigguts */ + YYSYMBOL_199_20 = 199, /* $@20 */ + YYSYMBOL_optsubbody = 200, /* optsubbody */ + YYSYMBOL_subbody = 201, /* subbody */ + YYSYMBOL_optsigsubbody = 202, /* optsigsubbody */ + YYSYMBOL_sigsubbody = 203, /* sigsubbody */ + YYSYMBOL_204_21 = 204, /* $@21 */ + YYSYMBOL_expr = 205, /* expr */ + YYSYMBOL_listexpr = 206, /* listexpr */ + YYSYMBOL_listop = 207, /* listop */ + YYSYMBOL_208_22 = 208, /* @22 */ + YYSYMBOL_methodname = 209, /* methodname */ + YYSYMBOL_subscripted = 210, /* subscripted */ + YYSYMBOL_termbinop = 211, /* termbinop */ + YYSYMBOL_termrelop = 212, /* termrelop */ + YYSYMBOL_relopchain = 213, /* relopchain */ + YYSYMBOL_termeqop = 214, /* termeqop */ + YYSYMBOL_eqopchain = 215, /* eqopchain */ + YYSYMBOL_termunop = 216, /* termunop */ + YYSYMBOL_anonymous = 217, /* anonymous */ + YYSYMBOL_termdo = 218, /* termdo */ + YYSYMBOL_term = 219, /* term */ + YYSYMBOL_220_23 = 220, /* @23 */ + YYSYMBOL_myattrterm = 221, /* myattrterm */ + YYSYMBOL_myterm = 222, /* myterm */ + YYSYMBOL_fieldvar = 223, /* fieldvar */ + YYSYMBOL_optfieldattrlist = 224, /* optfieldattrlist */ + YYSYMBOL_fielddecl = 225, /* fielddecl */ + YYSYMBOL_226_24 = 226, /* $@24 */ + YYSYMBOL_optlistexpr = 227, /* optlistexpr */ + YYSYMBOL_optexpr = 228, /* optexpr */ + YYSYMBOL_optrepl = 229, /* optrepl */ + YYSYMBOL_my_scalar = 230, /* my_scalar */ + YYSYMBOL_list_of_scalars = 231, /* list_of_scalars */ + YYSYMBOL_my_list_of_scalars = 232, /* my_list_of_scalars */ + YYSYMBOL_my_var = 233, /* my_var */ + YYSYMBOL_refgen_topic = 234, /* refgen_topic */ + YYSYMBOL_my_refgen = 235, /* my_refgen */ + YYSYMBOL_amper = 236, /* amper */ + YYSYMBOL_scalar = 237, /* scalar */ + YYSYMBOL_ary = 238, /* ary */ + YYSYMBOL_hsh = 239, /* hsh */ + YYSYMBOL_arylen = 240, /* arylen */ + YYSYMBOL_star = 241, /* star */ + YYSYMBOL_sliceme = 242, /* sliceme */ + YYSYMBOL_kvslice = 243, /* kvslice */ + YYSYMBOL_gelem = 244, /* gelem */ + YYSYMBOL_indirob = 245 /* indirob */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -261,19 +262,19 @@ typedef enum yysymbol_kind_t yysymbol_kind_t; #define YYFINAL 16 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3732 +#define YYLAST 3759 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 132 +#define YYNTOKENS 133 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 113 /* YYNRULES -- Number of rules. */ -#define YYNRULES 342 +#define YYNRULES 345 /* YYNSTATES -- Number of states. */ #define YYNSTATES 676 /* YYMAXUTOK -- Last valid token kind. */ -#define YYMAXUTOK 386 +#define YYMAXUTOK 387 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -325,7 +326,7 @@ static const yytype_uint8 yytranslate[] = 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131 + 125, 126, 127, 128, 129, 130, 131, 132 }; #if YYDEBUG @@ -355,18 +356,18 @@ static const yytype_int16 yyrline[] = 1165, 1167, 1169, 1171, 1173, 1175, 1177, 1179, 1183, 1185, 1187, 1189, 1191, 1195, 1197, 1201, 1203, 1205, 1207, 1211, 1213, 1218, 1220, 1223, 1225, 1227, 1230, 1233, 1244, 1247, - 1255, 1257, 1259, 1262, 1265, 1273, 1275, 1279, 1280, 1281, - 1282, 1283, 1285, 1287, 1289, 1291, 1293, 1295, 1297, 1299, - 1301, 1303, 1305, 1307, 1309, 1319, 1329, 1339, 1349, 1351, - 1353, 1356, 1361, 1365, 1367, 1369, 1371, 1374, 1376, 1379, - 1381, 1383, 1385, 1387, 1389, 1391, 1393, 1395, 1398, 1400, - 1402, 1404, 1406, 1408, 1412, 1415, 1414, 1427, 1428, 1429, - 1434, 1436, 1438, 1440, 1445, 1447, 1450, 1452, 1454, 1459, - 1464, 1469, 1477, 1479, 1481, 1485, 1493, 1492, 1510, 1511, - 1515, 1516, 1520, 1521, 1526, 1531, 1533, 1537, 1540, 1544, - 1545, 1546, 1549, 1550, 1553, 1554, 1557, 1561, 1565, 1571, - 1577, 1579, 1583, 1587, 1588, 1592, 1593, 1597, 1598, 1603, - 1605, 1607, 1610 + 1255, 1257, 1259, 1262, 1264, 1267, 1269, 1274, 1279, 1281, + 1285, 1286, 1287, 1288, 1289, 1291, 1293, 1295, 1297, 1299, + 1301, 1303, 1305, 1307, 1309, 1311, 1313, 1315, 1325, 1335, + 1345, 1355, 1357, 1359, 1362, 1367, 1371, 1373, 1375, 1377, + 1380, 1382, 1385, 1387, 1389, 1391, 1393, 1395, 1397, 1399, + 1401, 1404, 1406, 1408, 1410, 1412, 1414, 1418, 1421, 1420, + 1433, 1434, 1435, 1440, 1442, 1444, 1446, 1451, 1453, 1456, + 1458, 1460, 1465, 1470, 1475, 1483, 1485, 1487, 1491, 1499, + 1498, 1516, 1517, 1521, 1522, 1526, 1527, 1532, 1537, 1539, + 1543, 1546, 1550, 1551, 1552, 1555, 1556, 1559, 1560, 1563, + 1567, 1571, 1577, 1583, 1585, 1589, 1593, 1594, 1598, 1599, + 1603, 1604, 1609, 1611, 1613, 1616 }; #endif @@ -396,11 +397,11 @@ static const char *const yytname[] = "KW_SUB_named_sig", "KW_SUB_anon", "KW_SUB_anon_sig", "KW_METHOD_named", "KW_METHOD_anon", "BAREWORD", "METHCALL0", "METHCALL", "THING", "PMFUNC", "PRIVATEREF", "QWLIST", "FUNC0OP", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB", - "PLUGEXPR", "PLUGSTMT", "LABEL", "LOOPEX", "DOTDOT", "YADAYADA", "FUNC0", - "FUNC1", "FUNC", "UNIOP", "LSTOP", "BLKLSTOP", "POWOP", "MULOP", "ADDOP", - "DOLSHARP", "HASHBRACK", "NOAMP", "COLONATTR", "FORMLBRACK", - "FORMRBRACK", "SUBLEXSTART", "SUBLEXEND", "PHASER", "PREC_LOW", - "PLUGIN_LOW_OP", "OROP", "PLUGIN_LOGICAL_OR_LOW_OP", "ANDOP", + "PLUGEXPR", "PLUGSTMT", "LABEL", "PROTOTYPE", "LOOPEX", "DOTDOT", + "YADAYADA", "FUNC0", "FUNC1", "FUNC", "UNIOP", "LSTOP", "BLKLSTOP", + "POWOP", "MULOP", "ADDOP", "DOLSHARP", "HASHBRACK", "NOAMP", "COLONATTR", + "FORMLBRACK", "FORMRBRACK", "SUBLEXSTART", "SUBLEXEND", "PHASER", + "PREC_LOW", "PLUGIN_LOW_OP", "OROP", "PLUGIN_LOGICAL_OR_LOW_OP", "ANDOP", "PLUGIN_LOGICAL_AND_LOW_OP", "NOTOP", "ASSIGNOP", "PLUGIN_ASSIGN_OP", "PERLY_QUESTION_MARK", "PERLY_COLON", "OROR", "DORDOR", "PLUGIN_LOGICAL_OR_OP", "ANDAND", "PLUGIN_LOGICAL_AND_OP", "BITOROP", @@ -442,7 +443,7 @@ yysymbol_name (yysymbol_kind_t yysymbol) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-341) +#define YYTABLE_NINF (-344) #define yytable_value_is_error(Yyn) \ ((Yyn) == YYTABLE_NINF) @@ -451,74 +452,74 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - 611, -571, -571, -571, -571, -571, -571, -571, 66, -571, - 2986, 32, 1941, 1825, -571, -571, -571, -571, 116, 2986, - 116, 2986, 116, 2986, 116, 116, 2986, 16, 2986, 2266, - -571, -571, -571, -571, 116, 116, -571, -571, 63, -39, - -571, 2986, -571, -571, 2986, -31, 11, -59, 2266, 2186, - 32, 116, 2986, 87, 2986, 2986, 2986, 2986, 2986, 2986, - 2346, -571, 396, 135, -571, 4, -571, 48, 44, 58, - 71, -571, -571, -571, 3176, -571, -571, 67, 209, 274, - 308, -571, 164, 323, 420, 197, -571, -571, -571, -571, - -571, 156, 160, 141, 88, 121, 25, 122, 131, 139, - 142, 32, 266, 266, -571, 87, -571, -571, -571, 202, - -571, 87, 247, -571, 267, 447, 268, 1825, -571, -571, - -571, -571, 675, -571, 191, 849, -571, -571, -571, -571, - -571, 283, -571, 334, -571, 334, -571, -571, 3584, 3066, - 2426, 217, -571, -571, -571, 3584, -571, 3584, 246, 226, - 226, 2986, 179, 230, 2986, 192, 3584, 32, 3176, 195, - 2506, 2986, 2186, -571, 3584, 3146, -571, 135, -571, 2586, - 2986, 2986, -571, 301, -571, -571, 2986, 135, 334, 334, - 334, 237, 237, 327, -43, 2986, 2986, 2986, 2986, 2986, - 2986, 2986, 2666, -571, -571, 2986, -571, -571, 2986, 2986, - 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, - 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, 2986, - 2986, 2986, 2986, 2986, -571, -571, -571, 2986, 193, 2746, - 2986, 2986, 2986, 2986, 2986, 2986, 2986, -571, 287, 303, - 315, 265, -571, -571, -571, -571, -571, 239, 456, -571, - -571, 248, -571, -571, -571, -571, -571, -571, 341, -571, - -571, -571, -571, -571, -571, 32, -571, -571, -571, 2986, - 2986, 2986, 2986, 2986, 2986, -571, -571, -571, -571, 349, - -571, -571, -571, 349, -571, -571, -571, 371, -571, -571, - 2826, 334, 217, 43, 46, 69, -571, 171, 336, -571, - -571, -571, 226, 355, -571, -571, -571, -571, 2986, 2986, - 89, -571, -571, -571, -571, 374, 338, 293, 2986, 135, - 135, 424, -571, 2986, 430, 151, 151, -571, -571, 3280, - 26, 93, -571, 438, 3545, 3525, 3384, 334, 325, 312, - 3228, 3280, 3280, 1000, 3423, 3423, 3423, 3446, 3446, 3485, - 3506, 3525, 3525, 3545, 3545, 3564, 3603, 312, 325, 334, - 334, 108, 149, 2986, 2986, 52, 421, 432, 448, -571, - 450, 2906, 314, -571, -571, 451, 281, 97, 294, 200, - 304, 213, 313, 965, -571, -571, 431, 62, 226, 422, - -571, 389, 2986, 2986, -571, 33, -571, -571, 363, -571, - -571, -571, -571, 2026, 141, -571, 2986, 2986, 2986, 2986, - -571, -571, 440, -571, 476, -571, -571, -571, 396, -571, - -571, -571, 396, -571, -571, -571, 401, 403, 191, 21, - 470, -571, -571, -571, -571, -571, 376, -571, -571, 372, - 75, -571, 2986, -571, -571, -571, 508, -571, 235, 2986, - 496, -571, -571, 2986, -571, 378, 326, 258, -571, -571, - -571, -571, -571, -571, 512, 2986, -571, 502, -571, 503, - -571, 506, -571, 507, -571, -571, -571, -571, -571, 112, - -571, -571, 391, 396, 392, 511, 393, -571, -571, -571, - -571, -571, 398, 501, 219, -571, 2986, 405, 408, 396, - 418, 425, 1129, 419, 495, 246, -571, 541, -571, -571, - 226, 2986, 2986, -571, 24, -571, -571, -571, 545, -571, - -571, 2986, -571, 468, -571, -571, -571, 262, -571, 3332, - 2986, 549, -571, -571, 444, -571, -571, -571, -571, 548, - -571, -571, -571, 2986, 266, 266, 560, 446, -571, 2986, - 2986, 266, -571, 452, 449, -571, -571, 266, 266, -571, - -571, -571, -571, 2986, 226, -571, 556, 3176, 3176, 455, - -571, 396, -571, -571, 457, -571, -571, 499, -571, -571, - 3176, 225, 225, 511, 458, 460, 461, 247, 2986, 2986, - 266, 266, 266, -571, -571, 511, 266, 571, 476, 1245, - -571, -571, -571, -571, -571, -571, -571, 1361, -571, 266, - 464, -571, -571, -571, -571, 2986, 266, 266, -571, 577, - 479, 247, 247, 247, -571, 537, -571, -571, -571, 1477, - -571, 59, -571, 1593, -571, 2986, 480, 247, 247, -571, - 266, -571, -571, -571, 491, 32, -571, -571, 605, 539, - -571, -571, 500, 266, -571, -571, -571, 247, -571, -571, - -571, -571, -571, -571, 266, 247, 2106, -571, 1709, 225, - -571, 504, -571, -571, 266, -571 + 779, -571, -571, -571, -571, -571, -571, -571, 53, -571, + 3006, 52, 1948, 1831, -571, -571, -571, -571, 343, 3006, + 343, 3006, 343, 3006, 343, 343, 3006, 32, 3006, 2277, + -571, -571, -571, -571, 343, 343, -571, -571, 11, -51, + -571, 3006, -571, -571, 3006, -32, -25, -34, 2277, 2196, + 52, 343, 3006, -2, 3006, 3006, 3006, 3006, 3006, 3006, + 2358, -571, 395, 96, -571, 23, -571, -62, 3, 24, + 50, -571, -571, -571, 3254, -571, -571, -13, 93, 148, + 169, -571, 139, 236, 262, 145, -571, -571, -571, -571, + -571, 127, 142, 191, 73, 87, -1, 88, 97, 98, + 101, 52, 199, 199, -571, -2, -571, -571, -571, 202, + -571, -2, 197, -571, 215, 447, 224, 1831, -571, -571, + -571, -571, 675, -571, 192, 849, -571, -571, -571, -571, + -571, 242, -571, 534, -571, 534, -571, -571, 3610, 3087, + 2439, 176, -571, -571, -571, 3610, -571, 3610, 207, 186, + 186, 3006, 157, 204, 3006, 174, 3610, 52, 3254, 175, + 2520, 3006, 2196, -571, 3610, 3168, -571, 96, -571, 2601, + 3006, 3006, -571, 281, -571, -571, 3006, 96, 534, 534, + 534, 663, 663, 305, 261, 3006, 3006, 3006, 3006, 3006, + 3006, 3006, 2682, -571, -571, 3006, -571, -571, 3006, 3006, + 3006, 3006, 3006, 3006, 3006, 3006, 3006, 3006, 3006, 3006, + 3006, 3006, 3006, 3006, 3006, 3006, 3006, 3006, 3006, 3006, + 3006, 3006, 3006, 3006, -571, -571, -571, 3006, 193, 2763, + 3006, 3006, 3006, 3006, 3006, 3006, 3006, -571, 263, 266, + 267, 238, -571, -571, -571, -571, -571, 206, 456, -571, + -571, 198, -571, -571, -571, -571, -571, -571, 291, -571, + -571, -571, -571, -571, -571, 52, -571, -571, -571, 3006, + 3006, 3006, 3006, 3006, 3006, -571, -571, -571, -571, 272, + -571, -571, -571, 272, -571, -571, -571, 321, -571, -571, + 2844, 534, 176, 71, 79, 107, -571, 373, 284, -571, + -571, -571, 186, 290, -571, 15, 15, -571, 3006, 3006, + 95, -571, -571, -571, -571, 437, 270, 237, 3006, 96, + 96, 355, -571, 3006, 356, 78, 78, -571, -571, 3358, + 268, 158, -571, 451, 3571, 3551, 3410, 534, 477, 333, + 3306, 3358, 3358, 3202, 3449, 3449, 3449, 3472, 3472, 3511, + 3532, 3551, 3551, 3571, 3571, 3590, 3629, 333, 477, 534, + 534, 13, 47, 3006, 3006, 315, 349, 350, 352, -571, + 354, 2925, 255, -571, -571, 521, 289, 163, 294, 170, + 312, 200, 326, 966, -571, -571, 377, 46, 186, 338, + -571, 299, 3006, 3006, -571, 16, -571, -571, 271, -571, + -571, -571, -571, 2034, 191, -571, 3006, 3006, 3006, 3006, + -571, -571, 363, -571, 378, -571, -571, -571, 395, -571, + -571, -571, 395, -571, -571, -571, 311, 328, 192, 27, + 673, -571, -571, -571, 400, -571, 296, -571, -571, 298, + 26, -571, 3006, -571, -571, -571, 680, -571, 213, 3006, + 419, -571, -571, 3006, -571, 301, 344, 218, -571, -571, + -571, -571, -571, -571, 684, 3006, -571, 422, -571, 424, + -571, 425, -571, 435, -571, -571, -571, -571, -571, 55, + -571, -571, 318, 395, 322, 436, 325, -571, -571, -571, + -571, -571, 323, 453, 91, -571, 3006, 342, 365, 395, + 367, 368, 1129, 362, 431, 207, -571, 470, -571, -571, + 186, 3006, 3006, -571, 60, -571, -571, -571, 490, -571, + -571, 3006, -571, 412, -571, -571, -571, 256, -571, 999, + 3006, 495, -571, -571, 383, -571, -571, -571, -571, 486, + -571, -571, -571, 3006, 199, 199, 494, 384, -571, 3006, + 3006, 199, -571, 386, 388, -571, -571, 199, 199, -571, + -571, -571, -571, 3006, 186, -571, 499, 3254, 3254, 391, + -571, 395, -571, -571, 392, -571, -571, 439, -571, -571, + 3254, 134, 134, 436, 396, 393, 404, 197, 3006, 3006, + 199, 199, 199, -571, -571, 436, 199, 516, 378, 1246, + -571, -571, -571, -571, -571, -571, -571, 1363, -571, 199, + 408, -571, -571, -571, -571, 3006, 199, 199, -571, 528, + 420, 197, 197, 197, -571, 507, -571, -571, -571, 1480, + -571, 21, -571, 1597, -571, 3006, 430, 197, 197, -571, + 199, -571, -571, -571, 432, 52, -571, -571, 538, 469, + -571, -571, 433, 199, -571, -571, -571, 197, -571, -571, + -571, -571, -571, -571, 199, 197, 2115, -571, 1714, 134, + -571, 434, -571, -571, 199, -571 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -528,66 +529,66 @@ static const yytype_int16 yydefact[] = { 0, 2, 4, 6, 8, 10, 12, 14, 0, 21, 19, 0, 0, 0, 19, 139, 1, 19, 0, 19, - 0, 0, 0, 0, 0, 0, 0, 0, 274, 0, - 107, 107, 108, 287, 0, 0, 258, 285, 246, 280, - 282, 276, 107, 289, 268, 278, 0, 0, 271, 19, + 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, + 107, 107, 108, 290, 0, 0, 261, 288, 249, 283, + 285, 279, 107, 292, 271, 281, 0, 0, 274, 19, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, - 0, 310, 311, 152, 288, 253, 237, 196, 208, 197, - 215, 238, 239, 240, 155, 243, 5, 259, 248, 251, - 250, 252, 249, 0, 0, 0, 21, 7, 81, 76, + 0, 313, 314, 152, 291, 256, 240, 196, 208, 197, + 215, 241, 242, 243, 155, 246, 5, 262, 251, 254, + 253, 255, 252, 0, 0, 0, 21, 7, 81, 76, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 0, 16, 17, 36, 0, 106, 0, 19, 9, 0, 82, 0, 0, 11, 33, - 32, 28, 0, 15, 19, 0, 339, 342, 341, 340, - 326, 0, 327, 221, 329, 222, 328, 332, 244, 0, - 0, 291, 296, 298, 297, 275, 236, 235, 19, 19, - 19, 19, 0, 0, 0, 0, 277, 0, 269, 0, - 0, 19, 19, 272, 273, 287, 308, 309, 165, 248, - 0, 0, 330, 0, 110, 111, 19, 270, 223, 224, - 242, 228, 229, 247, 0, 0, 0, 0, 0, 153, + 32, 28, 0, 15, 19, 0, 342, 345, 344, 343, + 329, 0, 330, 221, 332, 222, 331, 335, 247, 0, + 0, 294, 299, 301, 300, 278, 239, 238, 19, 19, + 19, 19, 0, 0, 0, 0, 280, 0, 272, 0, + 0, 19, 19, 275, 276, 290, 311, 312, 165, 251, + 0, 0, 333, 0, 110, 111, 19, 273, 223, 224, + 245, 228, 229, 250, 0, 0, 0, 0, 0, 153, 0, 0, 0, 211, 210, 0, 218, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 226, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 0, - 0, 19, 299, 301, 300, 21, 21, 21, 0, 21, + 0, 19, 302, 304, 303, 21, 21, 21, 0, 21, 21, 0, 21, 21, 21, 21, 52, 23, 0, 74, 46, 106, 75, 42, 106, 0, 92, 67, 73, 0, 0, 0, 0, 0, 0, 72, 35, 34, 29, 119, 122, 121, 134, 119, 130, 129, 133, 135, 140, 230, - 0, 293, 0, 248, 251, 250, 295, 0, 118, 290, - 113, 112, 19, 116, 114, 21, 21, 163, 19, 0, - 0, 281, 168, 279, 283, 0, 0, 0, 0, 156, - 157, 0, 262, 0, 245, 150, 151, 148, 149, 154, + 0, 296, 0, 251, 254, 253, 298, 0, 118, 293, + 113, 112, 19, 116, 114, 235, 237, 163, 19, 0, + 0, 284, 168, 282, 286, 0, 0, 0, 0, 156, + 157, 0, 265, 0, 248, 150, 151, 148, 149, 154, 0, 0, 182, 0, 214, 220, 200, 189, 191, 193, 207, 187, 188, 0, 203, 205, 204, 201, 202, 199, 198, 219, 216, 213, 209, 212, 195, 194, 192, 206, - 190, 186, 0, 0, 0, 0, 336, 334, 338, 170, - 0, 0, 160, 171, 260, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 104, 105, 0, 0, 19, 303, - 304, 305, 0, 0, 324, 0, 325, 322, 0, 323, - 319, 320, 321, 0, 0, 21, 0, 99, 0, 0, + 190, 186, 0, 0, 0, 0, 339, 337, 341, 170, + 0, 0, 160, 171, 263, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 0, 19, 306, + 307, 308, 0, 0, 327, 0, 328, 325, 0, 326, + 322, 323, 324, 0, 0, 21, 0, 99, 0, 0, 19, 21, 0, 38, 21, 40, 93, 83, 80, 84, - 87, 86, 101, 85, 88, 120, 126, 123, 131, 247, - 0, 292, 294, 117, 21, 115, 19, 233, 234, 0, - 19, 184, 19, 284, 167, 166, 0, 231, 0, 0, - 0, 175, 181, 0, 266, 162, 0, 0, 263, 265, - 264, 267, 331, 179, 0, 19, 261, 0, 173, 0, - 254, 0, 255, 0, 18, 21, 37, 21, 44, 0, - 302, 306, 0, 102, 0, 0, 0, 314, 21, 97, + 87, 86, 101, 85, 88, 120, 126, 123, 131, 250, + 0, 295, 297, 117, 233, 115, 19, 234, 236, 0, + 19, 184, 19, 287, 167, 166, 0, 231, 0, 0, + 0, 175, 181, 0, 269, 162, 0, 0, 266, 268, + 267, 270, 334, 179, 0, 19, 264, 0, 173, 0, + 257, 0, 258, 0, 18, 21, 37, 21, 44, 0, + 305, 309, 0, 102, 0, 0, 0, 317, 21, 97, 98, 103, 0, 0, 82, 61, 0, 0, 0, 100, 0, 0, 0, 19, 0, 19, 142, 0, 43, 141, - 19, 127, 124, 132, 245, 232, 139, 136, 0, 137, - 164, 0, 312, 0, 169, 158, 185, 0, 178, 241, - 19, 0, 174, 180, 0, 176, 256, 257, 172, 0, - 68, 21, 45, 0, 0, 0, 318, 0, 317, 0, + 19, 127, 124, 132, 248, 232, 139, 136, 0, 137, + 164, 0, 315, 0, 169, 158, 185, 0, 178, 244, + 19, 0, 174, 180, 0, 176, 259, 260, 172, 0, + 68, 21, 45, 0, 0, 0, 321, 0, 320, 0, 0, 0, 55, 0, 0, 96, 96, 0, 0, 22, 25, 24, 65, 19, 19, 19, 21, 128, 125, 0, - 146, 313, 286, 183, 0, 177, 159, 0, 19, 70, - 307, 19, 19, 315, 0, 0, 0, 19, 99, 0, + 146, 316, 289, 183, 0, 177, 159, 0, 19, 70, + 310, 19, 19, 318, 0, 0, 0, 19, 99, 0, 0, 0, 0, 50, 51, 0, 0, 0, 21, 0, 145, 41, 144, 138, 19, 161, 19, 0, 19, 0, - 0, 89, 48, 49, 316, 0, 0, 0, 64, 0, + 0, 89, 48, 49, 319, 0, 0, 0, 64, 0, 0, 19, 19, 19, 26, 94, 47, 39, 143, 0, 30, 0, 69, 0, 90, 0, 0, 19, 19, 56, 0, 60, 54, 53, 0, 0, 66, 147, 0, 19, @@ -601,15 +602,15 @@ static const yytype_int16 yypgoto[] = { -571, -571, -571, -571, -571, -571, -571, -571, -571, -571, -4, -10, -571, 92, -80, -571, -571, -571, -571, -16, - -571, 613, 514, 12, -571, -571, -571, -571, -571, -571, - -571, -571, -571, -571, -571, -571, -41, -397, -570, -254, - -571, -530, -571, 41, 231, -315, -34, -571, -88, 73, - -571, -571, -78, 138, -140, 344, 357, -571, -571, -571, - 221, -571, -571, -571, -571, 134, -571, 54, 223, -571, + -571, 553, 457, 5, -571, -571, -571, -571, -571, -571, + -571, -571, -571, -571, -571, -571, 172, -397, -570, -336, + -571, -519, -571, -18, 173, -315, -91, -571, -88, 45, + -571, -571, -78, 76, -140, 286, 293, -571, -571, -571, + 155, -571, -571, -571, -571, 69, -571, -12, 153, -571, -295, -571, 9, -46, -571, -571, -571, -571, -571, -571, - -571, -571, -571, -571, -571, -571, 625, -571, -571, 519, + -571, -571, -571, -571, -571, -571, 625, -571, -571, 450, -571, -571, -571, -571, -138, -17, -571, -571, -571, -571, - 256, -571, -571, 413, 40, -23, -22, -571, -571, -571, + 187, -571, -571, 345, 40, -23, -22, -571, -571, -571, -571, -571, 61 }; @@ -636,72 +637,72 @@ static const yytype_int16 yydefgoto[] = static const yytype_int16 yytable[] = { 61, 125, 131, 167, 143, 144, 490, 87, 177, 61, - 306, 438, 613, 307, 128, 190, 128, 191, 128, 62, - 128, 128, 263, 259, 113, 146, 592, 261, 62, 161, - 128, 128, 20, 264, 323, 173, 22, 449, 322, 166, - 24, 20, 61, 86, 163, 128, 171, 128, 450, 20, - 185, 186, 187, 188, 230, 247, 231, -333, 129, -333, - 129, 62, 129, 86, 129, 129, 16, 142, 20, 184, - 243, 244, 162, 477, 129, 129, 154, 458, 484, 130, - -335, 648, -335, 134, 478, 136, 137, 324, 492, 169, - 189, 129, 155, 500, 501, 151, 152, 256, 521, 673, - 159, 17, 266, 441, 149, 167, -295, 451, 126, -294, - 170, 468, 172, 127, 282, 157, 294, 295, 649, 185, - 186, 187, 188, 541, 319, 320, 666, 86, -296, 277, - 167, -298, 20, 242, 542, 192, 251, 139, 301, 304, - 304, 166, 160, 174, 316, 317, 248, 140, 175, 297, - 189, 61, 61, 312, -297, 195, 249, 20, 128, 193, - 194, 22, 434, 310, 485, 24, 166, 196, 197, 315, - 62, 62, 126, 413, 454, -337, 415, 127, 237, 293, - 198, 554, 185, 186, 187, 188, 185, 186, 187, 188, - 185, 186, 187, 188, 325, 326, 327, 328, 229, 330, - 331, 333, 169, 362, 363, 174, 364, 279, 236, 365, - 175, 280, 239, 366, 470, 281, 240, 367, 368, 245, - 230, 383, 231, 318, 262, 401, 402, 472, 385, 419, - 420, 390, 423, 424, 585, 586, -341, 228, 375, 376, - 377, 378, 379, 380, 381, 382, 187, 188, 479, 526, - 369, 269, 246, 252, 270, 271, 272, 273, 609, 610, - 274, 416, 253, 440, 185, 186, 187, 188, 373, 490, - 254, 602, 532, 255, 620, 370, 573, 257, 418, 418, - 418, 422, 418, 418, 455, -333, 265, -333, 400, 268, - 275, 439, 304, 185, 186, 187, 188, 289, 61, 430, - 636, 432, 298, 467, 524, 300, 185, 186, 187, 188, - 308, 303, 185, 186, 187, 188, 469, 62, 309, -335, - 652, -335, 311, 321, 371, 313, 471, 446, 185, 186, - 187, 188, 448, 618, 232, 473, 233, 392, 393, 395, - 323, 403, 404, 384, 406, 407, 408, 409, 531, -102, - 389, 185, 186, 187, 188, 185, 186, 187, 188, 387, - 394, 128, -341, -341, -341, 227, 228, 641, 642, 643, - 566, 388, 456, 457, 185, 186, 187, 188, 304, 405, - 464, 401, 402, 654, 655, 411, 428, 185, 186, 187, - 188, 200, 201, 489, 502, 433, 167, 185, 186, 187, - 188, 483, 483, 667, 200, 129, 185, 186, 187, 188, - 425, 670, 494, 200, 435, 422, 499, 483, 483, 185, - 186, 187, 188, 445, 598, 597, 517, 444, 221, 222, - 522, 234, 166, 235, 223, 487, 447, 224, 225, 226, - 227, 228, 222, 449, 400, 465, 459, 223, 534, 475, - 224, 225, 226, 227, 228, 61, 223, 460, 527, 224, + 306, 438, 613, 307, 128, 20, 128, 113, 128, 62, + 128, 128, 263, 259, 154, 146, -21, 261, 62, 247, + 128, 128, 20, 264, 190, 173, 191, 592, 322, 166, + 323, 189, 61, 648, 163, 128, 171, 128, 20, 521, + 193, 194, 22, 16, 174, 161, 24, 477, 129, 175, + 129, 62, 129, 86, 129, 129, 541, 142, 478, 184, + 243, 244, 454, 449, 129, 129, 149, 542, 484, 130, + 649, 155, 230, 134, 231, 136, 137, 157, 492, 169, + -336, 129, -336, 500, 501, 151, 152, 256, 162, 673, + 159, 17, 266, 174, 230, 167, 231, 160, 175, 441, + 170, 189, 172, -298, 282, 195, 294, 295, -338, 229, + -338, 248, 277, 269, 319, 320, 270, 271, 272, 273, + 167, 249, 274, 242, 196, 197, 251, 666, 301, 304, + 304, 166, -344, 228, 316, 317, -297, -21, 485, 297, + -340, 61, 61, 312, 139, 192, 236, -299, 128, -336, + 198, -336, 434, 310, 140, -301, 166, 609, 610, 315, + 62, 62, 451, 413, 187, 188, 415, 468, 237, 293, + -338, 554, -338, 239, 470, 185, 186, 187, 188, 185, + 186, 187, 188, -300, 325, 326, 327, 328, 240, 330, + 331, 333, 169, 362, 363, 245, 364, 20, 279, 365, + 257, 22, 280, 366, 472, 24, 281, 367, 368, 246, + 252, 383, -102, 318, 262, 401, 402, 526, 385, 253, + 254, 390, 532, 255, 585, 586, 265, 268, 375, 376, + 377, 378, 379, 380, 381, 382, 275, 232, 479, 233, + 369, 618, 185, 186, 187, 188, 289, 185, 186, 187, + 188, 416, 298, 440, 185, 186, 187, 188, 373, 490, + 573, 602, 303, 234, 620, 235, 370, 300, 418, 418, + 418, 422, 418, 418, 455, 641, 642, 643, 400, 308, + 450, 439, 304, 309, 185, 186, 187, 188, 61, 430, + 636, 654, 655, 321, 524, 311, 313, 185, 186, 187, + 188, 467, 185, 186, 187, 188, 469, 62, 323, 384, + 652, 667, 387, 388, 389, 371, 86, 446, 394, 670, + 405, 20, 448, 425, 471, 411, 428, 392, 393, 395, + 458, 403, 404, 433, 406, 407, 408, 409, 473, 435, + 185, 186, 187, 188, 86, 185, 186, 187, 188, 20, + 444, 128, 185, 186, 187, 188, 531, 447, 445, 449, + 566, 126, 456, 457, 459, 460, 127, 461, 304, 462, + 464, 401, 402, 185, 186, 187, 188, 465, 185, 186, + 187, 188, 324, 489, 502, 475, 167, 480, 481, 126, + 506, 483, 483, 488, 127, 129, 185, 186, 187, 188, + 511, -21, 494, 200, 201, 422, 499, 483, 483, 504, + 185, 186, 187, 188, 598, 597, 517, 512, 516, 520, + 522, 528, 166, 530, 535, 487, 536, 537, 185, 186, + 187, 188, 419, 420, 400, 423, 424, 538, 534, 544, + 221, 222, 20, 545, 551, 61, 223, 549, 527, 224, 225, 226, 227, 228, 581, 582, 18, 185, 186, 187, - 188, 587, 20, 461, 62, 462, 22, 593, 594, 269, - 24, 480, 270, 271, 272, 273, 396, 481, 274, 185, - 186, 187, 188, 561, 488, 301, 504, 496, 506, 511, - 304, 512, 520, 503, 443, 483, 507, 516, 528, 530, - 621, 622, 623, 574, 535, 536, 625, 167, 537, 538, - 61, 544, 545, 552, 549, 548, 507, 20, 551, 634, - 571, 185, 186, 187, 188, 555, 637, 638, 556, 62, - 185, 186, 187, 188, 185, 186, 187, 188, 557, 599, - 560, 563, 565, 166, 304, 558, 570, 572, 483, 483, - 657, 575, 607, 185, 186, 187, 188, 539, 452, 540, - 577, 611, 611, 665, 576, 583, 584, 266, 600, 590, - 550, 466, 645, 589, 669, 603, 606, 605, 629, 615, - 616, 617, 633, 626, 675, 635, 630, 499, 483, 639, - 514, 185, 186, 187, 188, 185, 186, 187, 188, 640, - 653, 266, 266, 266, 1, 2, 3, 4, 5, 6, - 7, 658, 660, 614, 483, 661, 118, 266, 266, 619, - 664, 276, 671, 579, 674, 624, 431, 497, 525, 662, - 427, 659, 533, 564, 483, 668, 133, 266, 135, 513, - 569, 138, 627, 145, 147, 266, 489, 515, 292, 611, - 495, 399, 0, 0, 0, 0, 156, 0, 0, 158, + 188, 587, 20, 555, 62, 552, 22, 593, 594, 269, + 24, 565, 270, 271, 272, 273, 396, 563, 274, 185, + 186, 187, 188, 561, 560, 301, 556, 496, 557, 558, + 304, 570, 572, 503, 432, 483, 507, 575, 577, 583, + 621, 622, 623, 574, 576, 584, 625, 167, 589, 590, + 61, 600, 603, 605, 616, 548, 507, 606, 615, 634, + 571, 185, 186, 187, 188, 617, 637, 638, 626, 62, + 635, 185, 186, 187, 188, 185, 186, 187, 188, 599, + 639, 640, 645, 166, 304, 660, 661, 200, 483, 483, + 657, 653, 607, 658, 664, 674, 118, 539, 443, 540, + 619, 611, 611, 665, 276, 671, 427, 266, 431, 497, + 550, 564, 452, 513, 669, 569, 627, 515, 629, 292, + 0, 495, 633, 399, 675, 222, 630, 499, 483, 0, + 223, 0, 0, 224, 225, 226, 227, 228, 0, 0, + 0, 266, 266, 266, 200, 185, 186, 187, 188, 0, + 0, 0, 0, 614, 483, 0, 0, 266, 266, 0, + 0, 0, 0, 579, 0, 624, 0, 0, 0, 662, + 0, 659, 0, 0, 483, 668, 133, 266, 135, 0, + 0, 138, 466, 145, 147, 266, 489, 223, 0, 611, + 224, 225, 226, 227, 228, 0, 156, 0, 0, 158, 0, 0, 0, 164, 0, -13, 88, 0, 0, 0, 178, 179, 180, 181, 182, 18, 86, 0, 19, 0, 507, 20, 0, 0, 21, 22, 23, 89, 0, 24, @@ -709,14 +710,14 @@ static const yytype_int16 yytable[] = 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, - 41, 42, 43, 108, 117, 44, 0, 109, 45, 46, - 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, - 0, 0, 0, 0, 291, 110, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 55, 56, 0, 57, 0, 58, 59, - 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, - 0, 0, 0, 0, 329, 0, 0, 0, 0, 0, + 41, 42, 43, 108, 117, 0, 44, 0, 109, 45, + 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, + 53, 0, 0, 0, 291, 0, 110, 185, 186, 187, + 188, 0, 0, 54, 185, 186, 187, 188, 185, 186, + 187, 188, 1, 2, 3, 4, 5, 6, 7, -344, + -344, -344, 227, 228, 55, 56, 0, 57, 0, 58, + 59, 0, 0, 0, 514, 0, 0, 60, 0, 0, + 0, 525, 0, 0, 329, 533, 0, 0, 0, 0, 334, 0, 0, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -3, @@ -726,26 +727,26 @@ static const yytype_int16 yytable[] = 93, 94, 0, 0, 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, 37, - 0, 38, 39, 40, 41, 42, 43, 108, 117, 44, - 0, 109, 45, 46, 47, 48, 49, 50, 0, 0, - 0, 51, 52, 53, 0, 0, 0, 0, 0, 110, - 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, + 0, 38, 39, 40, 41, 42, 43, 108, 117, 0, + 44, 0, 109, 45, 46, 47, 48, 49, 50, 0, + 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, + 110, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 88, 55, 56, 0, - 57, 0, 58, 59, 0, 18, 86, 474, 19, 0, - 60, 20, 0, 0, 21, 22, 23, 89, 0, 24, - 25, 90, 91, 92, 26, 27, 93, 94, 0, 0, - 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, - 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, - 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, - 41, 42, 43, 108, 117, 44, 0, 109, 45, 46, - 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, - 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 88, 55, 56, + 0, 57, 0, 58, 59, 0, 18, 86, 474, 19, + 0, 60, 20, 0, 0, 21, 22, 23, 89, 0, + 24, 25, 90, 91, 92, 26, 27, 93, 94, 0, + 0, 95, 96, 97, 98, 0, 99, 100, 101, 102, + 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, + 107, 32, 33, 34, 35, 36, 37, 0, 38, 39, + 40, 41, 42, 43, 108, 117, 0, 44, 0, 109, + 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, + 52, 53, 0, 0, 0, 0, 0, 110, 0, 0, + 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, 529, 200, - 201, 202, 0, 55, 56, 0, 57, 0, 58, 59, - 0, 0, 203, 0, 0, 0, 60, 0, 204, 205, - 206, 453, 207, 208, 209, 210, 211, 212, 213, 214, + 201, 202, 0, 0, 0, 55, 56, 0, 57, 0, + 58, 59, 0, 0, 0, 0, 0, 0, 60, 0, + 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 0, 0, 0, 0, 223, 0, 0, 224, 225, 226, 227, 228, 88, 0, 0, 0, 0, 0, 567, 568, 0, 18, @@ -754,79 +755,68 @@ static const yytype_int16 yytable[] = 93, 94, 0, 0, 95, 96, 97, 98, 580, 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, 37, - 0, 38, 39, 40, 41, 42, 43, 108, 117, 44, - 0, 109, 45, 46, 47, 48, 49, 50, 0, 0, - 0, 51, 52, 53, 0, 0, 0, 0, 0, 110, - 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, + 0, 38, 39, 40, 41, 42, 43, 108, 117, 0, + 44, 0, 109, 45, 46, 47, 48, 49, 50, 0, + 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, + 110, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 88, 55, 56, 0, - 57, 0, 58, 59, 0, 18, 86, 628, 19, 0, - 60, 20, 0, 0, 21, 22, 23, 89, 0, 24, - 25, 90, 91, 92, 26, 27, 93, 94, 0, 0, - 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, - 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, - 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, - 41, 42, 43, 108, 117, 44, 0, 109, 45, 46, - 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, - 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, - 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 88, 55, 56, 0, 57, 0, 58, 59, - 0, 18, 86, 632, 19, 0, 60, 20, 0, 0, - 21, 22, 23, 89, 0, 24, 25, 90, 91, 92, - 26, 27, 93, 94, 0, 0, 95, 96, 97, 98, - 0, 99, 100, 101, 102, 0, 0, 103, 28, 29, - 104, 105, 106, 30, 31, 107, 32, 33, 34, 35, - 36, 37, 0, 38, 39, 40, 41, 42, 43, 108, - 117, 44, 0, 109, 45, 46, 47, 48, 49, 50, - 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, - 0, 110, 0, 0, 0, 0, 0, 0, 54, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 88, 55, - 56, 0, 57, 0, 58, 59, 0, 18, 86, 647, - 19, 0, 60, 20, 0, 0, 21, 22, 23, 89, - 0, 24, 25, 90, 91, 92, 26, 27, 93, 94, - 0, 0, 95, 96, 97, 98, 0, 99, 100, 101, - 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, - 31, 107, 32, 33, 34, 35, 36, 37, 0, 38, - 39, 40, 41, 42, 43, 108, 117, 44, 0, 109, + 0, 0, 0, 0, 0, 0, 0, 88, 55, 56, + 0, 57, 0, 58, 59, 0, 18, 86, 628, 19, + 0, 60, 20, 0, 0, 21, 22, 23, 89, 0, + 24, 25, 90, 91, 92, 26, 27, 93, 94, 0, + 0, 95, 96, 97, 98, 0, 99, 100, 101, 102, + 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, + 107, 32, 33, 34, 35, 36, 37, 0, 38, 39, + 40, 41, 42, 43, 108, 117, 0, 44, 0, 109, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 55, 56, 0, 57, 0, - 58, 59, 0, 18, 86, 651, 19, 0, 60, 20, + 58, 59, 0, 18, 86, 632, 19, 0, 60, 20, 0, 0, 21, 22, 23, 89, 0, 24, 25, 90, 91, 92, 26, 27, 93, 94, 0, 0, 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, - 43, 108, 117, 44, 0, 109, 45, 46, 47, 48, - 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, - 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, - 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 43, 108, 117, 0, 44, 0, 109, 45, 46, 47, + 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, + 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, + 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88, 55, 56, 0, 57, 0, 58, 59, 0, 18, - 86, 0, 19, 0, 60, 20, 0, 0, 21, 22, - 23, 89, 0, 24, 25, 90, 91, 92, 26, 27, - 93, 94, 0, 0, 95, 96, 97, 98, 0, 99, - 100, 101, 102, 0, 0, 103, 28, 29, 104, 105, - 106, 30, 31, 107, 32, 33, 34, 35, 36, 37, - 0, 38, 39, 40, 41, 42, 43, 108, 117, 44, - 0, 109, 45, 46, 47, 48, 49, 50, 0, 0, - 0, 51, 52, 53, 0, 0, 672, 0, 0, 110, - 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, + 0, 88, 55, 56, 0, 57, 0, 58, 59, 0, + 18, 86, 647, 19, 0, 60, 20, 0, 0, 21, + 22, 23, 89, 0, 24, 25, 90, 91, 92, 26, + 27, 93, 94, 0, 0, 95, 96, 97, 98, 0, + 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, + 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, + 37, 0, 38, 39, 40, 41, 42, 43, 108, 117, + 0, 44, 0, 109, 45, 46, 47, 48, 49, 50, + 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, + 0, 110, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 88, 55, 56, 0, - 57, 0, 58, 59, 0, 18, 86, 0, 19, 0, - 60, 20, 0, 0, 21, 22, 23, 89, 0, 24, - 25, 90, 91, 92, 26, 27, 93, 94, 0, 0, - 95, 96, 97, 98, 0, 99, 100, 101, 102, 0, - 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, - 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, - 41, 42, 43, 108, 117, 44, 0, 109, 45, 46, + 0, 0, 0, 0, 0, 0, 0, 0, 88, 55, + 56, 0, 57, 0, 58, 59, 0, 18, 86, 651, + 19, 0, 60, 20, 0, 0, 21, 22, 23, 89, + 0, 24, 25, 90, 91, 92, 26, 27, 93, 94, + 0, 0, 95, 96, 97, 98, 0, 99, 100, 101, + 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, + 31, 107, 32, 33, 34, 35, 36, 37, 0, 38, + 39, 40, 41, 42, 43, 108, 117, 0, 44, 0, + 109, 45, 46, 47, 48, 49, 50, 0, 0, 0, + 51, 52, 53, 0, 0, 0, 0, 0, 110, 0, + 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 88, 55, 56, 0, 57, + 0, 58, 59, 0, 18, 86, 0, 19, 0, 60, + 20, 0, 0, 21, 22, 23, 89, 0, 24, 25, + 90, 91, 92, 26, 27, 93, 94, 0, 0, 95, + 96, 97, 98, 0, 99, 100, 101, 102, 0, 0, + 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, + 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, + 42, 43, 108, 117, 0, 44, 0, 109, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, - 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, + 0, 0, 672, 0, 0, 110, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 55, 56, 0, 57, 0, 58, 59, @@ -836,23 +826,35 @@ static const yytype_int16 yytable[] = 0, 99, 100, 101, 102, 0, 0, 103, 28, 29, 104, 105, 106, 30, 31, 107, 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, 108, - 0, 44, 0, 109, 45, 46, 47, 48, 49, 50, - 0, 0, 0, 51, 52, 53, 0, 88, 0, 0, - 0, 110, 0, 0, 0, 0, 18, 0, 54, 19, - 0, 0, 20, 0, 0, 21, 22, 23, -19, 0, - 24, 25, 0, 0, 0, 26, 27, 0, 0, 55, - 56, 0, 57, 0, 58, 59, 0, 0, 0, 0, - 0, 0, 60, 28, 29, 0, 0, 0, 30, 31, - 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 0, 0, 88, 51, 52, - 53, 0, 0, 0, 0, 0, 18, 0, 0, 19, - 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, - 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, - 59, 0, 0, 28, 29, 0, 0, 60, 30, 31, - 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, + 117, 0, 44, 0, 109, 45, 46, 47, 48, 49, + 50, 0, 0, 0, 51, 52, 53, 0, 0, 0, + 0, 0, 110, 0, 0, 0, 0, 0, 0, 54, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, + 55, 56, 0, 57, 0, 58, 59, 0, 18, 86, + 0, 19, 0, 60, 20, 0, 0, 21, 22, 23, + 89, 0, 24, 25, 90, 91, 92, 26, 27, 93, + 94, 0, 0, 95, 96, 97, 98, 0, 99, 100, + 101, 102, 0, 0, 103, 28, 29, 104, 105, 106, + 30, 31, 107, 32, 33, 34, 35, 36, 37, 0, + 38, 39, 40, 41, 42, 43, 108, 0, 0, 44, + 0, 109, 45, 46, 47, 48, 49, 50, 0, 0, + 0, 51, 52, 53, 0, 88, 0, 0, 0, 110, + 0, 0, 0, 0, 18, 0, 54, 19, 0, 0, + 20, 0, 0, 21, 22, 23, -19, 0, 24, 25, + 0, 0, 0, 26, 27, 0, 0, 55, 56, 0, + 57, 0, 58, 59, 0, 0, 0, 0, 0, 0, + 60, 28, 29, 0, 0, 0, 30, 31, 0, 32, + 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, + 42, 43, 0, 0, 0, 44, 0, 0, 45, 46, + 47, 48, 49, 50, 0, 0, 88, 51, 52, 53, + 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, + 0, 20, 54, 0, 21, 22, 23, 0, 0, 24, + 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, + 0, 0, 0, 55, 56, 0, 57, 0, 58, 59, + 0, 0, 28, 29, 0, 0, 60, 30, 31, 0, + 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, + 41, 42, 43, 0, 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, 18, 86, 0, 19, 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, @@ -860,79 +862,80 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, 28, 29, 0, -19, 60, 30, 31, 0, 32, 165, 34, 35, 36, 37, 127, 38, 39, - 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, 18, 86, 0, 19, - 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, - 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, - 59, 0, 0, 28, 29, 0, 0, 60, 30, 31, - 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, 18, 0, 0, 19, - 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, - 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, - 59, 0, 0, 28, 29, 0, 0, 60, 30, 31, - 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, 18, 0, 0, 19, - 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, - 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, - 59, 0, 0, 28, 29, 0, 183, 60, 30, 31, - 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, 18, 0, 0, 19, - 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, - 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, - 59, 0, 0, 28, 29, 0, 296, 60, 30, 31, - 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, -340, 230, 0, 231, - 0, 0, -340, 54, 0, -340, -340, -340, 0, 0, - -340, -340, 0, 0, 0, -340, -340, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, - 59, 0, 0, -340, -340, 0, 314, 60, -340, -340, - 0, -340, -340, -340, -340, -340, -340, 0, -340, -340, - -340, -340, -340, -340, 0, 0, -340, 0, 0, -340, - -340, -340, -340, -340, -340, 0, 0, 0, -340, -340, - -340, 0, 0, 0, 0, 0, 18, 0, 0, 19, - 0, 0, 20, -340, 0, 21, 22, 23, 0, 0, - 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, - 0, 0, 0, 0, -340, -340, 0, -340, 0, -340, - -340, 0, 0, 28, 29, 0, 0, -340, 30, 31, - 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, 18, 0, 0, 19, - 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, - 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, - 59, 0, 0, 28, 29, 0, 332, 60, 30, 31, - 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, 18, 0, 0, 19, - 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, - 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, - 59, 0, 0, 28, 29, 0, 374, 60, 30, 31, - 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, 18, 0, 0, 19, - 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, - 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, - 59, 0, 0, 28, 29, 0, 429, 60, 30, 31, - 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, + 40, 41, 42, 43, 0, 0, 0, 44, 0, 0, + 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, + 52, 53, 0, 0, 0, 0, 0, 18, 86, 0, + 19, 0, 0, 20, 54, 0, 21, 22, 23, 0, + 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, + 0, 0, 0, 0, 0, 55, 56, 0, 57, 0, + 58, 59, 0, 0, 28, 29, 0, 0, 60, 30, + 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, + 39, 40, 41, 42, 43, 0, 0, 0, 44, 0, + 0, 45, 46, 47, 48, 49, 50, 0, 0, 0, + 51, 52, 53, 0, 0, 0, 0, 0, 18, 0, + 0, 19, 0, 0, 20, 54, 0, 21, 22, 23, + 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, + 0, 0, 0, 0, 0, 0, 55, 56, 0, 57, + 0, 58, 59, 0, 0, 28, 29, 0, 0, 60, + 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, + 38, 39, 40, 41, 42, 43, 0, 0, 0, 44, + 0, 0, 45, 46, 47, 48, 49, 50, 0, 0, + 0, 51, 52, 53, 0, 0, 0, 0, 0, 18, + 0, 0, 19, 0, 0, 20, 54, 0, 21, 22, + 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, + 0, 0, 0, 0, 0, 0, 0, 55, 56, 0, + 57, 0, 58, 59, 0, 0, 28, 29, 0, 183, + 60, 30, 31, 0, 32, 33, 34, 35, 36, 37, + 0, 38, 39, 40, 41, 42, 43, 0, 0, 0, + 44, 0, 0, 45, 46, 47, 48, 49, 50, 0, + 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, + 18, 0, 0, 19, 0, 0, 20, 54, 0, 21, + 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, + 27, 0, 0, 0, 0, 0, 0, 0, 55, 56, + 0, 57, 0, 58, 59, 0, 0, 28, 29, 0, + 296, 60, 30, 31, 0, 32, 33, 34, 35, 36, + 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, + 0, 44, 0, 0, 45, 46, 47, 48, 49, 50, + 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, + 0, -343, 230, 0, 231, 0, 0, -343, 54, 0, + -343, -343, -343, 0, 0, -343, -343, 0, 0, 0, + -343, -343, 0, 0, 0, 0, 0, 0, 0, 55, + 56, 0, 57, 0, 58, 59, 0, 0, -343, -343, + 0, 314, 60, -343, -343, 0, -343, -343, -343, -343, + -343, -343, 0, -343, -343, -343, -343, -343, -343, 0, + 0, 0, -343, 0, 0, -343, -343, -343, -343, -343, + -343, 0, 0, 0, -343, -343, -343, 0, 0, 0, + 0, 0, 18, 0, 0, 19, 0, 0, 20, -343, + 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, + 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, + -343, -343, 0, -343, 0, -343, -343, 0, 0, 28, + 29, 0, 0, -343, 30, 31, 0, 32, 33, 34, + 35, 36, 37, 0, 38, 39, 40, 41, 42, 43, + 0, 0, 0, 44, 0, 0, 45, 46, 47, 48, + 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 18, 0, 0, 19, 0, 0, 20, + 54, 0, 21, 22, 23, 0, 0, 24, 25, 0, + 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, + 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, + 28, 29, 0, 332, 60, 30, 31, 0, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 0, 0, 0, 44, 0, 0, 45, 46, 47, + 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, + 0, 0, 0, 0, 18, 0, 0, 19, 0, 0, + 20, 54, 0, 21, 22, 23, 0, 0, 24, 25, + 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, + 0, 0, 55, 56, 0, 57, 0, 58, 59, 0, + 0, 28, 29, 0, 374, 60, 30, 31, 0, 32, + 33, 34, 35, 36, 37, 0, 38, 39, 40, 41, + 42, 43, 0, 0, 0, 44, 0, 0, 45, 46, + 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, + 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, + 0, 20, 54, 0, 21, 22, 23, 0, 0, 24, + 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, + 0, 0, 0, 55, 56, 0, 57, 0, 58, 59, + 0, 0, 28, 29, 0, 429, 60, 30, 31, 0, + 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, + 41, 42, 43, 0, 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, @@ -940,146 +943,146 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, 59, 0, 0, 28, 29, 0, 463, 60, 30, 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, 18, 0, 0, 19, - 0, 0, 20, 54, 0, 21, 22, 23, 0, 0, - 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, - 59, 0, 0, 28, 29, 0, 0, 60, 30, 31, - 0, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, - 46, 47, 48, 49, 50, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, -339, 0, 0, -339, - 0, 0, -339, 54, 0, -339, -339, -339, 0, 0, - -339, -339, 0, 0, 0, -339, -339, 0, 0, 0, - 0, 0, 0, 0, 55, 56, 0, 57, 0, 58, - 59, 0, 0, -339, -339, 0, 0, 290, -339, -339, - 0, -339, -339, -339, -339, -339, -339, 0, -339, -339, - -339, -339, -339, -339, 0, 0, -339, 0, 0, -339, - -339, -339, -339, -339, -339, 0, 0, 0, -339, -339, - -339, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -339, 0, 0, 0, 199, 0, 0, - 0, 0, 0, 0, 0, 200, 201, 202, 0, 0, - 0, 0, 0, 0, -339, -339, 0, -339, 203, -339, - -339, 0, 0, 0, 204, 205, 206, -339, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 0, 0, 0, 0, 223, 199, - 0, 224, 225, 226, 227, 228, 0, 200, 201, 202, + 40, 41, 42, 43, 0, 0, 0, 44, 0, 0, + 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, + 52, 53, 0, 0, 0, 0, 0, 18, 0, 0, + 19, 0, 0, 20, 54, 0, 21, 22, 23, 0, + 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, + 0, 0, 0, 0, 0, 55, 56, 0, 57, 0, + 58, 59, 0, 0, 28, 29, 0, 0, 60, 30, + 31, 0, 32, 33, 34, 35, 36, 37, 0, 38, + 39, 40, 41, 42, 43, 0, 0, 0, 44, 0, + 0, 45, 46, 47, 48, 49, 50, 0, 0, 0, + 51, 52, 53, 0, 0, 0, 0, 0, -342, 0, + 0, -342, 0, 0, -342, 54, 0, -342, -342, -342, + 0, 0, -342, -342, 0, 0, 0, -342, -342, 0, + 0, 0, 0, 0, 0, 0, 55, 56, 0, 57, + 0, 58, 59, 0, 0, -342, -342, 0, 0, 290, + -342, -342, 0, -342, -342, -342, -342, -342, -342, 0, + -342, -342, -342, -342, -342, -342, 0, 0, 0, -342, + 0, 0, -342, -342, -342, -342, -342, -342, 0, 0, + 0, -342, -342, -342, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -342, 0, 0, 0, + 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, + 0, 0, 200, 201, 202, 0, 0, -342, -342, 0, + -342, 0, -342, -342, 0, 203, 0, 0, 0, 0, + -342, 204, 205, 206, 453, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 0, 0, 0, 0, 223, 199, 0, 224, 225, + 226, 227, 228, 0, 200, 201, 202, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, + 0, 0, 0, 204, 205, 206, 0, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 0, 0, 0, 0, 223, 199, 0, + 224, 225, 226, 227, 228, 0, 200, 201, 202, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -344, + 0, 0, 0, 0, 0, 204, 205, 206, 0, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 0, 0, 0, 0, 223, + 199, 0, 224, 225, 226, 227, 228, 0, 200, 201, + 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 204, 205, 206, + 0, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 0, 0, 0, + 0, 223, -344, 0, 224, 225, 226, 227, 228, 0, + 200, 201, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -341, 0, 0, 0, 0, 0, 204, 205, 206, 0, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 0, 0, 0, 0, - 223, 199, 0, 224, 225, 226, 227, 228, 0, 200, - 201, 202, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, - 206, 0, 207, 208, 209, 210, 211, 212, 213, 214, + 0, 0, 0, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 200, + 201, 202, 0, 223, 0, 0, 224, 225, 226, 227, + 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 200, 201, 202, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 0, 0, - 0, 0, 223, 199, 0, 224, 225, 226, 227, 228, - 0, 200, 201, 202, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 206, 0, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 0, 0, 0, 0, 223, -341, 0, 224, 225, 226, - 227, 228, 0, 200, 201, 202, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 207, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 200, 201, 202, 0, 223, 0, 0, 224, - 225, 226, 227, 228, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 200, 201, 202, 210, 211, + 0, 0, 223, 0, 0, 224, 225, 226, 227, 228, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 0, 0, 0, 0, 223, 0, 0, 224, 225, - 226, 227, 228, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 200, 201, 202, 0, 223, 0, - 0, 224, 225, 226, 227, 228, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 200, 201, 202, 0, 0, - 0, 0, 0, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 0, 200, 201, 202, 223, 0, 0, - 224, 225, 226, 227, 228, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 200, 201, 202, 0, 223, 0, - 0, 224, 225, 226, 227, 228, 216, 217, 218, 219, - 220, 221, 222, 200, 201, 202, 0, 223, 0, 0, - 224, 225, 226, 227, 228, 0, 0, 0, 218, 219, - 220, 221, 222, 200, 201, 202, 0, 223, 0, 0, - 224, 225, 226, 227, 228, 0, 0, -341, 219, 220, - 221, 222, 200, 201, 202, 0, 223, 0, 0, 224, - 225, 226, 227, 228, 0, 0, 0, 0, 219, 220, - 221, 222, 0, 0, 0, 0, 223, 0, 0, 224, - 225, 226, 227, 228, 0, 0, 0, 0, 220, 221, - 222, 0, 0, 0, 0, 223, 0, 0, 224, 225, - 226, 227, 228 + 222, 200, 201, 202, 0, 223, 0, 0, 224, 225, + 226, 227, 228, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 200, 201, 202, 0, 0, 0, 0, 0, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 0, 200, 201, 202, 223, 0, 0, 224, 225, 226, + 227, 228, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 200, 201, 202, 0, 223, 0, 0, 224, 225, + 226, 227, 228, 216, 217, 218, 219, 220, 221, 222, + 200, 201, 202, 0, 223, 0, 0, 224, 225, 226, + 227, 228, 0, 0, 0, 218, 219, 220, 221, 222, + 200, 201, 202, 0, 223, 0, 0, 224, 225, 226, + 227, 228, 0, 0, -344, 219, 220, 221, 222, 200, + 201, 202, 0, 223, 0, 0, 224, 225, 226, 227, + 228, 0, 0, 0, 0, 219, 220, 221, 222, 0, + 0, 0, 0, 223, 0, 0, 224, 225, 226, 227, + 228, 0, 0, 0, 0, 220, 221, 222, 0, 0, + 0, 0, 223, 0, 0, 224, 225, 226, 227, 228 }; static const yytype_int16 yycheck[] = { 10, 17, 19, 49, 27, 27, 403, 11, 54, 19, - 150, 306, 582, 151, 18, 11, 20, 13, 22, 10, - 24, 25, 110, 103, 12, 29, 556, 105, 19, 88, - 34, 35, 16, 111, 13, 52, 20, 13, 176, 49, - 24, 16, 52, 11, 48, 49, 50, 51, 22, 16, - 93, 94, 95, 96, 11, 30, 13, 11, 18, 13, - 20, 52, 22, 11, 24, 25, 0, 27, 16, 60, - 93, 93, 131, 11, 34, 35, 13, 25, 393, 18, - 11, 22, 13, 22, 22, 24, 25, 130, 403, 49, - 15, 51, 131, 408, 409, 34, 35, 101, 23, 669, - 131, 9, 112, 14, 31, 151, 85, 14, 56, 85, - 49, 14, 51, 61, 124, 42, 139, 139, 59, 93, - 94, 95, 96, 11, 170, 171, 656, 11, 85, 117, - 176, 85, 16, 93, 22, 131, 96, 121, 148, 149, - 150, 151, 131, 56, 161, 162, 121, 131, 61, 140, - 15, 161, 162, 157, 85, 111, 131, 16, 162, 111, - 112, 20, 302, 154, 131, 24, 176, 109, 110, 160, - 161, 162, 56, 261, 25, 11, 264, 61, 86, 139, - 109, 496, 93, 94, 95, 96, 93, 94, 95, 96, - 93, 94, 95, 96, 185, 186, 187, 188, 131, 190, - 191, 192, 162, 10, 11, 56, 13, 16, 11, 16, - 61, 20, 56, 20, 14, 24, 56, 24, 25, 131, - 11, 237, 13, 162, 22, 248, 248, 14, 238, 270, - 271, 241, 273, 274, 549, 550, 128, 129, 229, 230, - 231, 232, 233, 234, 235, 236, 95, 96, 388, 14, - 57, 32, 131, 131, 35, 36, 37, 38, 33, 34, - 41, 265, 131, 309, 93, 94, 95, 96, 228, 666, - 131, 566, 14, 131, 589, 82, 14, 11, 269, 270, - 271, 272, 273, 274, 362, 11, 39, 13, 248, 22, - 22, 308, 302, 93, 94, 95, 96, 14, 308, 290, - 615, 130, 85, 22, 442, 59, 93, 94, 95, 96, - 131, 85, 93, 94, 95, 96, 22, 308, 88, 11, - 635, 13, 130, 22, 131, 130, 22, 318, 93, 94, - 95, 96, 323, 587, 11, 22, 13, 245, 246, 247, - 13, 249, 250, 56, 252, 253, 254, 255, 22, 130, - 85, 93, 94, 95, 96, 93, 94, 95, 96, 56, - 121, 365, 125, 126, 127, 128, 129, 621, 622, 623, - 510, 56, 363, 364, 93, 94, 95, 96, 388, 131, - 371, 404, 404, 637, 638, 44, 15, 93, 94, 95, - 96, 79, 80, 403, 410, 59, 442, 93, 94, 95, - 96, 392, 393, 657, 79, 365, 93, 94, 95, 96, - 61, 665, 403, 79, 59, 406, 407, 408, 409, 93, - 94, 95, 96, 130, 564, 563, 436, 89, 116, 117, - 440, 11, 442, 13, 122, 395, 12, 125, 126, 127, - 128, 129, 117, 13, 404, 131, 25, 122, 465, 18, - 125, 126, 127, 128, 129, 465, 122, 25, 449, 125, - 126, 127, 128, 129, 544, 545, 10, 93, 94, 95, - 96, 551, 16, 25, 465, 25, 20, 557, 558, 32, - 24, 59, 35, 36, 37, 38, 30, 98, 41, 93, - 94, 95, 96, 503, 131, 505, 56, 405, 22, 98, - 510, 98, 130, 411, 130, 496, 414, 131, 12, 131, - 590, 591, 592, 530, 12, 12, 596, 563, 12, 12, - 530, 130, 130, 22, 131, 485, 434, 16, 130, 609, - 521, 93, 94, 95, 96, 130, 616, 617, 130, 530, - 93, 94, 95, 96, 93, 94, 95, 96, 130, 565, - 131, 56, 11, 563, 564, 130, 11, 89, 549, 550, - 640, 12, 578, 93, 94, 95, 96, 475, 130, 477, - 22, 581, 582, 653, 130, 15, 130, 587, 22, 130, - 488, 130, 45, 131, 664, 130, 87, 130, 604, 131, - 130, 130, 608, 22, 674, 131, 606, 588, 589, 22, - 130, 93, 94, 95, 96, 93, 94, 95, 96, 130, - 130, 621, 622, 623, 3, 4, 5, 6, 7, 8, - 9, 130, 17, 583, 615, 86, 13, 637, 638, 588, - 130, 117, 666, 541, 130, 595, 292, 406, 130, 649, - 283, 645, 130, 505, 635, 661, 21, 657, 23, 428, - 516, 26, 598, 28, 29, 665, 666, 434, 139, 669, - 404, 248, -1, -1, -1, -1, 41, -1, -1, 44, + 150, 306, 582, 151, 18, 16, 20, 12, 22, 10, + 24, 25, 110, 103, 13, 29, 11, 105, 19, 30, + 34, 35, 16, 111, 11, 52, 13, 556, 176, 49, + 13, 15, 52, 22, 48, 49, 50, 51, 16, 23, + 112, 113, 20, 0, 56, 89, 24, 11, 18, 61, + 20, 52, 22, 11, 24, 25, 11, 27, 22, 60, + 93, 93, 25, 13, 34, 35, 31, 22, 393, 18, + 59, 132, 11, 22, 13, 24, 25, 42, 403, 49, + 11, 51, 13, 408, 409, 34, 35, 101, 132, 669, + 132, 9, 112, 56, 11, 151, 13, 132, 61, 14, + 49, 15, 51, 86, 124, 112, 139, 139, 11, 132, + 13, 122, 117, 32, 170, 171, 35, 36, 37, 38, + 176, 132, 41, 93, 110, 111, 96, 656, 148, 149, + 150, 151, 129, 130, 161, 162, 86, 132, 132, 140, + 11, 161, 162, 157, 122, 132, 11, 86, 162, 11, + 110, 13, 302, 154, 132, 86, 176, 33, 34, 160, + 161, 162, 14, 261, 96, 97, 264, 14, 86, 139, + 11, 496, 13, 56, 14, 94, 95, 96, 97, 94, + 95, 96, 97, 86, 185, 186, 187, 188, 56, 190, + 191, 192, 162, 10, 11, 132, 13, 16, 16, 16, + 11, 20, 20, 20, 14, 24, 24, 24, 25, 132, + 132, 237, 131, 162, 22, 248, 248, 14, 238, 132, + 132, 241, 14, 132, 549, 550, 39, 22, 229, 230, + 231, 232, 233, 234, 235, 236, 22, 11, 388, 13, + 57, 587, 94, 95, 96, 97, 14, 94, 95, 96, + 97, 265, 86, 309, 94, 95, 96, 97, 228, 666, + 14, 566, 86, 11, 589, 13, 83, 70, 269, 270, + 271, 272, 273, 274, 362, 621, 622, 623, 248, 132, + 22, 308, 302, 89, 94, 95, 96, 97, 308, 290, + 615, 637, 638, 22, 442, 131, 131, 94, 95, 96, + 97, 22, 94, 95, 96, 97, 22, 308, 13, 56, + 635, 657, 56, 56, 86, 132, 11, 318, 122, 665, + 132, 16, 323, 61, 22, 44, 15, 245, 246, 247, + 25, 249, 250, 59, 252, 253, 254, 255, 22, 59, + 94, 95, 96, 97, 11, 94, 95, 96, 97, 16, + 90, 365, 94, 95, 96, 97, 22, 12, 131, 13, + 510, 56, 363, 364, 25, 25, 61, 25, 388, 25, + 371, 404, 404, 94, 95, 96, 97, 132, 94, 95, + 96, 97, 131, 403, 410, 18, 442, 59, 99, 56, + 22, 392, 393, 132, 61, 365, 94, 95, 96, 97, + 99, 11, 403, 80, 81, 406, 407, 408, 409, 56, + 94, 95, 96, 97, 564, 563, 436, 99, 132, 131, + 440, 12, 442, 132, 12, 395, 12, 12, 94, 95, + 96, 97, 270, 271, 404, 273, 274, 12, 465, 131, + 117, 118, 16, 131, 131, 465, 123, 132, 449, 126, + 127, 128, 129, 130, 544, 545, 10, 94, 95, 96, + 97, 551, 16, 131, 465, 22, 20, 557, 558, 32, + 24, 11, 35, 36, 37, 38, 30, 56, 41, 94, + 95, 96, 97, 503, 132, 505, 131, 405, 131, 131, + 510, 11, 90, 411, 131, 496, 414, 12, 22, 15, + 590, 591, 592, 530, 131, 131, 596, 563, 132, 131, + 530, 22, 131, 131, 131, 485, 434, 88, 132, 609, + 521, 94, 95, 96, 97, 131, 616, 617, 22, 530, + 132, 94, 95, 96, 97, 94, 95, 96, 97, 565, + 22, 131, 45, 563, 564, 17, 87, 80, 549, 550, + 640, 131, 578, 131, 131, 131, 13, 475, 131, 477, + 588, 581, 582, 653, 117, 666, 283, 587, 292, 406, + 488, 505, 131, 428, 664, 516, 598, 434, 604, 139, + -1, 404, 608, 248, 674, 118, 606, 588, 589, -1, + 123, -1, -1, 126, 127, 128, 129, 130, -1, -1, + -1, 621, 622, 623, 80, 94, 95, 96, 97, -1, + -1, -1, -1, 583, 615, -1, -1, 637, 638, -1, + -1, -1, -1, 541, -1, 595, -1, -1, -1, 649, + -1, 645, -1, -1, 635, 661, 21, 657, 23, -1, + -1, 26, 131, 28, 29, 665, 666, 123, -1, 669, + 126, 127, 128, 129, 130, -1, 41, -1, -1, 44, -1, -1, -1, 48, -1, 0, 1, -1, -1, -1, 55, 56, 57, 58, 59, 10, 11, -1, 13, -1, 598, 16, -1, -1, 19, 20, 21, 22, -1, 24, @@ -1087,14 +1090,14 @@ static const yytype_int16 yycheck[] = 35, 36, 37, 38, -1, 40, 41, 42, 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, - 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, - 75, 76, 77, 78, -1, -1, -1, 82, 83, 84, - -1, -1, -1, -1, 139, 90, -1, -1, -1, -1, - -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 118, 119, -1, 121, -1, 123, 124, - -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, - -1, -1, -1, -1, 189, -1, -1, -1, -1, -1, + 65, 66, 67, 68, 69, -1, 71, -1, 73, 74, + 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, + 85, -1, -1, -1, 139, -1, 91, 94, 95, 96, + 97, -1, -1, 98, 94, 95, 96, 97, 94, 95, + 96, 97, 3, 4, 5, 6, 7, 8, 9, 126, + 127, 128, 129, 130, 119, 120, -1, 122, -1, 124, + 125, -1, -1, -1, 131, -1, -1, 132, -1, -1, + -1, 131, -1, -1, 189, 131, -1, -1, -1, -1, 195, -1, -1, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 0, @@ -1104,403 +1107,405 @@ static const yytype_int16 yycheck[] = 31, 32, -1, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, - -1, 72, 73, 74, 75, 76, 77, 78, -1, -1, - -1, 82, 83, 84, -1, -1, -1, -1, -1, 90, - -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, + -1, 62, 63, 64, 65, 66, 67, 68, 69, -1, + 71, -1, 73, 74, 75, 76, 77, 78, 79, -1, + -1, -1, 83, 84, 85, -1, -1, -1, -1, -1, + 91, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1, 118, 119, -1, - 121, -1, 123, 124, -1, 10, 11, 12, 13, -1, - 131, 16, -1, -1, 19, 20, 21, 22, -1, 24, - 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, - 35, 36, 37, 38, -1, 40, 41, 42, 43, -1, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, - 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, - 75, 76, 77, 78, -1, -1, -1, 82, 83, 84, - -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, - -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, - -1, 71, -1, -1, -1, -1, -1, -1, 453, 79, - 80, 81, -1, 118, 119, -1, 121, -1, 123, 124, - -1, -1, 92, -1, -1, -1, 131, -1, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, - -1, -1, 122, -1, -1, 125, 126, 127, 128, 129, + -1, -1, -1, -1, -1, -1, -1, 1, 119, 120, + -1, 122, -1, 124, 125, -1, 10, 11, 12, 13, + -1, 132, 16, -1, -1, 19, 20, 21, 22, -1, + 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, + -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, + -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, + 64, 65, 66, 67, 68, 69, -1, 71, -1, 73, + 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, + 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, + -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, + -1, 72, -1, -1, -1, -1, -1, -1, 453, 80, + 81, 82, -1, -1, -1, 119, 120, -1, 122, -1, + 124, 125, -1, -1, -1, -1, -1, -1, 132, -1, + 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, + -1, -1, 123, -1, -1, 126, 127, 128, 129, 130, 1, -1, -1, -1, -1, -1, 511, 512, -1, 10, 11, 12, 13, -1, -1, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, 35, 36, 37, 38, 543, 40, 41, 42, 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, - -1, 72, 73, 74, 75, 76, 77, 78, -1, -1, - -1, 82, 83, 84, -1, -1, -1, -1, -1, 90, - -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1, 118, 119, -1, - 121, -1, 123, 124, -1, 10, 11, 12, 13, -1, - 131, 16, -1, -1, 19, 20, 21, 22, -1, 24, - 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, - 35, 36, 37, 38, -1, 40, 41, 42, 43, -1, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, - 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, - 75, 76, 77, 78, -1, -1, -1, 82, 83, 84, - -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, - -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, + -1, 62, 63, 64, 65, 66, 67, 68, 69, -1, + 71, -1, 73, 74, 75, 76, 77, 78, 79, -1, + -1, -1, 83, 84, 85, -1, -1, -1, -1, -1, + 91, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1, 118, 119, -1, 121, -1, 123, 124, - -1, 10, 11, 12, 13, -1, 131, 16, -1, -1, - 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, - 29, 30, 31, 32, -1, -1, 35, 36, 37, 38, - -1, 40, 41, 42, 43, -1, -1, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, - 69, 70, -1, 72, 73, 74, 75, 76, 77, 78, - -1, -1, -1, 82, 83, 84, -1, -1, -1, -1, - -1, 90, -1, -1, -1, -1, -1, -1, 97, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1, 118, - 119, -1, 121, -1, 123, 124, -1, 10, 11, 12, - 13, -1, 131, 16, -1, -1, 19, 20, 21, 22, - -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, - -1, -1, 35, 36, 37, 38, -1, 40, 41, 42, - 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, - 63, 64, 65, 66, 67, 68, 69, 70, -1, 72, - 73, 74, 75, 76, 77, 78, -1, -1, -1, 82, - 83, 84, -1, -1, -1, -1, -1, 90, -1, -1, - -1, -1, -1, -1, 97, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1, 119, 120, + -1, 122, -1, 124, 125, -1, 10, 11, 12, 13, + -1, 132, 16, -1, -1, 19, 20, 21, 22, -1, + 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, + -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, + -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, + 64, 65, 66, 67, 68, 69, -1, 71, -1, 73, + 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, + 84, 85, -1, -1, -1, -1, -1, 91, -1, -1, + -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1, 118, 119, -1, 121, -1, - 123, 124, -1, 10, 11, 12, 13, -1, 131, 16, + -1, -1, -1, -1, 1, 119, 120, -1, 122, -1, + 124, 125, -1, 10, 11, 12, 13, -1, 132, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, - 67, 68, 69, 70, -1, 72, 73, 74, 75, 76, - 77, 78, -1, -1, -1, 82, 83, 84, -1, -1, - -1, -1, -1, 90, -1, -1, -1, -1, -1, -1, - 97, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 67, 68, 69, -1, 71, -1, 73, 74, 75, 76, + 77, 78, 79, -1, -1, -1, 83, 84, 85, -1, + -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, + -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1, 118, 119, -1, 121, -1, 123, 124, -1, 10, - 11, -1, 13, -1, 131, 16, -1, -1, 19, 20, - 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, - 31, 32, -1, -1, 35, 36, 37, 38, -1, 40, - 41, 42, 43, -1, -1, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - -1, 62, 63, 64, 65, 66, 67, 68, 69, 70, - -1, 72, 73, 74, 75, 76, 77, 78, -1, -1, - -1, 82, 83, 84, -1, -1, 87, -1, -1, 90, - -1, -1, -1, -1, -1, -1, 97, -1, -1, -1, + -1, 1, 119, 120, -1, 122, -1, 124, 125, -1, + 10, 11, 12, 13, -1, 132, 16, -1, -1, 19, + 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, + 30, 31, 32, -1, -1, 35, 36, 37, 38, -1, + 40, 41, 42, 43, -1, -1, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, -1, 62, 63, 64, 65, 66, 67, 68, 69, + -1, 71, -1, 73, 74, 75, 76, 77, 78, 79, + -1, -1, -1, 83, 84, 85, -1, -1, -1, -1, + -1, 91, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1, 118, 119, -1, - 121, -1, 123, 124, -1, 10, 11, -1, 13, -1, - 131, 16, -1, -1, 19, 20, 21, 22, -1, 24, - 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, - 35, 36, 37, 38, -1, 40, 41, 42, 43, -1, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, - 65, 66, 67, 68, 69, 70, -1, 72, 73, 74, - 75, 76, 77, 78, -1, -1, -1, 82, 83, 84, - -1, -1, -1, -1, -1, 90, -1, -1, -1, -1, - -1, -1, 97, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 1, 119, + 120, -1, 122, -1, 124, 125, -1, 10, 11, 12, + 13, -1, 132, 16, -1, -1, 19, 20, 21, 22, + -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, + -1, -1, 35, 36, 37, 38, -1, 40, 41, 42, + 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, 68, 69, -1, 71, -1, + 73, 74, 75, 76, 77, 78, 79, -1, -1, -1, + 83, 84, 85, -1, -1, -1, -1, -1, 91, -1, + -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1, 119, 120, -1, 122, + -1, 124, 125, -1, 10, 11, -1, 13, -1, 132, + 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, 30, 31, 32, -1, -1, 35, + 36, 37, 38, -1, 40, 41, 42, 43, -1, -1, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, + 66, 67, 68, 69, -1, 71, -1, 73, 74, 75, + 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, + -1, -1, 88, -1, -1, 91, -1, -1, -1, -1, + -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1, 118, 119, -1, 121, -1, 123, 124, - -1, 10, 11, -1, 13, -1, 131, 16, -1, -1, + -1, -1, 1, 119, 120, -1, 122, -1, 124, 125, + -1, 10, 11, -1, 13, -1, 132, 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, 35, 36, 37, 38, -1, 40, 41, 42, 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, 68, - -1, 70, -1, 72, 73, 74, 75, 76, 77, 78, - -1, -1, -1, 82, 83, 84, -1, 1, -1, -1, - -1, 90, -1, -1, -1, -1, 10, -1, 97, 13, - -1, -1, 16, -1, -1, 19, 20, 21, 22, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, 118, - 119, -1, 121, -1, 123, 124, -1, -1, -1, -1, - -1, -1, 131, 47, 48, -1, -1, -1, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, 1, 82, 83, - 84, -1, -1, -1, -1, -1, 10, -1, -1, 13, - -1, -1, 16, 97, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, -1, 123, - 124, -1, -1, 47, 48, -1, -1, 131, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, 83, - 84, -1, -1, -1, -1, -1, 10, 11, -1, 13, - -1, -1, 16, 97, -1, 19, 20, 21, -1, -1, + 69, -1, 71, -1, 73, 74, 75, 76, 77, 78, + 79, -1, -1, -1, 83, 84, 85, -1, -1, -1, + -1, -1, 91, -1, -1, -1, -1, -1, -1, 98, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, + 119, 120, -1, 122, -1, 124, 125, -1, 10, 11, + -1, 13, -1, 132, 16, -1, -1, 19, 20, 21, + 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, + 32, -1, -1, 35, 36, 37, 38, -1, 40, 41, + 42, 43, -1, -1, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, + 62, 63, 64, 65, 66, 67, 68, -1, -1, 71, + -1, 73, 74, 75, 76, 77, 78, 79, -1, -1, + -1, 83, 84, 85, -1, 1, -1, -1, -1, 91, + -1, -1, -1, -1, 10, -1, 98, 13, -1, -1, + 16, -1, -1, 19, 20, 21, 22, -1, 24, 25, + -1, -1, -1, 29, 30, -1, -1, 119, 120, -1, + 122, -1, 124, 125, -1, -1, -1, -1, -1, -1, + 132, 47, 48, -1, -1, -1, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, + 66, 67, -1, -1, -1, 71, -1, -1, 74, 75, + 76, 77, 78, 79, -1, -1, 1, 83, 84, 85, + -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, + -1, 16, 98, -1, 19, 20, 21, -1, -1, 24, + 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, + -1, -1, -1, 119, 120, -1, 122, -1, 124, 125, + -1, -1, 47, 48, -1, -1, 132, 52, 53, -1, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, + 65, 66, 67, -1, -1, -1, 71, -1, -1, 74, + 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, + 85, -1, -1, -1, -1, -1, 10, 11, -1, 13, + -1, -1, 16, 98, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, -1, 123, - 124, -1, -1, 47, 48, -1, 130, 131, 52, 53, + -1, -1, -1, -1, 119, 120, -1, 122, -1, 124, + 125, -1, -1, 47, 48, -1, 131, 132, 52, 53, -1, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, 83, - 84, -1, -1, -1, -1, -1, 10, 11, -1, 13, - -1, -1, 16, 97, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, -1, 123, - 124, -1, -1, 47, 48, -1, -1, 131, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, 83, - 84, -1, -1, -1, -1, -1, 10, -1, -1, 13, - -1, -1, 16, 97, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, -1, 123, - 124, -1, -1, 47, 48, -1, -1, 131, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, 83, - 84, -1, -1, -1, -1, -1, 10, -1, -1, 13, - -1, -1, 16, 97, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, -1, 123, - 124, -1, -1, 47, 48, -1, 130, 131, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, 83, - 84, -1, -1, -1, -1, -1, 10, -1, -1, 13, - -1, -1, 16, 97, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, -1, 123, - 124, -1, -1, 47, 48, -1, 130, 131, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, 83, - 84, -1, -1, -1, -1, -1, 10, 11, -1, 13, - -1, -1, 16, 97, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, -1, 123, - 124, -1, -1, 47, 48, -1, 130, 131, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, 83, - 84, -1, -1, -1, -1, -1, 10, -1, -1, 13, - -1, -1, 16, 97, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, -1, 123, - 124, -1, -1, 47, 48, -1, -1, 131, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, 83, - 84, -1, -1, -1, -1, -1, 10, -1, -1, 13, - -1, -1, 16, 97, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, -1, 123, - 124, -1, -1, 47, 48, -1, 130, 131, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, 83, - 84, -1, -1, -1, -1, -1, 10, -1, -1, 13, - -1, -1, 16, 97, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, -1, 123, - 124, -1, -1, 47, 48, -1, 130, 131, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, 83, - 84, -1, -1, -1, -1, -1, 10, -1, -1, 13, - -1, -1, 16, 97, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, -1, 123, - 124, -1, -1, 47, 48, -1, 130, 131, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, 83, - 84, -1, -1, -1, -1, -1, 10, -1, -1, 13, - -1, -1, 16, 97, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, -1, 123, - 124, -1, -1, 47, 48, -1, 130, 131, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, 83, - 84, -1, -1, -1, -1, -1, 10, -1, -1, 13, - -1, -1, 16, 97, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, -1, 123, - 124, -1, -1, 47, 48, -1, -1, 131, 52, 53, - -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, 83, - 84, -1, -1, -1, -1, -1, 10, -1, -1, 13, - -1, -1, 16, 97, -1, 19, 20, 21, -1, -1, + 64, 65, 66, 67, -1, -1, -1, 71, -1, -1, + 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, + 84, 85, -1, -1, -1, -1, -1, 10, 11, -1, + 13, -1, -1, 16, 98, -1, 19, 20, 21, -1, + -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, + -1, -1, -1, -1, -1, 119, 120, -1, 122, -1, + 124, 125, -1, -1, 47, 48, -1, -1, 132, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, -1, -1, -1, 71, -1, + -1, 74, 75, 76, 77, 78, 79, -1, -1, -1, + 83, 84, 85, -1, -1, -1, -1, -1, 10, -1, + -1, 13, -1, -1, 16, 98, -1, 19, 20, 21, + -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, + -1, -1, -1, -1, -1, -1, 119, 120, -1, 122, + -1, 124, 125, -1, -1, 47, 48, -1, -1, 132, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, + -1, -1, 74, 75, 76, 77, 78, 79, -1, -1, + -1, 83, 84, 85, -1, -1, -1, -1, -1, 10, + -1, -1, 13, -1, -1, 16, 98, -1, 19, 20, + 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, + -1, -1, -1, -1, -1, -1, -1, 119, 120, -1, + 122, -1, 124, 125, -1, -1, 47, 48, -1, 131, + 132, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, 62, 63, 64, 65, 66, 67, -1, -1, -1, + 71, -1, -1, 74, 75, 76, 77, 78, 79, -1, + -1, -1, 83, 84, 85, -1, -1, -1, -1, -1, + 10, -1, -1, 13, -1, -1, 16, 98, -1, 19, + 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, + 30, -1, -1, -1, -1, -1, -1, -1, 119, 120, + -1, 122, -1, 124, 125, -1, -1, 47, 48, -1, + 131, 132, 52, 53, -1, 55, 56, 57, 58, 59, + 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, + -1, 71, -1, -1, 74, 75, 76, 77, 78, 79, + -1, -1, -1, 83, 84, 85, -1, -1, -1, -1, + -1, 10, 11, -1, 13, -1, -1, 16, 98, -1, + 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, + 29, 30, -1, -1, -1, -1, -1, -1, -1, 119, + 120, -1, 122, -1, 124, 125, -1, -1, 47, 48, + -1, 131, 132, 52, 53, -1, 55, 56, 57, 58, + 59, 60, -1, 62, 63, 64, 65, 66, 67, -1, + -1, -1, 71, -1, -1, 74, 75, 76, 77, 78, + 79, -1, -1, -1, 83, 84, 85, -1, -1, -1, + -1, -1, 10, -1, -1, 13, -1, -1, 16, 98, + -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, + -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, + 119, 120, -1, 122, -1, 124, 125, -1, -1, 47, + 48, -1, -1, 132, 52, 53, -1, 55, 56, 57, + 58, 59, 60, -1, 62, 63, 64, 65, 66, 67, + -1, -1, -1, 71, -1, -1, 74, 75, 76, 77, + 78, 79, -1, -1, -1, 83, 84, 85, -1, -1, + -1, -1, -1, 10, -1, -1, 13, -1, -1, 16, + 98, -1, 19, 20, 21, -1, -1, 24, 25, -1, + -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, + -1, 119, 120, -1, 122, -1, 124, 125, -1, -1, + 47, 48, -1, 131, 132, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, 62, 63, 64, 65, 66, + 67, -1, -1, -1, 71, -1, -1, 74, 75, 76, + 77, 78, 79, -1, -1, -1, 83, 84, 85, -1, + -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, + 16, 98, -1, 19, 20, 21, -1, -1, 24, 25, + -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, + -1, -1, 119, 120, -1, 122, -1, 124, 125, -1, + -1, 47, 48, -1, 131, 132, 52, 53, -1, 55, + 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, + 66, 67, -1, -1, -1, 71, -1, -1, 74, 75, + 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, + -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, + -1, 16, 98, -1, 19, 20, 21, -1, -1, 24, + 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, + -1, -1, -1, 119, 120, -1, 122, -1, 124, 125, + -1, -1, 47, 48, -1, 131, 132, 52, 53, -1, + 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, + 65, 66, 67, -1, -1, -1, 71, -1, -1, 74, + 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, + 85, -1, -1, -1, -1, -1, 10, -1, -1, 13, + -1, -1, 16, 98, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, -1, 123, - 124, -1, -1, 47, 48, -1, -1, 131, 52, 53, + -1, -1, -1, -1, 119, 120, -1, 122, -1, 124, + 125, -1, -1, 47, 48, -1, 131, 132, 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, 62, 63, - 64, 65, 66, 67, -1, -1, 70, -1, -1, 73, - 74, 75, 76, 77, 78, -1, -1, -1, 82, 83, - 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 97, -1, -1, -1, 71, -1, -1, - -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, - -1, -1, -1, -1, 118, 119, -1, 121, 92, 123, - 124, -1, -1, -1, 98, 99, 100, 131, 102, 103, + 64, 65, 66, 67, -1, -1, -1, 71, -1, -1, + 74, 75, 76, 77, 78, 79, -1, -1, -1, 83, + 84, 85, -1, -1, -1, -1, -1, 10, -1, -1, + 13, -1, -1, 16, 98, -1, 19, 20, 21, -1, + -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, + -1, -1, -1, -1, -1, 119, 120, -1, 122, -1, + 124, 125, -1, -1, 47, 48, -1, -1, 132, 52, + 53, -1, 55, 56, 57, 58, 59, 60, -1, 62, + 63, 64, 65, 66, 67, -1, -1, -1, 71, -1, + -1, 74, 75, 76, 77, 78, 79, -1, -1, -1, + 83, 84, 85, -1, -1, -1, -1, -1, 10, -1, + -1, 13, -1, -1, 16, 98, -1, 19, 20, 21, + -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, + -1, -1, -1, -1, -1, -1, 119, 120, -1, 122, + -1, 124, 125, -1, -1, 47, 48, -1, -1, 132, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + 62, 63, 64, 65, 66, 67, -1, -1, -1, 71, + -1, -1, 74, 75, 76, 77, 78, 79, -1, -1, + -1, 83, 84, 85, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, + -1, -1, -1, -1, 72, -1, -1, -1, -1, -1, + -1, -1, 80, 81, 82, -1, -1, 119, 120, -1, + 122, -1, 124, 125, -1, 93, -1, -1, -1, -1, + 132, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, -1, -1, -1, -1, 123, 72, -1, 126, 127, + 128, 129, 130, -1, 80, 81, 82, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, + -1, -1, -1, 99, 100, 101, -1, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, -1, -1, -1, -1, 123, 72, -1, + 126, 127, 128, 129, 130, -1, 80, 81, 82, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, + -1, -1, -1, -1, -1, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, -1, -1, -1, -1, 122, 71, - -1, 125, 126, 127, 128, 129, -1, 79, 80, 81, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 92, -1, -1, -1, -1, -1, 98, 99, 100, -1, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, - 122, 71, -1, 125, 126, 127, 128, 129, -1, 79, - 80, 81, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 98, 99, - 100, -1, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, -1, -1, - -1, -1, 122, 71, -1, 125, 126, 127, 128, 129, - -1, 79, 80, 81, -1, -1, -1, -1, -1, -1, + 114, 115, 116, 117, 118, -1, -1, -1, -1, 123, + 72, -1, 126, 127, 128, 129, 130, -1, 80, 81, + 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 99, 100, 101, + -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, -1, -1, -1, + -1, 123, 72, -1, 126, 127, 128, 129, 130, -1, + 80, 81, 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 100, -1, 102, 103, 104, 105, 106, 107, + -1, -1, -1, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 80, + 81, 82, -1, 123, -1, -1, 126, 127, 128, 129, + 130, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 80, 81, 82, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, -1, -1, + -1, -1, 123, -1, -1, 126, 127, 128, 129, 130, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - -1, -1, -1, -1, 122, 71, -1, 125, 126, 127, - 128, 129, -1, 79, 80, 81, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 79, 80, 81, -1, 122, -1, -1, 125, - 126, 127, 128, 129, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 79, 80, 81, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, -1, -1, -1, -1, 122, -1, -1, 125, 126, - 127, 128, 129, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 79, 80, 81, -1, 122, -1, - -1, 125, 126, 127, 128, 129, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 79, 80, 81, -1, -1, - -1, -1, -1, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, -1, 79, 80, 81, 122, -1, -1, - 125, 126, 127, 128, 129, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 79, 80, 81, -1, 122, -1, - -1, 125, 126, 127, 128, 129, 111, 112, 113, 114, - 115, 116, 117, 79, 80, 81, -1, 122, -1, -1, - 125, 126, 127, 128, 129, -1, -1, -1, 113, 114, - 115, 116, 117, 79, 80, 81, -1, 122, -1, -1, - 125, 126, 127, 128, 129, -1, -1, 113, 114, 115, - 116, 117, 79, 80, 81, -1, 122, -1, -1, 125, - 126, 127, 128, 129, -1, -1, -1, -1, 114, 115, - 116, 117, -1, -1, -1, -1, 122, -1, -1, 125, - 126, 127, 128, 129, -1, -1, -1, -1, 115, 116, - 117, -1, -1, -1, -1, 122, -1, -1, 125, 126, - 127, 128, 129 + 118, 80, 81, 82, -1, 123, -1, -1, 126, 127, + 128, 129, 130, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 80, 81, 82, -1, -1, -1, -1, -1, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 80, 81, 82, 123, -1, -1, 126, 127, 128, + 129, 130, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 80, 81, 82, -1, 123, -1, -1, 126, 127, + 128, 129, 130, 112, 113, 114, 115, 116, 117, 118, + 80, 81, 82, -1, 123, -1, -1, 126, 127, 128, + 129, 130, -1, -1, -1, 114, 115, 116, 117, 118, + 80, 81, 82, -1, 123, -1, -1, 126, 127, 128, + 129, 130, -1, -1, 114, 115, 116, 117, 118, 80, + 81, 82, -1, 123, -1, -1, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 115, 116, 117, 118, -1, + -1, -1, -1, 123, -1, -1, 126, 127, 128, 129, + 130, -1, -1, -1, -1, 116, 117, 118, -1, -1, + -1, -1, 123, -1, -1, 126, 127, 128, 129, 130 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 3, 4, 5, 6, 7, 8, 9, 133, 134, - 135, 136, 137, 138, 139, 140, 0, 145, 10, 13, + 0, 3, 4, 5, 6, 7, 8, 9, 134, 135, + 136, 137, 138, 139, 140, 141, 0, 146, 10, 13, 16, 19, 20, 21, 24, 25, 29, 30, 47, 48, 52, 53, 55, 56, 57, 58, 59, 60, 62, 63, - 64, 65, 66, 67, 70, 73, 74, 75, 76, 77, - 78, 82, 83, 84, 97, 118, 119, 121, 123, 124, - 131, 143, 204, 205, 206, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 220, 227, 235, 236, 237, - 238, 239, 240, 241, 242, 243, 11, 142, 1, 22, + 64, 65, 66, 67, 71, 74, 75, 76, 77, 78, + 79, 83, 84, 85, 98, 119, 120, 122, 124, 125, + 132, 144, 205, 206, 207, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 221, 228, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 11, 143, 1, 22, 26, 27, 28, 31, 32, 35, 36, 37, 38, 40, - 41, 42, 43, 46, 49, 50, 51, 54, 68, 72, - 90, 141, 142, 155, 169, 204, 224, 69, 153, 154, - 155, 143, 151, 197, 198, 151, 56, 61, 142, 236, - 244, 227, 244, 218, 244, 218, 244, 244, 218, 121, - 131, 221, 236, 237, 238, 218, 142, 218, 181, 181, - 182, 244, 244, 219, 13, 131, 218, 181, 218, 131, - 131, 88, 131, 142, 218, 56, 143, 205, 226, 236, - 244, 142, 244, 227, 56, 61, 184, 205, 218, 218, - 218, 218, 218, 130, 204, 93, 94, 95, 96, 15, - 11, 13, 131, 111, 112, 111, 109, 110, 109, 71, - 79, 80, 81, 92, 98, 99, 100, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 122, 125, 126, 127, 128, 129, 131, - 11, 13, 11, 13, 11, 13, 11, 145, 183, 56, - 56, 222, 236, 237, 238, 131, 131, 30, 121, 131, - 234, 236, 131, 131, 131, 131, 142, 11, 146, 146, - 180, 184, 22, 180, 184, 39, 143, 171, 22, 32, - 35, 36, 37, 38, 41, 22, 154, 155, 153, 16, - 20, 24, 143, 189, 190, 191, 192, 193, 194, 14, - 131, 218, 221, 236, 237, 238, 130, 204, 85, 187, - 59, 143, 185, 85, 143, 186, 186, 226, 131, 88, - 204, 130, 142, 130, 130, 204, 227, 227, 244, 205, - 205, 22, 226, 13, 130, 204, 204, 204, 204, 218, - 204, 204, 130, 204, 218, 218, 218, 218, 218, 218, - 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - 218, 218, 10, 11, 13, 16, 20, 24, 25, 57, - 82, 131, 208, 236, 130, 204, 204, 204, 204, 204, - 204, 204, 204, 151, 56, 143, 179, 56, 56, 85, - 143, 223, 145, 145, 121, 145, 30, 232, 233, 235, - 236, 237, 238, 145, 145, 131, 145, 145, 145, 145, - 147, 44, 159, 180, 158, 180, 142, 168, 204, 168, - 168, 176, 204, 168, 168, 61, 188, 188, 15, 130, - 204, 187, 130, 59, 186, 59, 145, 202, 202, 227, - 205, 14, 207, 130, 89, 130, 204, 12, 204, 13, - 22, 14, 130, 101, 25, 184, 204, 204, 25, 25, - 25, 25, 25, 130, 204, 131, 130, 22, 14, 22, - 14, 22, 14, 22, 12, 18, 144, 11, 22, 186, - 59, 98, 177, 204, 177, 131, 229, 236, 131, 143, - 169, 174, 177, 178, 204, 232, 145, 176, 175, 204, - 177, 177, 151, 145, 56, 156, 22, 145, 199, 200, - 157, 98, 98, 192, 130, 200, 131, 143, 195, 196, - 130, 23, 143, 228, 226, 130, 14, 204, 12, 218, - 131, 22, 14, 130, 227, 12, 12, 12, 12, 145, - 145, 11, 22, 225, 130, 130, 230, 231, 236, 131, - 145, 130, 22, 162, 177, 130, 130, 130, 130, 12, - 131, 143, 148, 56, 185, 11, 186, 218, 218, 197, - 11, 204, 89, 14, 227, 12, 130, 22, 164, 145, - 218, 146, 146, 15, 130, 177, 177, 146, 160, 131, - 130, 173, 173, 146, 146, 149, 163, 226, 186, 151, - 22, 201, 202, 130, 203, 130, 87, 151, 165, 33, - 34, 143, 170, 170, 236, 131, 130, 130, 171, 175, - 177, 146, 146, 146, 236, 146, 22, 199, 12, 151, - 143, 152, 12, 151, 146, 131, 177, 146, 146, 22, - 130, 171, 171, 171, 150, 45, 172, 12, 22, 59, - 166, 12, 177, 130, 171, 171, 161, 146, 130, 142, - 17, 86, 143, 167, 130, 146, 173, 171, 151, 146, - 171, 178, 87, 170, 130, 146 + 41, 42, 43, 46, 49, 50, 51, 54, 68, 73, + 91, 142, 143, 156, 170, 205, 225, 69, 154, 155, + 156, 144, 152, 198, 199, 152, 56, 61, 143, 237, + 245, 228, 245, 219, 245, 219, 245, 245, 219, 122, + 132, 222, 237, 238, 239, 219, 143, 219, 182, 182, + 183, 245, 245, 220, 13, 132, 219, 182, 219, 132, + 132, 89, 132, 143, 219, 56, 144, 206, 227, 237, + 245, 143, 245, 228, 56, 61, 185, 206, 219, 219, + 219, 219, 219, 131, 205, 94, 95, 96, 97, 15, + 11, 13, 132, 112, 113, 112, 110, 111, 110, 72, + 80, 81, 82, 93, 99, 100, 101, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 123, 126, 127, 128, 129, 130, 132, + 11, 13, 11, 13, 11, 13, 11, 146, 184, 56, + 56, 223, 237, 238, 239, 132, 132, 30, 122, 132, + 235, 237, 132, 132, 132, 132, 143, 11, 147, 147, + 181, 185, 22, 181, 185, 39, 144, 172, 22, 32, + 35, 36, 37, 38, 41, 22, 155, 156, 154, 16, + 20, 24, 144, 190, 191, 192, 193, 194, 195, 14, + 132, 219, 222, 237, 238, 239, 131, 205, 86, 188, + 70, 144, 186, 86, 144, 187, 187, 227, 132, 89, + 205, 131, 143, 131, 131, 205, 228, 228, 245, 206, + 206, 22, 227, 13, 131, 205, 205, 205, 205, 219, + 205, 205, 131, 205, 219, 219, 219, 219, 219, 219, + 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, + 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, + 219, 219, 10, 11, 13, 16, 20, 24, 25, 57, + 83, 132, 209, 237, 131, 205, 205, 205, 205, 205, + 205, 205, 205, 152, 56, 144, 180, 56, 56, 86, + 144, 224, 146, 146, 122, 146, 30, 233, 234, 236, + 237, 238, 239, 146, 146, 132, 146, 146, 146, 146, + 148, 44, 160, 181, 159, 181, 143, 169, 205, 169, + 169, 177, 205, 169, 169, 61, 189, 189, 15, 131, + 205, 188, 131, 59, 187, 59, 146, 203, 203, 228, + 206, 14, 208, 131, 90, 131, 205, 12, 205, 13, + 22, 14, 131, 102, 25, 185, 205, 205, 25, 25, + 25, 25, 25, 131, 205, 132, 131, 22, 14, 22, + 14, 22, 14, 22, 12, 18, 145, 11, 22, 187, + 59, 99, 178, 205, 178, 132, 230, 237, 132, 144, + 170, 175, 178, 179, 205, 233, 146, 177, 176, 205, + 178, 178, 152, 146, 56, 157, 22, 146, 200, 201, + 158, 99, 99, 193, 131, 201, 132, 144, 196, 197, + 131, 23, 144, 229, 227, 131, 14, 205, 12, 219, + 132, 22, 14, 131, 228, 12, 12, 12, 12, 146, + 146, 11, 22, 226, 131, 131, 231, 232, 237, 132, + 146, 131, 22, 163, 178, 131, 131, 131, 131, 12, + 132, 144, 149, 56, 186, 11, 187, 219, 219, 198, + 11, 205, 90, 14, 228, 12, 131, 22, 165, 146, + 219, 147, 147, 15, 131, 178, 178, 147, 161, 132, + 131, 174, 174, 147, 147, 150, 164, 227, 187, 152, + 22, 202, 203, 131, 204, 131, 88, 152, 166, 33, + 34, 144, 171, 171, 237, 132, 131, 131, 172, 176, + 178, 147, 147, 147, 237, 147, 22, 200, 12, 152, + 144, 153, 12, 152, 147, 132, 178, 147, 147, 22, + 131, 172, 172, 172, 151, 45, 173, 12, 22, 59, + 167, 12, 178, 131, 172, 172, 162, 147, 131, 143, + 17, 87, 144, 168, 131, 147, 174, 172, 152, 147, + 172, 179, 88, 171, 131, 147 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ static const yytype_uint8 yyr1[] = { - 0, 132, 134, 133, 135, 133, 136, 133, 137, 133, - 138, 133, 139, 133, 140, 133, 141, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 148, 151, 151, - 152, 152, 153, 153, 154, 154, 155, 155, 156, 155, - 157, 155, 158, 155, 155, 155, 159, 155, 155, 155, - 155, 155, 155, 155, 155, 160, 161, 155, 155, 155, - 155, 162, 155, 155, 155, 163, 155, 155, 164, 155, - 165, 155, 155, 155, 155, 155, 155, 166, 167, 167, - 168, 169, 169, 169, 169, 169, 169, 169, 169, 170, - 170, 170, 171, 171, 172, 172, 173, 174, 174, 175, - 175, 176, 177, 178, 179, 179, 180, 181, 182, 183, - 184, 184, 185, 185, 186, 186, 186, 187, 187, 188, - 188, 189, 189, 190, 190, 190, 191, 191, 191, 192, - 192, 193, 193, 193, 194, 194, 195, 195, 196, 198, - 197, 199, 199, 200, 201, 201, 203, 202, 204, 204, - 204, 204, 204, 205, 205, 205, 206, 206, 206, 206, - 206, 206, 206, 206, 206, 206, 206, 206, 207, 206, - 208, 208, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 209, 209, 209, 209, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 210, 210, 211, 211, - 211, 211, 211, 212, 212, 213, 213, 213, 213, 214, - 214, 215, 215, 215, 215, 215, 215, 215, 215, 215, - 216, 216, 216, 216, 216, 217, 217, 218, 218, 218, - 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - 218, 218, 218, 218, 218, 219, 218, 218, 218, 218, - 220, 220, 220, 220, 221, 221, 221, 221, 221, 222, - 222, 222, 223, 223, 223, 224, 225, 224, 226, 226, - 227, 227, 228, 228, 229, 230, 230, 230, 231, 232, - 232, 232, 233, 233, 234, 234, 235, 236, 237, 238, - 239, 239, 240, 241, 241, 242, 242, 243, 243, 244, - 244, 244, 244 + 0, 133, 135, 134, 136, 134, 137, 134, 138, 134, + 139, 134, 140, 134, 141, 134, 142, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 149, 152, 152, + 153, 153, 154, 154, 155, 155, 156, 156, 157, 156, + 158, 156, 159, 156, 156, 156, 160, 156, 156, 156, + 156, 156, 156, 156, 156, 161, 162, 156, 156, 156, + 156, 163, 156, 156, 156, 164, 156, 156, 165, 156, + 166, 156, 156, 156, 156, 156, 156, 167, 168, 168, + 169, 170, 170, 170, 170, 170, 170, 170, 170, 171, + 171, 171, 172, 172, 173, 173, 174, 175, 175, 176, + 176, 177, 178, 179, 180, 180, 181, 182, 183, 184, + 185, 185, 186, 186, 187, 187, 187, 188, 188, 189, + 189, 190, 190, 191, 191, 191, 192, 192, 192, 193, + 193, 194, 194, 194, 195, 195, 196, 196, 197, 199, + 198, 200, 200, 201, 202, 202, 204, 203, 205, 205, + 205, 205, 205, 206, 206, 206, 207, 207, 207, 207, + 207, 207, 207, 207, 207, 207, 207, 207, 208, 207, + 209, 209, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 212, 212, + 212, 212, 212, 213, 213, 214, 214, 214, 214, 215, + 215, 216, 216, 216, 216, 216, 216, 216, 216, 216, + 217, 217, 217, 217, 217, 217, 217, 217, 218, 218, + 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, + 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, + 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, + 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, + 219, 219, 219, 219, 219, 219, 219, 219, 220, 219, + 219, 219, 219, 221, 221, 221, 221, 222, 222, 222, + 222, 222, 223, 223, 223, 224, 224, 224, 225, 226, + 225, 227, 227, 228, 228, 229, 229, 230, 231, 231, + 231, 232, 233, 233, 233, 234, 234, 235, 235, 236, + 237, 238, 239, 240, 240, 241, 242, 242, 243, 243, + 244, 244, 245, 245, 245, 245 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ @@ -1529,18 +1534,18 @@ static const yytype_int8 yyr2[] = 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 2, 2, 3, 3, 3, 1, 3, 2, 2, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 4, 5, 4, 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, 2, 1, 1, 3, 0, 6, 1, 1, - 1, 1, 1, 2, 1, 2, 3, 1, 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 + 3, 4, 5, 4, 4, 3, 4, 3, 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, 2, 1, 1, 3, 0, + 6, 1, 1, 1, 1, 1, 2, 1, 2, 3, + 1, 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 { @@ -1564,14 +1569,14 @@ static const toketypes yy_type_tab[] = toketype_ival, toketype_ival, toketype_ival, toketype_ival, 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_opval, 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_opval, toketype_opval, toketype_opval, 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_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_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, @@ -1599,6 +1604,6 @@ static const toketypes yy_type_tab[] = }; /* Generated from: - * 77a59f73bcda0e12f216863101470b10051433a1712bbf7219acbd22399b8568 perly.y + * c0af31db816b03f7b0aa8c3f33f53d00fc1eb497776acea4416cd6d4f45c0f8c perly.y * f13e9c08cea6302f0c1d1f467405bd0e0880d0ea92d0669901017a7f7e94ab28 regen_perly.pl * ex: set ro ft=c: */ diff --git a/perly.y b/perly.y index 1f337c477add..0ada8098ca59 100644 --- a/perly.y +++ b/perly.y @@ -84,7 +84,7 @@ %token BAREWORD METHCALL0 METHCALL THING PMFUNC PRIVATEREF QWLIST %token FUNC0OP FUNC0SUB UNIOPSUB LSTOPSUB %token PLUGEXPR PLUGSTMT -%token LABEL +%token LABEL PROTOTYPE %token LOOPEX DOTDOT YADAYADA %token FUNC0 FUNC1 FUNC UNIOP LSTOP BLKLSTOP %token POWOP MULOP ADDOP @@ -791,7 +791,7 @@ subname : BAREWORD /* Subroutine prototype */ proto : empty - | THING + | PROTOTYPE ; /* Optional list of subroutine attributes */ @@ -1259,14 +1259,20 @@ anonymous | KW_SUB_anon startanonsub proto subattrlist subbody %prec PERLY_PAREN_OPEN { SvREFCNT_inc_simple_void(PL_compcv); $$ = newANONATTRSUB($startanonsub, $proto, $subattrlist, $subbody); } + | KW_SUB_anon startanonsub proto subattrlist %prec PERLY_PAREN_OPEN + { yyerror("Illegal declaration of anonymous subroutine"); YYERROR; } | KW_SUB_anon_sig startanonsub subattrlist sigsubbody %prec PERLY_PAREN_OPEN { SvREFCNT_inc_simple_void(PL_compcv); $$ = newANONATTRSUB($startanonsub, NULL, $subattrlist, $sigsubbody); } + | KW_SUB_anon_sig startanonsub subattrlist %prec PERLY_PAREN_OPEN + { yyerror("Illegal declaration of anonymous subroutine"); YYERROR; } | KW_METHOD_anon startanonmethod subattrlist sigsubbody %prec PERLY_PAREN_OPEN { SvREFCNT_inc_simple_void(PL_compcv); $$ = newANONATTRSUB($startanonmethod, NULL, $subattrlist, $sigsubbody); } + | KW_METHOD_anon startanonmethod subattrlist %prec PERLY_PAREN_OPEN + { yyerror("Illegal declaration of anonymous subroutine"); YYERROR; } ; /* Things called with "do" */ diff --git a/t/lib/croak/toke b/t/lib/croak/toke index a50f256b0b0d..45d18dcef4fb 100644 --- a/t/lib/croak/toke +++ b/t/lib/croak/toke @@ -645,7 +645,9 @@ OPTIONS nonfatal no feature 'apostrophe_as_package_separator'; sub 'Hello'_he_said (_); EXPECT -Illegal declaration of anonymous subroutine at - line 2. +Bareword found where operator expected (Missing operator before "_he_said"?) at - line 2, near "'Hello'_he_said" +Illegal declaration of anonymous subroutine at - line 2, near "sub 'Hello'" +Execution of - aborted due to compilation errors. ######## # NAME tick in names: initial character of format name (reverted) format 'one = diff --git a/t/op/anonsub.t b/t/op/anonsub.t index 95709766d5be..3248d5ae77cc 100644 --- a/t/op/anonsub.t +++ b/t/op/anonsub.t @@ -10,7 +10,7 @@ $|=1; run_multiple_progs('', \*DATA); -foreach my $code ('sub;', 'sub ($) ;', '{ $x = sub }', 'sub ($) && 1') { +foreach my $code ('sub;', 'sub ($) ;', '{ $_ = sub }', 'sub ($) && 1') { eval $code; like($@, qr/^Illegal declaration of anonymous subroutine at/, "'$code' is illegal"); diff --git a/toke.c b/toke.c index 525bd38fc622..c831491167be 100644 --- a/toke.c +++ b/toke.c @@ -526,6 +526,7 @@ static struct debug_tokens { DEBUG_TOKEN (NONE, PREDEC), DEBUG_TOKEN (NONE, PREINC), DEBUG_TOKEN (OPVAL, PRIVATEREF), + DEBUG_TOKEN (OPVAL, PROTOTYPE), DEBUG_TOKEN (OPVAL, QWLIST), DEBUG_TOKEN (NONE, REFGEN), DEBUG_TOKEN (OPNUM, SHIFTOP), @@ -5617,9 +5618,7 @@ yyl_sub(pTHX_ char *s, const int key) key == KEY_INIT || key == KEY_END || key == KEY_my || key == KEY_state || key == KEY_our); - if (!have_name) - croak("Illegal declaration of anonymous subroutine"); - else if (*s != ';' && *s != '}') + if (have_name && *s != ';' && *s != '}') croak("Illegal declaration of subroutine %" SVf, SVfARG(PL_subname)); } @@ -5627,7 +5626,7 @@ yyl_sub(pTHX_ char *s, const int key) NEXTVAL_NEXTTOKE.opval = newSVOP(OP_CONST, 0, PL_lex_stuff); PL_lex_stuff = NULL; - force_next(THING); + force_next(PROTOTYPE); } if (!have_name) { From e8508b0025941b01601b7e57833021c8c3fef2ad Mon Sep 17 00:00:00 2001 From: Lukas Mai Date: Sun, 3 Aug 2025 13:59:00 +0200 Subject: [PATCH 2/2] t/op/anonsub.t: un-TODO test 14 It now passes. --- t/op/anonsub.t | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/t/op/anonsub.t b/t/op/anonsub.t index 3248d5ae77cc..e28644b3748e 100644 --- a/t/op/anonsub.t +++ b/t/op/anonsub.t @@ -17,13 +17,7 @@ foreach my $code ('sub;', 'sub ($) ;', '{ $_ = sub }', 'sub ($) && 1') { } { - local $::TODO; - $::TODO = 'RT #17589 not completely resolved'; - # Here's a patch. It makes "sub;" and similar report an error immediately - # from the lexer. However the solution is not complete, it doesn't - # handle the case "sub ($) : lvalue;" (marked as a TODO test), because - # it's handled by the lexer in separate tokens, hence more difficult to - # work out. + # RT #17589 / GH #5959 my $code = 'sub ($) : lvalue;'; eval $code; like($@, qr/^Illegal declaration of anonymous subroutine at/, @@ -35,7 +29,7 @@ is($@, ''); done_testing(); -__END__ +__DATA__ sub X { my $n = "ok 1\n"; sub { print $n };