diff options
author | Arne Johannessen <ajnn@cpan.org> | 2023-03-02 14:56:59 +0100 |
---|---|---|
committer | Paul Evans <leonerd@leonerd.org.uk> | 2023-03-02 16:27:02 +0000 |
commit | edcf480ecf5d1e197b42f41432d14000ddbdb2cc (patch) | |
tree | 0d09f1efb78f0d94ece3b6b57808b118fa8d3a41 | |
parent | 49830b9d6df254629bb26062f7477b3b371dd1d2 (diff) | |
download | perl-edcf480ecf5d1e197b42f41432d14000ddbdb2cc.tar.gz |
Allow :isa in class declaration without a block
Using class attributes in the unit class syntax was a syntax error. This change makes the following two lines equivalent:
class B :isa(A) ;
class B :isa(A) { }
Addresses GH issue #20888.
-rw-r--r-- | AUTHORS | 1 | ||||
-rw-r--r-- | perly.act | 499 | ||||
-rw-r--r-- | perly.h | 2 | ||||
-rw-r--r-- | perly.tab | 1362 | ||||
-rw-r--r-- | perly.y | 5 | ||||
-rw-r--r-- | pod/perldelta.pod | 6 | ||||
-rw-r--r-- | t/class/inherit.t | 10 |
7 files changed, 954 insertions, 931 deletions
@@ -134,6 +134,7 @@ Aristotle Pagaltzis <pagaltzis@gmx.de> Arjen Laarhoven <arjen@nl.demon.net> Arkturuz <arkturuz@gmail.com> Arne Ahrend <aahrend@web.de> +Arne Johannessen <ajnn@cpan.org> Arnold D. Robbins <arnold@gnu.ai.mit.edu> Art Green <Art_Green@mercmarine.com> Art Haas <ahaas@airmail.net> @@ -401,23 +401,26 @@ case 2: case 45: #line 447 "perly.y" { - package((ps[-1].val.opval)); - if ((ps[-2].val.opval)) - package_version((ps[-2].val.opval)); + package((ps[-2].val.opval)); + if ((ps[-3].val.opval)) + package_version((ps[-3].val.opval)); (yyval.opval) = NULL; class_setup_stash(PL_curstash); + if ((ps[-1].val.opval)) { + class_apply_attributes(PL_curstash, (ps[-1].val.opval)); + } } break; case 46: -#line 455 "perly.y" +#line 458 "perly.y" { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ } break; case 47: -#line 459 "perly.y" +#line 462 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); utilize((ps[-6].val.ival), (ps[-5].val.ival), (ps[-3].val.opval), (ps[-2].val.opval), (ps[-1].val.opval)); @@ -428,7 +431,7 @@ case 2: break; case 48: -#line 466 "perly.y" +#line 469 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newCONDOP(0, (ps[-3].val.opval), op_scope((ps[-1].val.opval)), (ps[0].val.opval))); @@ -438,7 +441,7 @@ case 2: break; case 49: -#line 472 "perly.y" +#line 475 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newCONDOP(0, (ps[-3].val.opval), (ps[0].val.opval), op_scope((ps[-1].val.opval)))); @@ -448,7 +451,7 @@ case 2: break; case 50: -#line 478 "perly.y" +#line 481 "perly.y" { (yyval.opval) = block_end((ps[-3].val.ival), newGIVENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)), 0)); parser->copline = (line_t)(ps[-5].val.ival); @@ -457,19 +460,19 @@ case 2: break; case 51: -#line 483 "perly.y" +#line 486 "perly.y" { (yyval.opval) = block_end((ps[-3].val.ival), newWHENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)))); } break; case 52: -#line 485 "perly.y" +#line 488 "perly.y" { (yyval.opval) = newWHENOP(0, op_scope((ps[0].val.opval))); } break; case 53: -#line 487 "perly.y" +#line 490 "perly.y" { (yyval.opval) = block_end((ps[-5].val.ival), newWHILEOP(0, 1, NULL, @@ -480,7 +483,7 @@ case 2: break; case 54: -#line 494 "perly.y" +#line 497 "perly.y" { (yyval.opval) = block_end((ps[-5].val.ival), newWHILEOP(0, 1, NULL, @@ -491,19 +494,19 @@ case 2: break; case 55: -#line 501 "perly.y" +#line 504 "perly.y" { parser->expect = XTERM; } break; case 56: -#line 503 "perly.y" +#line 506 "perly.y" { parser->expect = XTERM; } break; case 57: -#line 506 "perly.y" +#line 509 "perly.y" { OP *initop = (ps[-9].val.opval); OP *forop = newWHILEOP(0, 1, NULL, @@ -522,7 +525,7 @@ case 2: break; case 58: -#line 521 "perly.y" +#line 524 "perly.y" { (yyval.opval) = block_end((ps[-6].val.ival), newFOROP(0, (ps[-5].val.opval), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); parser->copline = (line_t)(ps[-8].val.ival); @@ -531,7 +534,7 @@ case 2: break; case 59: -#line 526 "perly.y" +#line 529 "perly.y" { if ((ps[-6].val.opval)->op_type == OP_PADSV) /* degenerate case of 1 var: for my ($x) .... @@ -544,7 +547,7 @@ case 2: break; case 60: -#line 535 "perly.y" +#line 538 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0, op_lvalue((ps[-6].val.opval), OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); @@ -554,13 +557,13 @@ case 2: break; case 61: -#line 541 "perly.y" +#line 544 "perly.y" { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } break; case 62: -#line 543 "perly.y" +#line 546 "perly.y" { (yyval.opval) = block_end( (ps[-7].val.ival), @@ -577,7 +580,7 @@ case 2: break; case 63: -#line 556 "perly.y" +#line 559 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newFOROP( 0, op_lvalue(newUNOP(OP_REFGEN, 0, @@ -589,7 +592,7 @@ case 2: break; case 64: -#line 564 "perly.y" +#line 567 "perly.y" { (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0, NULL, (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); @@ -599,7 +602,7 @@ case 2: break; case 65: -#line 570 "perly.y" +#line 573 "perly.y" { if(!(ps[0].val.opval)) { yyerror("catch block requires a (VAR)"); @@ -610,7 +613,7 @@ case 2: break; case 66: -#line 577 "perly.y" +#line 580 "perly.y" { (yyval.opval) = newTRYCATCHOP(0, (ps[-6].val.opval), (ps[-3].val.opval), block_end((ps[-4].val.ival), op_scope((ps[-1].val.opval)))); @@ -622,7 +625,7 @@ case 2: break; case 67: -#line 585 "perly.y" +#line 588 "perly.y" { /* a block is a loop that happens once */ (yyval.opval) = newWHILEOP(0, 1, NULL, @@ -632,7 +635,7 @@ case 2: break; case 68: -#line 591 "perly.y" +#line 594 "perly.y" { package((ps[-2].val.opval)); if ((ps[-3].val.opval)) { @@ -643,7 +646,7 @@ case 2: break; case 69: -#line 598 "perly.y" +#line 601 "perly.y" { /* a block is a loop that happens once */ (yyval.opval) = newWHILEOP(0, 1, NULL, @@ -655,7 +658,7 @@ case 2: break; case 70: -#line 606 "perly.y" +#line 609 "perly.y" { package((ps[-3].val.opval)); @@ -671,7 +674,7 @@ case 2: break; case 71: -#line 618 "perly.y" +#line 621 "perly.y" { /* a block is a loop that happens once */ (yyval.opval) = newWHILEOP(0, 1, NULL, @@ -683,7 +686,7 @@ case 2: break; case 72: -#line 626 "perly.y" +#line 629 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } @@ -691,7 +694,7 @@ case 2: break; case 73: -#line 630 "perly.y" +#line 633 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } @@ -699,7 +702,7 @@ case 2: break; case 74: -#line 634 "perly.y" +#line 637 "perly.y" { (yyval.opval) = newDEFEROP(0, op_scope((ps[0].val.opval))); } @@ -707,7 +710,7 @@ case 2: break; case 75: -#line 638 "perly.y" +#line 641 "perly.y" { /* diag_listed_as: Unimplemented */ (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), @@ -717,7 +720,7 @@ case 2: break; case 76: -#line 644 "perly.y" +#line 647 "perly.y" { (yyval.opval) = NULL; parser->copline = NOLINE; @@ -726,7 +729,7 @@ case 2: break; case 77: -#line 652 "perly.y" +#line 655 "perly.y" { OP *list; if ((ps[0].val.opval)) { OP *term = (ps[0].val.opval); @@ -745,62 +748,62 @@ case 2: break; case 79: -#line 671 "perly.y" +#line 674 "perly.y" { (yyval.opval) = op_unscope((ps[-1].val.opval)); } break; case 81: -#line 679 "perly.y" +#line 682 "perly.y" { (yyval.opval) = NULL; } break; case 82: -#line 681 "perly.y" +#line 684 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 83: -#line 683 "perly.y" +#line 686 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[0].val.opval), (ps[-2].val.opval)); } break; case 84: -#line 685 "perly.y" +#line 688 "perly.y" { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[0].val.opval), (ps[-2].val.opval)); } break; case 85: -#line 687 "perly.y" +#line 690 "perly.y" { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[0].val.opval)), (ps[-2].val.opval)); } break; case 86: -#line 689 "perly.y" +#line 692 "perly.y" { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[0].val.opval), (ps[-2].val.opval)); } break; case 87: -#line 691 "perly.y" +#line 694 "perly.y" { (yyval.opval) = newFOROP(0, NULL, (ps[0].val.opval), (ps[-2].val.opval), NULL); parser->copline = (line_t)(ps[-1].val.ival); } break; case 88: -#line 694 "perly.y" +#line 697 "perly.y" { (yyval.opval) = newWHENOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); } break; case 90: -#line 701 "perly.y" +#line 704 "perly.y" { ((ps[0].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = op_scope((ps[0].val.opval)); @@ -809,7 +812,7 @@ case 2: break; case 91: -#line 706 "perly.y" +#line 709 "perly.y" { parser->copline = (line_t)(ps[-5].val.ival); (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[-3].val.opval)), @@ -820,25 +823,25 @@ case 2: break; case 93: -#line 718 "perly.y" +#line 721 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; case 94: -#line 723 "perly.y" +#line 726 "perly.y" { (yyval.opval) = NULL; } break; case 95: -#line 725 "perly.y" +#line 728 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; case 96: -#line 730 "perly.y" +#line 733 "perly.y" { (yyval.ival) = (PL_min_intro_pending && PL_max_intro_pending >= PL_min_intro_pending); intro_my(); } @@ -846,7 +849,7 @@ case 2: break; case 99: -#line 742 "perly.y" +#line 745 "perly.y" { YYSTYPE tmplval; (void)scan_num("1", &tmplval); (yyval.opval) = tmplval.opval; } @@ -854,52 +857,52 @@ case 2: break; case 101: -#line 750 "perly.y" +#line 753 "perly.y" { (yyval.opval) = invert(scalar((ps[0].val.opval))); } break; case 102: -#line 755 "perly.y" +#line 758 "perly.y" { (yyval.opval) = (ps[0].val.opval); intro_my(); } break; case 103: -#line 759 "perly.y" +#line 762 "perly.y" { (yyval.opval) = (ps[0].val.opval); intro_my(); } break; case 104: -#line 762 "perly.y" +#line 765 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 106: -#line 767 "perly.y" +#line 770 "perly.y" { (yyval.ival) = start_subparse(FALSE, 0); SAVEFREESV(PL_compcv); } break; case 107: -#line 773 "perly.y" +#line 776 "perly.y" { (yyval.ival) = start_subparse(FALSE, CVf_ANON); SAVEFREESV(PL_compcv); } break; case 108: -#line 778 "perly.y" +#line 781 "perly.y" { (yyval.ival) = start_subparse(TRUE, 0); SAVEFREESV(PL_compcv); } break; case 114: -#line 797 "perly.y" +#line 800 "perly.y" { OP *attrlist = (ps[0].val.opval); if(attrlist && !PL_parser->sig_seen) @@ -910,49 +913,49 @@ case 2: break; case 115: -#line 804 "perly.y" +#line 807 "perly.y" { (yyval.opval) = NULL; } break; case 116: -#line 809 "perly.y" +#line 812 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 117: -#line 811 "perly.y" +#line 814 "perly.y" { (yyval.opval) = NULL; } break; case 118: -#line 822 "perly.y" +#line 825 "perly.y" { parser->in_my = 0; (yyval.opval) = NULL; } break; case 119: -#line 824 "perly.y" +#line 827 "perly.y" { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); } break; case 120: -#line 829 "perly.y" +#line 832 "perly.y" { (yyval.ival) = '@'; } break; case 121: -#line 831 "perly.y" +#line 834 "perly.y" { (yyval.ival) = '%'; } break; case 122: -#line 835 "perly.y" +#line 838 "perly.y" { I32 sigil = (ps[-2].val.ival); OP *var = (ps[-1].val.opval); @@ -972,13 +975,13 @@ case 2: break; case 124: -#line 856 "perly.y" +#line 859 "perly.y" { (yyval.opval) = newARGDEFELEMOP(0, newOP(OP_NULL, 0), parser->sig_elems); } break; case 125: -#line 858 "perly.y" +#line 861 "perly.y" { I32 flags = 0; if ((ps[-1].val.ival) == OP_DORASSIGN) @@ -991,7 +994,7 @@ case 2: break; case 126: -#line 871 "perly.y" +#line 874 "perly.y" { OP *var = (ps[-1].val.opval); OP *defop = (ps[0].val.opval); @@ -1051,25 +1054,25 @@ case 2: break; case 127: -#line 931 "perly.y" +#line 934 "perly.y" { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } break; case 128: -#line 933 "perly.y" +#line 936 "perly.y" { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } break; case 129: -#line 939 "perly.y" +#line 942 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; case 130: -#line 941 "perly.y" +#line 944 "perly.y" { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-2].val.opval), (ps[0].val.opval)); } @@ -1077,19 +1080,19 @@ case 2: break; case 131: -#line 945 "perly.y" +#line 948 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 136: -#line 962 "perly.y" +#line 965 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; case 137: -#line 965 "perly.y" +#line 968 "perly.y" { ENTER; SAVEIV(parser->sig_elems); @@ -1104,7 +1107,7 @@ case 2: break; case 138: -#line 976 "perly.y" +#line 979 "perly.y" { OP *sigops = (ps[0].val.opval); struct op_argcheck_aux *aux; @@ -1161,13 +1164,13 @@ case 2: break; case 140: -#line 1033 "perly.y" +#line 1036 "perly.y" { (yyval.opval) = NULL; } break; case 141: -#line 1039 "perly.y" +#line 1042 "perly.y" { if (parser->copline > (line_t)(ps[-2].val.ival)) parser->copline = (line_t)(ps[-2].val.ival); @@ -1177,13 +1180,13 @@ case 2: break; case 143: -#line 1051 "perly.y" +#line 1054 "perly.y" { (yyval.opval) = NULL; } break; case 144: -#line 1056 "perly.y" +#line 1059 "perly.y" { if (parser->copline > (line_t)(ps[-2].val.ival)) parser->copline = (line_t)(ps[-2].val.ival); @@ -1194,37 +1197,37 @@ case 2: break; case 145: -#line 1067 "perly.y" +#line 1070 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 146: -#line 1069 "perly.y" +#line 1072 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; case 147: -#line 1071 "perly.y" +#line 1074 "perly.y" { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 148: -#line 1073 "perly.y" +#line 1076 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; case 150: -#line 1079 "perly.y" +#line 1082 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; case 151: -#line 1081 "perly.y" +#line 1084 "perly.y" { OP* term = (ps[0].val.opval); (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term); @@ -1233,7 +1236,7 @@ case 2: break; case 153: -#line 1090 "perly.y" +#line 1093 "perly.y" { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) ); } @@ -1241,7 +1244,7 @@ case 2: break; case 154: -#line 1094 "perly.y" +#line 1097 "perly.y" { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) ); } @@ -1249,7 +1252,7 @@ case 2: break; case 155: -#line 1098 "perly.y" +#line 1101 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)), @@ -1259,7 +1262,7 @@ case 2: break; case 156: -#line 1104 "perly.y" +#line 1107 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, scalar((ps[-2].val.opval)), newMETHOP(OP_METHOD, 0, (ps[0].val.opval)))); @@ -1268,7 +1271,7 @@ case 2: break; case 157: -#line 1109 "perly.y" +#line 1112 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), @@ -1278,7 +1281,7 @@ case 2: break; case 158: -#line 1115 "perly.y" +#line 1118 "perly.y" { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)), @@ -1288,32 +1291,32 @@ case 2: break; case 159: -#line 1121 "perly.y" +#line 1124 "perly.y" { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; case 160: -#line 1123 "perly.y" +#line 1126 "perly.y" { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; case 161: -#line 1125 "perly.y" +#line 1128 "perly.y" { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; case 162: -#line 1127 "perly.y" +#line 1130 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, NULL, (ps[0].val.opval)); } break; case 163: -#line 1130 "perly.y" +#line 1133 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval))); @@ -1322,20 +1325,20 @@ case 2: break; case 166: -#line 1145 "perly.y" +#line 1148 "perly.y" { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); } break; case 167: -#line 1147 "perly.y" +#line 1150 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval))); } break; case 168: -#line 1150 "perly.y" +#line 1153 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[-4].val.opval)),OP_RV2AV), scalar((ps[-1].val.opval))); @@ -1344,7 +1347,7 @@ case 2: break; case 169: -#line 1155 "perly.y" +#line 1158 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[-3].val.opval)),OP_RV2AV), scalar((ps[-1].val.opval))); @@ -1353,14 +1356,14 @@ case 2: break; case 170: -#line 1160 "perly.y" +#line 1163 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval))); } break; case 171: -#line 1163 "perly.y" +#line 1166 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-5].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } @@ -1368,7 +1371,7 @@ case 2: break; case 172: -#line 1167 "perly.y" +#line 1170 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-4].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } @@ -1376,7 +1379,7 @@ case 2: break; case 173: -#line 1171 "perly.y" +#line 1174 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[-3].val.opval)))); if (parser->expect == XBLOCK) @@ -1386,7 +1389,7 @@ case 2: break; case 174: -#line 1177 "perly.y" +#line 1180 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), newCVREF(0, scalar((ps[-4].val.opval))))); @@ -1397,7 +1400,7 @@ case 2: break; case 175: -#line 1185 "perly.y" +#line 1188 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), newCVREF(0, scalar((ps[-3].val.opval))))); @@ -1408,7 +1411,7 @@ case 2: break; case 176: -#line 1192 "perly.y" +#line 1195 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[-2].val.opval)))); if (parser->expect == XBLOCK) @@ -1418,55 +1421,55 @@ case 2: break; case 177: -#line 1198 "perly.y" +#line 1201 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); } break; case 178: -#line 1200 "perly.y" +#line 1203 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); } break; case 179: -#line 1202 "perly.y" +#line 1205 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); } break; case 180: -#line 1207 "perly.y" +#line 1210 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; case 181: -#line 1209 "perly.y" +#line 1212 "perly.y" { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); } break; case 182: -#line 1211 "perly.y" +#line 1214 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; case 183: -#line 1213 "perly.y" +#line 1216 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 184: -#line 1215 "perly.y" +#line 1218 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; case 185: -#line 1217 "perly.y" +#line 1220 "perly.y" { if ((ps[-1].val.ival) != OP_REPEAT) scalar((ps[-2].val.opval)); (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval))); @@ -1475,219 +1478,219 @@ case 2: break; case 186: -#line 1222 "perly.y" +#line 1225 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; case 187: -#line 1224 "perly.y" +#line 1227 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 188: -#line 1226 "perly.y" +#line 1229 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; case 189: -#line 1228 "perly.y" +#line 1231 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 190: -#line 1230 "perly.y" +#line 1233 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 191: -#line 1232 "perly.y" +#line 1235 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 192: -#line 1234 "perly.y" +#line 1237 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 193: -#line 1236 "perly.y" +#line 1239 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 194: -#line 1238 "perly.y" +#line 1241 "perly.y" { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 195: -#line 1240 "perly.y" +#line 1243 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 196: -#line 1242 "perly.y" +#line 1245 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; case 197: -#line 1244 "perly.y" +#line 1247 "perly.y" { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 198: -#line 1246 "perly.y" +#line 1249 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; case 199: -#line 1248 "perly.y" +#line 1251 "perly.y" { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 200: -#line 1250 "perly.y" +#line 1253 "perly.y" { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 201: -#line 1252 "perly.y" +#line 1255 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; case 202: -#line 1256 "perly.y" +#line 1259 "perly.y" { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } break; case 203: -#line 1258 "perly.y" +#line 1261 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 204: -#line 1260 "perly.y" +#line 1263 "perly.y" { yyerror("syntax error"); YYERROR; } break; case 205: -#line 1262 "perly.y" +#line 1265 "perly.y" { yyerror("syntax error"); YYERROR; } break; case 206: -#line 1264 "perly.y" +#line 1267 "perly.y" { (yyval.opval) = build_infix_plugin((ps[-2].val.opval), (ps[0].val.opval), (ps[-1].val.pval)); } break; case 207: -#line 1268 "perly.y" +#line 1271 "perly.y" { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 208: -#line 1270 "perly.y" +#line 1273 "perly.y" { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 209: -#line 1274 "perly.y" +#line 1277 "perly.y" { (yyval.opval) = cmpchain_finish((ps[0].val.opval)); } break; case 210: -#line 1276 "perly.y" +#line 1279 "perly.y" { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 211: -#line 1278 "perly.y" +#line 1281 "perly.y" { yyerror("syntax error"); YYERROR; } break; case 212: -#line 1280 "perly.y" +#line 1283 "perly.y" { yyerror("syntax error"); YYERROR; } break; case 213: -#line 1284 "perly.y" +#line 1287 "perly.y" { (yyval.opval) = cmpchain_start((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 214: -#line 1286 "perly.y" +#line 1289 "perly.y" { (yyval.opval) = cmpchain_extend((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 215: -#line 1291 "perly.y" +#line 1294 "perly.y" { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); } break; case 216: -#line 1293 "perly.y" +#line 1296 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 217: -#line 1296 "perly.y" +#line 1299 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; case 218: -#line 1298 "perly.y" +#line 1301 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); } break; case 219: -#line 1300 "perly.y" +#line 1303 "perly.y" { (yyval.opval) = newUNOP(OP_POSTINC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); } break; case 220: -#line 1303 "perly.y" +#line 1306 "perly.y" { (yyval.opval) = newUNOP(OP_POSTDEC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));} break; case 221: -#line 1306 "perly.y" +#line 1309 "perly.y" { (yyval.opval) = op_convert_list(OP_JOIN, 0, op_append_elem( OP_LIST, @@ -1702,47 +1705,47 @@ case 2: break; case 222: -#line 1317 "perly.y" +#line 1320 "perly.y" { (yyval.opval) = newUNOP(OP_PREINC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); } break; case 223: -#line 1320 "perly.y" +#line 1323 "perly.y" { (yyval.opval) = newUNOP(OP_PREDEC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); } break; case 224: -#line 1328 "perly.y" +#line 1331 "perly.y" { (yyval.opval) = newANONLIST((ps[-1].val.opval)); } break; case 225: -#line 1330 "perly.y" +#line 1333 "perly.y" { (yyval.opval) = newANONHASH((ps[-2].val.opval)); } break; case 226: -#line 1332 "perly.y" +#line 1335 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); } break; case 227: -#line 1335 "perly.y" +#line 1338 "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 228: -#line 1338 "perly.y" +#line 1341 "perly.y" { croak_kw_unless_class("method"); class_prepare_method_parse(PL_compcv); @@ -1751,7 +1754,7 @@ case 2: break; case 229: -#line 1343 "perly.y" +#line 1346 "perly.y" { OP *body = (ps[0].val.opval); @@ -1763,97 +1766,97 @@ case 2: break; case 230: -#line 1354 "perly.y" +#line 1357 "perly.y" { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));} break; case 231: -#line 1356 "perly.y" +#line 1359 "perly.y" { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));} break; case 236: -#line 1364 "perly.y" +#line 1367 "perly.y" { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 237: -#line 1366 "perly.y" +#line 1369 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } break; case 238: -#line 1368 "perly.y" +#line 1371 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 239: -#line 1370 "perly.y" +#line 1373 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),0); } break; case 240: -#line 1372 "perly.y" +#line 1375 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; case 241: -#line 1374 "perly.y" +#line 1377 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 242: -#line 1376 "perly.y" +#line 1379 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; case 243: -#line 1378 "perly.y" +#line 1381 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 244: -#line 1380 "perly.y" +#line 1383 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 245: -#line 1382 "perly.y" +#line 1385 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 246: -#line 1384 "perly.y" +#line 1387 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 247: -#line 1386 "perly.y" +#line 1389 "perly.y" { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} break; case 248: -#line 1388 "perly.y" +#line 1391 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 249: -#line 1390 "perly.y" +#line 1393 "perly.y" { (yyval.opval) = op_prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -1867,7 +1870,7 @@ case 2: break; case 250: -#line 1400 "perly.y" +#line 1403 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVASLICE, 0, @@ -1881,7 +1884,7 @@ case 2: break; case 251: -#line 1410 "perly.y" +#line 1413 "perly.y" { (yyval.opval) = op_prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -1895,7 +1898,7 @@ case 2: break; case 252: -#line 1420 "perly.y" +#line 1423 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVHSLICE, 0, @@ -1909,26 +1912,26 @@ case 2: break; case 253: -#line 1430 "perly.y" +#line 1433 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 254: -#line 1432 "perly.y" +#line 1435 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); } break; case 255: -#line 1434 "perly.y" +#line 1437 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval))); } break; case 256: -#line 1437 "perly.y" +#line 1440 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval)))); @@ -1937,7 +1940,7 @@ case 2: break; case 257: -#line 1442 "perly.y" +#line 1445 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } @@ -1945,130 +1948,130 @@ case 2: break; case 258: -#line 1446 "perly.y" +#line 1449 "perly.y" { (yyval.opval) = newSVREF((ps[-3].val.opval)); } break; case 259: -#line 1448 "perly.y" +#line 1451 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; case 260: -#line 1450 "perly.y" +#line 1453 "perly.y" { (yyval.opval) = newHVREF((ps[-3].val.opval)); } break; case 261: -#line 1452 "perly.y" +#line 1455 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } break; case 262: -#line 1455 "perly.y" +#line 1458 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } break; case 263: -#line 1457 "perly.y" +#line 1460 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); PL_hints |= HINT_BLOCK_SCOPE; } break; case 264: -#line 1460 "perly.y" +#line 1463 "perly.y" { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } break; case 265: -#line 1462 "perly.y" +#line 1465 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; case 266: -#line 1464 "perly.y" +#line 1467 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; case 267: -#line 1466 "perly.y" +#line 1469 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; case 268: -#line 1468 "perly.y" +#line 1471 "perly.y" { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; case 269: -#line 1470 "perly.y" +#line 1473 "perly.y" { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } break; case 270: -#line 1472 "perly.y" +#line 1475 "perly.y" { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } break; case 271: -#line 1474 "perly.y" +#line 1477 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; case 272: -#line 1476 "perly.y" +#line 1479 "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 273: -#line 1479 "perly.y" +#line 1482 "perly.y" { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; case 274: -#line 1481 "perly.y" +#line 1484 "perly.y" { (yyval.opval) = newOP((ps[-2].val.ival), 0);} break; case 275: -#line 1483 "perly.y" +#line 1486 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 276: -#line 1485 "perly.y" +#line 1488 "perly.y" { (yyval.opval) = (ps[-2].val.opval); } break; case 277: -#line 1487 "perly.y" +#line 1490 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; case 278: -#line 1489 "perly.y" +#line 1492 "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); } @@ -2076,13 +2079,13 @@ case 2: break; case 279: -#line 1493 "perly.y" +#line 1496 "perly.y" { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; case 280: -#line 1495 "perly.y" +#line 1498 "perly.y" { if ( (ps[0].val.opval)->op_type != OP_TRANS && (ps[0].val.opval)->op_type != OP_TRANSR @@ -2097,67 +2100,67 @@ case 2: break; case 281: -#line 1506 "perly.y" +#line 1509 "perly.y" { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); } break; case 285: -#line 1515 "perly.y" +#line 1518 "perly.y" { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } break; case 286: -#line 1517 "perly.y" +#line 1520 "perly.y" { (yyval.opval) = localize((ps[0].val.opval),1); } break; case 287: -#line 1519 "perly.y" +#line 1522 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, my_attrs((ps[-1].val.opval),(ps[0].val.opval))); } break; case 288: -#line 1521 "perly.y" +#line 1524 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } break; case 289: -#line 1526 "perly.y" +#line 1529 "perly.y" { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; case 290: -#line 1528 "perly.y" +#line 1531 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); } break; case 291: -#line 1531 "perly.y" +#line 1534 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 292: -#line 1533 "perly.y" +#line 1536 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 293: -#line 1535 "perly.y" +#line 1538 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 294: -#line 1540 "perly.y" +#line 1543 "perly.y" { (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; op_free((ps[0].val.opval)); @@ -2166,7 +2169,7 @@ case 2: break; case 295: -#line 1545 "perly.y" +#line 1548 "perly.y" { (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; op_free((ps[0].val.opval)); @@ -2175,7 +2178,7 @@ case 2: break; case 296: -#line 1550 "perly.y" +#line 1553 "perly.y" { (yyval.pval) = PadnamelistARRAY(PL_comppad_name)[(ps[0].val.opval)->op_targ]; op_free((ps[0].val.opval)); @@ -2184,19 +2187,19 @@ case 2: break; case 297: -#line 1558 "perly.y" +#line 1561 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 298: -#line 1560 "perly.y" +#line 1563 "perly.y" { (yyval.opval) = NULL; } break; case 300: -#line 1566 "perly.y" +#line 1569 "perly.y" { parser->in_my = 0; if((ps[0].val.opval)) @@ -2207,7 +2210,7 @@ case 2: break; case 301: -#line 1573 "perly.y" +#line 1576 "perly.y" { parser->in_my = 0; if((ps[-1].val.opval)) @@ -2219,7 +2222,7 @@ case 2: break; case 302: -#line 1581 "perly.y" +#line 1584 "perly.y" { class_set_field_defop((PADNAME *)(ps[-4].val.pval), (ps[-2].val.ival), (ps[0].val.opval)); LEAVE; @@ -2229,25 +2232,25 @@ case 2: break; case 308: -#line 1601 "perly.y" +#line 1604 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; case 309: -#line 1607 "perly.y" +#line 1610 "perly.y" { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } break; case 310: -#line 1612 "perly.y" +#line 1615 "perly.y" { (yyval.opval) = (ps[-1].val.opval); } break; case 311: -#line 1614 "perly.y" +#line 1617 "perly.y" { (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), (ps[0].val.opval)); } @@ -2255,25 +2258,25 @@ case 2: break; case 313: -#line 1621 "perly.y" +#line 1624 "perly.y" { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); } break; case 321: -#line 1638 "perly.y" +#line 1641 "perly.y" { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); } break; case 322: -#line 1642 "perly.y" +#line 1645 "perly.y" { (yyval.opval) = newSVREF((ps[0].val.opval)); } break; case 323: -#line 1646 "perly.y" +#line 1649 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } @@ -2281,7 +2284,7 @@ case 2: break; case 324: -#line 1652 "perly.y" +#line 1655 "perly.y" { (yyval.opval) = newHVREF((ps[0].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } @@ -2289,61 +2292,61 @@ case 2: break; case 325: -#line 1658 "perly.y" +#line 1661 "perly.y" { (yyval.opval) = newAVREF((ps[0].val.opval)); } break; case 326: -#line 1660 "perly.y" +#line 1663 "perly.y" { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; case 327: -#line 1664 "perly.y" +#line 1667 "perly.y" { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); } break; case 329: -#line 1669 "perly.y" +#line 1672 "perly.y" { (yyval.opval) = newAVREF((ps[-2].val.opval)); } break; case 331: -#line 1674 "perly.y" +#line 1677 "perly.y" { (yyval.opval) = newHVREF((ps[-2].val.opval)); } break; case 333: -#line 1679 "perly.y" +#line 1682 "perly.y" { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); } break; case 334: -#line 1684 "perly.y" +#line 1687 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; case 335: -#line 1686 "perly.y" +#line 1689 "perly.y" { (yyval.opval) = scalar((ps[0].val.opval)); } break; case 336: -#line 1688 "perly.y" +#line 1691 "perly.y" { (yyval.opval) = op_scope((ps[0].val.opval)); } break; case 337: -#line 1691 "perly.y" +#line 1694 "perly.y" { (yyval.opval) = (ps[0].val.opval); } break; @@ -2355,6 +2358,6 @@ case 2: /* Generated from: - * 404f5c053415e3ead8d5b0e39c35188e47e522bbccd25374bdcf5128f1b93ccc perly.y + * 772de3ed75dc4010fd79a22e9c90253232ab5af632d3657c55a670d510ee71ef perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro ft=C: */ @@ -235,6 +235,6 @@ int yyparse (void); /* Generated from: - * 404f5c053415e3ead8d5b0e39c35188e47e522bbccd25374bdcf5128f1b93ccc perly.y + * 772de3ed75dc4010fd79a22e9c90253232ab5af632d3657c55a670d510ee71ef perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro ft=C: */ @@ -6,7 +6,7 @@ #define YYFINAL 16 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3663 +#define YYLAST 3665 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 131 @@ -79,36 +79,36 @@ static const yytype_int16 yyrline[] = 208, 207, 221, 220, 231, 230, 244, 246, 251, 259, 263, 270, 275, 282, 288, 292, 294, 291, 301, 302, 312, 313, 322, 326, 330, 337, 347, 349, 362, 359, - 383, 378, 409, 408, 435, 446, 455, 454, 465, 471, - 477, 482, 484, 486, 493, 501, 503, 500, 520, 525, - 534, 541, 540, 555, 563, 570, 569, 584, 591, 590, - 606, 605, 625, 629, 633, 637, 643, 651, 669, 670, - 674, 678, 680, 682, 684, 686, 688, 690, 693, 699, - 700, 705, 716, 717, 722, 724, 729, 736, 737, 741, - 745, 749, 754, 758, 762, 763, 766, 772, 777, 783, - 784, 789, 790, 795, 796, 803, 808, 810, 821, 823, - 828, 830, 834, 854, 855, 857, 870, 930, 932, 938, - 940, 944, 950, 951, 956, 957, 961, 965, 965, 1032, - 1033, 1038, 1050, 1051, 1055, 1066, 1068, 1070, 1072, 1074, - 1078, 1080, 1085, 1089, 1093, 1097, 1103, 1108, 1114, 1120, - 1122, 1124, 1127, 1126, 1137, 1138, 1142, 1146, 1149, 1154, - 1159, 1162, 1166, 1170, 1176, 1184, 1191, 1197, 1199, 1201, - 1206, 1208, 1210, 1212, 1214, 1216, 1221, 1223, 1225, 1227, - 1229, 1231, 1233, 1235, 1237, 1239, 1241, 1243, 1245, 1247, - 1249, 1251, 1255, 1257, 1259, 1261, 1263, 1267, 1269, 1273, - 1275, 1277, 1279, 1283, 1285, 1290, 1292, 1295, 1297, 1299, - 1302, 1305, 1316, 1319, 1327, 1329, 1331, 1334, 1338, 1337, - 1353, 1355, 1359, 1360, 1361, 1362, 1363, 1365, 1367, 1369, - 1371, 1373, 1375, 1377, 1379, 1381, 1383, 1385, 1387, 1389, - 1399, 1409, 1419, 1429, 1431, 1433, 1436, 1441, 1445, 1447, - 1449, 1451, 1454, 1456, 1459, 1461, 1463, 1465, 1467, 1469, - 1471, 1473, 1475, 1478, 1480, 1482, 1484, 1486, 1488, 1492, - 1495, 1494, 1507, 1508, 1509, 1514, 1516, 1518, 1520, 1525, - 1527, 1530, 1532, 1534, 1539, 1544, 1549, 1557, 1559, 1561, - 1565, 1573, 1572, 1590, 1591, 1595, 1596, 1600, 1601, 1606, - 1611, 1613, 1617, 1620, 1624, 1625, 1626, 1629, 1630, 1633, - 1634, 1637, 1641, 1645, 1651, 1657, 1659, 1663, 1667, 1668, - 1672, 1673, 1677, 1678, 1683, 1685, 1687, 1690 + 383, 378, 409, 408, 435, 446, 458, 457, 468, 474, + 480, 485, 487, 489, 496, 504, 506, 503, 523, 528, + 537, 544, 543, 558, 566, 573, 572, 587, 594, 593, + 609, 608, 628, 632, 636, 640, 646, 654, 672, 673, + 677, 681, 683, 685, 687, 689, 691, 693, 696, 702, + 703, 708, 719, 720, 725, 727, 732, 739, 740, 744, + 748, 752, 757, 761, 765, 766, 769, 775, 780, 786, + 787, 792, 793, 798, 799, 806, 811, 813, 824, 826, + 831, 833, 837, 857, 858, 860, 873, 933, 935, 941, + 943, 947, 953, 954, 959, 960, 964, 968, 968, 1035, + 1036, 1041, 1053, 1054, 1058, 1069, 1071, 1073, 1075, 1077, + 1081, 1083, 1088, 1092, 1096, 1100, 1106, 1111, 1117, 1123, + 1125, 1127, 1130, 1129, 1140, 1141, 1145, 1149, 1152, 1157, + 1162, 1165, 1169, 1173, 1179, 1187, 1194, 1200, 1202, 1204, + 1209, 1211, 1213, 1215, 1217, 1219, 1224, 1226, 1228, 1230, + 1232, 1234, 1236, 1238, 1240, 1242, 1244, 1246, 1248, 1250, + 1252, 1254, 1258, 1260, 1262, 1264, 1266, 1270, 1272, 1276, + 1278, 1280, 1282, 1286, 1288, 1293, 1295, 1298, 1300, 1302, + 1305, 1308, 1319, 1322, 1330, 1332, 1334, 1337, 1341, 1340, + 1356, 1358, 1362, 1363, 1364, 1365, 1366, 1368, 1370, 1372, + 1374, 1376, 1378, 1380, 1382, 1384, 1386, 1388, 1390, 1392, + 1402, 1412, 1422, 1432, 1434, 1436, 1439, 1444, 1448, 1450, + 1452, 1454, 1457, 1459, 1462, 1464, 1466, 1468, 1470, 1472, + 1474, 1476, 1478, 1481, 1483, 1485, 1487, 1489, 1491, 1495, + 1498, 1497, 1510, 1511, 1512, 1517, 1519, 1521, 1523, 1528, + 1530, 1533, 1535, 1537, 1542, 1547, 1552, 1560, 1562, 1564, + 1568, 1576, 1575, 1593, 1594, 1598, 1599, 1603, 1604, 1609, + 1614, 1616, 1620, 1623, 1627, 1628, 1629, 1632, 1633, 1636, + 1637, 1640, 1644, 1648, 1654, 1660, 1662, 1666, 1670, 1671, + 1675, 1676, 1680, 1681, 1686, 1688, 1690, 1693 }; #endif @@ -188,7 +188,7 @@ static const yytype_int16 yytoknum[] = }; # endif -#define YYPACT_NINF (-552) +#define YYPACT_NINF (-546) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) @@ -202,73 +202,73 @@ static const yytype_int16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 797, -552, -552, -552, -552, -552, -552, -552, 33, -552, - 2888, 25, 1856, 1741, -552, -552, -552, -552, 317, 2888, - 317, 2888, 317, 2888, 317, 317, 2888, 58, 2888, 2177, - -552, -552, -552, -552, 317, 317, -552, -552, 44, -66, - -552, 2888, -552, -552, 2888, -42, -12, 43, 2177, 2098, - 317, 2888, -6, 2888, 2888, 2888, 2888, 2888, 2888, 2256, - -552, 294, 130, -552, 11, -552, 38, 69, 88, 113, - -552, -552, -552, 3131, -552, -552, 85, 49, 121, 252, - -552, 214, 258, 280, 220, -552, -552, -552, -552, -552, - 185, 186, 107, 124, 134, 78, 143, 148, 151, 152, - 25, 240, 240, -552, -6, -552, -552, -552, 270, -552, - -6, 256, -552, 281, 411, 286, 1741, -552, -552, -552, - -552, 695, -552, 187, 810, -552, -552, -552, -552, -552, - 302, -552, 332, -552, 332, -552, -552, 3535, 2967, 2335, - 233, -552, -552, -552, 3535, -552, 3535, 211, 243, -552, - 2888, 199, 266, 2888, 201, 3535, 25, 3131, 210, 2414, - 2888, 2098, -552, 3535, 3046, -552, 130, -552, 2493, 2888, - -552, 322, -552, -552, 2888, 130, 332, 332, 332, 235, - 235, 343, 338, 2888, 2888, 2888, 2888, 2888, 2888, 2888, - 2572, -552, -552, 2888, -552, -552, 2888, 2888, 2888, 2888, - 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, - 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, 2888, - 2888, 2888, -552, -552, -552, 2888, 82, 2651, 2888, 2888, - 2888, 2888, 2888, 2888, 2888, -552, 301, 315, 316, 290, - -552, -552, -552, -552, -552, 262, 556, -552, -552, 263, - -552, -552, -552, -552, -552, -552, 339, -552, -552, -552, - -552, -552, -552, 25, -552, -552, -552, 2888, 2888, 2888, - 2888, 2888, 2888, -552, -552, -552, -552, 334, -552, -552, - -552, 334, -552, -552, -552, 393, -552, -552, 2730, 332, - 233, 27, 40, 52, -552, 446, 350, -552, -552, -552, - 243, 352, -552, -552, 243, -552, 2888, 2888, 67, -552, - -552, -552, -552, 450, 324, 288, 2888, 130, 403, -552, - 2888, 405, 76, 76, -552, -552, 3233, 99, 73, -552, - 526, 3496, 3476, 3335, 332, 468, 276, 3182, 3233, 3233, - 3080, 3374, 3374, 3374, 3397, 3397, 3436, 3457, 3476, 3476, - 3496, 3496, 3515, 360, 276, 468, 332, 332, 59, 400, - 2888, 2888, 499, 409, 412, 416, -552, 417, 2809, 298, - -552, -552, 570, 163, 89, 206, 140, 231, 144, 257, - 936, -552, -552, 418, 75, 1, 386, -552, 353, 2888, - 2888, -552, 12, -552, -552, 325, -552, -552, -552, -552, - 1940, 107, -552, 2888, 2888, 2888, 2888, -552, -552, 398, - -552, 439, -552, -552, -552, 294, -552, -552, -552, 294, - -552, -552, -552, 366, 366, 187, 30, 687, -552, -552, - -552, -552, -552, 335, -552, -552, 337, 102, -552, 2888, - -552, -552, -552, 693, -552, 226, 2888, 456, -552, -552, - 2888, -552, 275, 248, -552, -552, -552, -552, -552, -552, - 704, 2888, -552, 457, -552, 459, -552, 460, -552, 466, - -552, -552, -552, -552, -552, -552, 469, -552, -552, 354, - 294, 362, 463, 359, -552, -552, -552, -552, -552, 369, - 478, 182, -552, 2888, 378, 379, 294, 382, 389, 1051, - 365, 426, 211, -552, 511, -552, -552, 243, 2888, -552, - -552, -552, -552, 36, -552, -552, -552, 512, -552, -552, - -552, 2888, -552, 444, -552, -552, -552, 253, -552, 3284, - 522, -552, -552, 407, -552, -552, -552, -552, 527, -552, - -552, 2888, 240, 240, 533, 424, -552, 2888, 2888, 240, - -552, 429, 436, -552, -552, 240, 240, -552, -552, -552, - -552, 2888, 243, -552, 547, 3131, 441, -552, 294, -552, - -552, -552, -552, 485, -552, -552, 3131, 176, 176, 463, - 447, 449, 454, 256, 2888, 2888, 240, 240, 240, -552, - -552, 463, 240, 563, 439, 1166, -552, -552, -552, -552, - 1281, -552, 1396, -552, 240, 458, -552, -552, -552, -552, - 2888, 240, 240, -552, 565, 470, 256, 256, 256, -552, - 552, -552, -552, -552, -552, -552, 7, -552, 1511, -552, - 2888, 474, 256, 256, -552, 240, -552, -552, -552, 475, - 25, -552, 581, 524, -552, -552, 481, 240, -552, -552, - -552, 256, -552, -552, -552, -552, -552, -552, 240, 256, - 2019, -552, 1626, 176, -552, 483, -552, -552, 240, -552 + 911, -546, -546, -546, -546, -546, -546, -546, 63, -546, + 2890, 42, 1858, 1743, -546, -546, -546, -546, 157, 2890, + 157, 2890, 157, 2890, 157, 157, 2890, 3, 2890, 2179, + -546, -546, -546, -546, 157, 157, -546, -546, 97, -44, + -546, 2890, -546, -546, 2890, -15, -6, -23, 2179, 2100, + 157, 2890, 43, 2890, 2890, 2890, 2890, 2890, 2890, 2258, + -546, 53, 112, -546, 11, -546, 9, 22, 50, 83, + -546, -546, -546, 3133, -546, -546, 41, 49, 84, 154, + -546, 124, 175, 181, 204, -546, -546, -546, -546, -546, + 180, 186, 150, 91, 121, 73, 141, 144, 151, 152, + 42, 282, 282, -546, 43, -546, -546, -546, 273, -546, + 43, 264, -546, 283, 446, 284, 1743, -546, -546, -546, + -546, 698, -546, 196, 813, -546, -546, -546, -546, -546, + 296, -546, 451, -546, 451, -546, -546, 3537, 2969, 2337, + 229, -546, -546, -546, 3537, -546, 3537, 259, 240, -546, + 2890, 195, 241, 2890, 200, 3537, 42, 3133, 202, 2416, + 2890, 2100, -546, 3537, 3048, -546, 112, -546, 2495, 2890, + -546, 311, -546, -546, 2890, 112, 451, 451, 451, 343, + 343, 325, 163, 2890, 2890, 2890, 2890, 2890, 2890, 2890, + 2574, -546, -546, 2890, -546, -546, 2890, 2890, 2890, 2890, + 2890, 2890, 2890, 2890, 2890, 2890, 2890, 2890, 2890, 2890, + 2890, 2890, 2890, 2890, 2890, 2890, 2890, 2890, 2890, 2890, + 2890, 2890, -546, -546, -546, 2890, 310, 2653, 2890, 2890, + 2890, 2890, 2890, 2890, 2890, -546, 288, 293, 294, 255, + -546, -546, -546, -546, -546, 231, 78, -546, -546, 225, + -546, -546, -546, -546, -546, -546, 312, -546, -546, -546, + -546, -546, -546, 42, -546, -546, -546, 2890, 2890, 2890, + 2890, 2890, 2890, -546, -546, -546, -546, 298, -546, -546, + -546, 298, -546, -546, -546, 342, -546, -546, 2732, 451, + 229, 25, 38, 44, -546, 690, 306, -546, -546, -546, + 240, 319, -546, -546, 240, -546, 2890, 2890, 68, -546, + -546, -546, -546, 696, 300, 252, 2890, 112, 358, -546, + 2890, 376, 85, 85, -546, -546, 3235, 269, 116, -546, + 707, 3498, 3478, 3337, 451, 468, 333, 3184, 3235, 3235, + 3082, 3376, 3376, 3376, 3399, 3399, 3438, 3459, 3478, 3478, + 3498, 3498, 3517, 540, 333, 468, 451, 451, 103, 367, + 2890, 2890, 212, 368, 377, 378, -546, 379, 2811, 285, + -546, -546, 717, 279, 140, 305, 171, 315, 184, 338, + 938, -546, -546, 399, 54, 240, 359, -546, 328, 2890, + 2890, -546, 12, -546, -546, 304, -546, -546, -546, -546, + 1942, 150, -546, 2890, 2890, 2890, 2890, -546, -546, 372, + -546, 419, -546, -546, -546, 53, -546, -546, -546, 53, + -546, -546, -546, 345, 345, 196, 27, 805, -546, -546, + -546, -546, -546, 313, -546, -546, 316, 77, -546, 2890, + -546, -546, -546, 811, -546, 205, 2890, 434, -546, -546, + 2890, -546, 344, 248, -546, -546, -546, -546, -546, -546, + 818, 2890, -546, 435, -546, 438, -546, 440, -546, 441, + -546, -546, -546, -546, -546, 55, -546, -546, 326, 53, + 327, 447, 334, -546, -546, -546, -546, -546, 336, 452, + 146, -546, 2890, 347, 350, 53, 351, 356, 1053, 360, + 417, 259, -546, 475, -546, -546, 240, 2890, -546, -546, + -546, -546, 30, -546, -546, -546, 477, -546, -546, -546, + 2890, -546, 404, -546, -546, -546, 253, -546, 3286, 481, + -546, -546, 365, -546, -546, -546, -546, 478, -546, -546, + -546, 2890, 282, 282, 483, 374, -546, 2890, 2890, 282, + -546, 371, 380, -546, -546, 282, 282, -546, -546, -546, + -546, 2890, 240, -546, 484, 3133, 381, -546, 53, -546, + -546, -546, -546, 421, -546, -546, 3133, 220, 220, 447, + 384, 382, 387, 264, 2890, 2890, 282, 282, 282, -546, + -546, 447, 282, 496, 419, 1168, -546, -546, -546, -546, + 1283, -546, 1398, -546, 282, 391, -546, -546, -546, -546, + 2890, 282, 282, -546, 500, 398, 264, 264, 264, -546, + 497, -546, -546, -546, -546, -546, 28, -546, 1513, -546, + 2890, 414, 264, 264, -546, 282, -546, -546, -546, 415, + 42, -546, 511, 460, -546, -546, 418, 282, -546, -546, + -546, 264, -546, -546, -546, -546, -546, -546, 282, 264, + 2021, -546, 1628, 220, -546, 420, -546, -546, 282, -546 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -323,14 +323,14 @@ static const yytype_int16 yydefact[] = 279, 161, 160, 0, 225, 0, 0, 0, 169, 175, 0, 261, 0, 0, 258, 260, 259, 262, 326, 173, 0, 19, 256, 0, 167, 0, 249, 0, 250, 0, - 18, 21, 37, 21, 44, 45, 0, 297, 301, 0, - 102, 0, 0, 0, 309, 21, 97, 98, 103, 0, - 0, 82, 61, 0, 0, 0, 100, 0, 0, 0, - 19, 0, 19, 140, 0, 43, 139, 19, 124, 123, - 126, 122, 130, 240, 226, 137, 134, 0, 135, 229, - 158, 0, 307, 0, 163, 154, 179, 0, 172, 236, - 0, 168, 174, 0, 170, 251, 252, 166, 0, 68, - 21, 0, 0, 0, 313, 0, 312, 0, 0, 0, + 18, 21, 37, 21, 44, 0, 297, 301, 0, 102, + 0, 0, 0, 309, 21, 97, 98, 103, 0, 0, + 82, 61, 0, 0, 0, 100, 0, 0, 0, 19, + 0, 19, 140, 0, 43, 139, 19, 124, 123, 126, + 122, 130, 240, 226, 137, 134, 0, 135, 229, 158, + 0, 307, 0, 163, 154, 179, 0, 172, 236, 0, + 168, 174, 0, 170, 251, 252, 166, 0, 68, 21, + 45, 0, 0, 0, 313, 0, 312, 0, 0, 0, 55, 0, 0, 96, 96, 0, 0, 22, 25, 24, 65, 19, 19, 19, 21, 125, 0, 19, 308, 281, 177, 171, 155, 0, 19, 70, 302, 19, 19, 310, @@ -348,18 +348,18 @@ static const yytype_int16 yydefact[] = /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -552, -552, -552, -552, -552, -552, -552, -552, -552, -552, - -4, -10, -552, 62, -30, -552, -552, -552, -552, -13, - -552, 601, 500, 3, -552, -552, -552, -552, -552, -552, - -552, -552, -552, -552, -552, -552, 66, -399, -551, -252, - -552, -535, -552, 31, 221, -358, -33, -552, -106, 68, - -552, 70, 127, -294, 340, 351, -552, -552, 207, -552, - 209, -552, -552, -552, -552, 120, -552, 45, 212, -552, - -418, 16, -41, -552, -552, -552, -552, -552, -552, -552, - -552, -552, -552, -552, -552, -552, 473, -552, -552, 502, - -552, -552, -552, -552, -137, -17, -552, -552, -552, -552, - 236, -552, -552, 399, 34, -22, -16, -552, -552, -552, - -552, -552, 55 + -546, -546, -546, -546, -546, -546, -546, -546, -546, -546, + -4, -10, -546, 64, -30, -546, -546, -546, -546, -13, + -546, 542, 437, 5, -546, -546, -546, -546, -546, -546, + -546, -546, -546, -546, -546, -546, 114, -399, -545, -264, + -546, -525, -546, -24, 156, -358, -95, -546, -106, 165, + -546, -25, 65, -292, 280, 290, -546, -546, 145, -546, + 155, -546, -546, -546, -546, 69, -546, -9, 166, -546, + -425, 16, -38, -546, -546, -546, -546, -546, -546, -546, + -546, -546, -546, -546, -546, -546, 476, -546, -546, 448, + -546, -546, -546, -546, -137, -17, -546, -546, -546, -546, + 187, -546, -546, 341, 34, -22, -21, -546, -546, -546, + -546, -546, 56 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -367,14 +367,14 @@ static const yytype_int16 yydefgoto[] = { -1, 8, 9, 10, 11, 12, 13, 14, 15, 110, 111, 120, 472, 433, 256, 407, 560, 591, 639, 121, - 626, 276, 118, 119, 502, 507, 411, 409, 584, 650, + 626, 276, 118, 119, 501, 506, 411, 409, 584, 650, 551, 592, 574, 603, 644, 657, 414, 113, 607, 265, - 641, 587, 488, 495, 418, 479, 490, 383, 258, 147, - 236, 174, 300, 303, 297, 423, 281, 282, 510, 283, - 284, 285, 286, 517, 518, 122, 123, 505, 506, 597, + 641, 587, 487, 494, 418, 478, 489, 383, 258, 147, + 236, 174, 300, 303, 297, 423, 281, 282, 509, 283, + 284, 285, 286, 516, 517, 122, 123, 504, 505, 597, 434, 114, 62, 63, 439, 369, 64, 65, 66, 67, 68, 69, 70, 71, 304, 72, 73, 152, 74, 140, - 239, 388, 115, 541, 167, 75, 523, 483, 544, 545, + 239, 388, 115, 541, 167, 75, 522, 482, 544, 545, 394, 395, 248, 76, 77, 78, 79, 80, 81, 82, 83, 84, 131 }; @@ -384,229 +384,245 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 60, 487, 130, 261, 124, 142, 431, 86, 166, 60, - 435, 143, 175, 305, 127, 112, 127, 519, 127, 588, - 127, 127, 188, 475, 189, 145, 61, 608, 20, 642, - 127, 127, 481, 16, 171, 61, 85, 319, 228, 165, - 229, 60, 489, 320, 162, 127, 127, 497, 498, 446, - 172, -328, 128, -328, 128, 173, 128, 153, 128, 128, - 228, 141, 229, -330, 154, -330, 643, 61, 128, 128, - 241, 17, 257, 129, 20, 182, 242, 133, 22, 135, - 136, 438, 24, 168, 128, 301, 473, 448, 158, 150, - 151, 476, 359, 360, 20, 361, 254, 474, 362, 148, - 149, 264, 363, 464, 169, 170, 364, 365, 245, 166, - 156, -291, 667, 280, -290, 660, 292, 187, 159, 275, - -289, 447, 293, 20, -293, 521, 240, 22, 317, 249, - 160, 24, -328, 166, -328, 552, -292, 299, 302, 366, - 165, 190, 482, 314, 315, 187, 598, 235, 191, 192, - 60, 60, 310, 410, 466, 295, 412, 127, 468, 183, - 184, 185, 186, 367, 165, 183, 184, 185, 186, 308, - 185, 186, 291, 161, 259, 313, 61, 61, 138, 193, - 262, 183, 184, 185, 186, 463, -336, 226, 139, 581, - 582, 183, 184, 185, 186, 168, 194, 195, 246, 322, - 323, 324, 325, 277, 327, 328, 330, 278, 247, 604, - 605, 279, 368, 564, 267, 227, 316, 268, 269, 270, - 271, 196, 380, 272, 398, -332, 382, 615, 465, 387, - 399, 234, 183, 184, 185, 186, 183, 184, 185, 186, - 526, 237, 238, 372, 373, 374, 375, 376, 377, 378, - 379, 255, 631, 467, 243, 183, 184, 185, 186, 413, - 370, 487, 531, -330, 244, -330, 437, 570, 594, 230, - 298, 231, 646, 250, 183, 184, 185, 186, 251, 469, + 60, 486, 130, 261, 124, 142, 143, 86, 431, 60, + 518, 166, 435, 305, 127, 175, 127, 112, 127, 20, + 127, 127, 188, 22, 189, 145, 61, 24, 20, 588, + 127, 127, 480, 608, 171, 61, 228, 319, 229, 165, + 320, 60, 488, 446, 162, 127, 127, 496, 497, -328, + 642, -328, 128, 85, 128, -330, 128, -330, 128, 128, + 228, 141, 229, 16, 160, 473, 539, 61, 128, 128, + 241, 242, 257, 17, 129, 182, 474, 540, 133, 259, + 135, 136, 438, 168, 128, 262, 154, 643, 18, 20, + 150, 151, 187, 475, 20, -328, 254, -328, 22, 172, + 520, 264, 24, 245, 173, 169, 170, 161, 393, -291, + 153, -290, 166, 280, -289, 158, 292, 293, 667, 191, + 192, 275, -293, 138, 159, 660, 240, 187, -292, 249, + 448, 317, 193, 139, 552, -332, 166, 299, 302, 598, + 165, 190, 481, 314, 315, 183, 184, 185, 186, 235, + 60, 60, 310, 410, 464, 295, 412, 127, 194, 195, + 183, 184, 185, 186, 165, -330, 20, -330, 85, 308, + 22, 227, 291, 20, 24, 313, 61, 61, 267, 185, + 186, 268, 269, 270, 271, 466, 230, 272, 231, 581, + 582, 196, 232, 246, 233, 168, 148, 149, 468, 322, + 323, 324, 325, 247, 327, 328, 330, 156, 183, 184, + 185, 186, 277, 125, 564, 234, 278, 316, 126, 525, + 279, 243, 380, 85, 398, 399, 382, 615, 20, 387, + -336, 226, 183, 184, 185, 186, 237, 454, 183, 184, + 185, 186, 238, 372, 373, 374, 375, 376, 377, 378, + 379, 244, 631, 604, 605, 183, 184, 185, 186, 413, + 370, 486, 530, 183, 184, 185, 186, 570, 125, 437, + 594, 250, 646, 126, 251, -102, 183, 184, 185, 186, 397, 252, 253, 415, 415, 415, 419, 415, 415, 436, - 302, 232, 260, 233, 302, 263, 60, 530, 183, 184, - 185, 186, 524, 266, 427, 389, 390, 392, 273, 400, - 401, -102, 403, 404, 405, 406, 287, 296, 183, 184, - 185, 186, 61, 183, 184, 185, 186, 301, 85, 306, - 309, 613, 443, 20, 416, 417, 445, 420, 421, 311, - 183, 184, 185, 186, 318, 183, 184, 185, 186, 183, - 184, 185, 186, 307, 198, 199, 320, 381, 127, -336, - -336, -336, 225, 226, 636, 637, 638, 183, 184, 185, - 186, 384, 385, 125, 386, 302, 452, 453, 126, 398, - 648, 649, 391, 408, 460, 399, 183, 184, 185, 186, - 486, 219, 220, 402, 499, 422, 128, 221, 166, 661, - 222, 223, 224, 225, 226, 480, 480, 664, 425, 430, - 198, 432, 441, 509, 509, 444, 491, 442, 446, 419, - 496, 480, 480, 516, 593, 451, 484, 522, 461, 165, - 183, 184, 185, 186, 455, 397, 471, 456, 198, 199, - 200, 457, 458, 267, 533, 477, 268, 269, 270, 271, - 478, 60, 272, 221, 501, 485, 222, 223, 224, 225, - 226, 503, 527, 508, 493, 515, 520, 321, 528, 534, - 500, 535, 536, 504, 218, 219, 220, 61, 537, 20, - 540, 221, 561, 542, 222, 223, 224, 225, 226, 547, - 559, 543, 299, 504, 132, 558, 134, 302, 549, 137, - 550, 144, 146, 183, 184, 185, 186, 553, 554, 480, - 85, 555, 577, 578, 155, 20, 546, 157, 556, 583, - 166, 163, 563, 567, 454, 589, 590, 176, 177, 178, - 179, 180, 569, 538, 571, 539, 572, 568, 183, 184, - 185, 186, 183, 184, 185, 186, 198, 548, 579, 573, - 595, 165, 302, 580, 600, 125, 616, 617, 618, 585, - 126, 602, 620, 480, 480, 586, 18, 606, 606, 596, - 599, 601, 20, 264, 629, 429, 22, 610, 611, 440, - 24, 632, 633, 612, 220, 621, 393, 634, 630, 221, - 628, 625, 222, 223, 224, 225, 226, 640, 654, 635, - 496, 480, 575, 647, 652, 651, 264, 264, 264, 655, - 658, 289, 668, 609, 117, 614, 274, 659, 183, 184, - 185, 186, 264, 264, 494, 619, 480, 665, 663, 562, - 428, 511, 424, 656, 512, 566, 653, 492, 669, 622, - 290, 264, 662, 514, 0, 396, 480, 0, 0, 264, - 486, 0, 0, 606, 0, 449, 504, 0, 0, 0, - 326, 0, 183, 184, 185, 186, 331, 0, 0, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, -13, 87, 0, 358, 462, - 0, 0, 0, 0, 0, 18, 85, 0, 19, 0, - 0, 20, 0, 0, 21, 22, 23, 88, 0, 24, - 25, 89, 90, 91, 26, 27, 92, 93, 0, 0, - 94, 95, 96, 97, 0, 98, 99, 100, 101, 0, - 0, 102, 28, 29, 103, 104, 105, 30, 31, 106, - 32, 33, 34, 35, 36, 37, 0, 38, 39, 40, - 41, 42, 43, 107, 116, 44, 0, 108, 45, 46, - 47, 48, 49, 0, 0, 0, 50, 51, 52, 183, - 184, 185, 186, 0, 109, 183, 184, 185, 186, 0, - 0, 53, 0, 0, 0, 0, 183, 184, 185, 186, - 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, - -3, 87, 54, 55, 0, 56, 513, 57, 58, 0, - 18, 85, 525, 19, 0, 59, 20, 0, 0, 21, - 22, 23, 88, 532, 24, 25, 89, 90, 91, 26, - 27, 92, 93, 0, 0, 94, 95, 96, 97, 0, - 98, 99, 100, 101, 0, 0, 102, 28, 29, 103, - 104, 105, 30, 31, 106, 32, 33, 34, 35, 36, - 37, 0, 38, 39, 40, 41, 42, 43, 107, 116, - 44, 0, 108, 45, 46, 47, 48, 49, 0, 0, - 0, 50, 51, 52, 0, 0, 0, 0, 0, 109, - 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, + 302, 447, 321, 255, 302, 260, 60, 183, 184, 185, + 186, 463, 523, 263, 427, 266, 273, 389, 390, 392, + 287, 400, 401, 296, 403, 404, 405, 406, 298, 613, + 359, 360, 61, 361, 301, 306, 362, 465, 307, 309, + 363, 311, 443, 318, 364, 365, 445, 467, 320, 386, + 183, 184, 185, 186, 381, 183, 184, 185, 186, 384, + 385, 391, 636, 637, 638, 402, 408, 425, 127, 422, + 469, 183, 184, 185, 186, 430, 529, 366, 648, 649, + 444, 183, 184, 185, 186, 302, 452, 453, 432, 398, + 399, 442, 416, 417, 460, 420, 421, 661, 441, 446, + 485, 367, 451, 455, 498, 664, 128, 183, 184, 185, + 186, 166, 456, 457, 458, 479, 479, 183, 184, 185, + 186, 198, 199, 508, 508, 461, 490, 471, 476, 419, + 495, 479, 479, 515, 593, 477, 483, 521, 500, 165, + 183, 184, 185, 186, 484, 397, 183, 184, 185, 186, + 368, 502, 507, 514, 532, 519, 527, 533, 219, 220, + 534, 60, 535, 536, 221, 542, 543, 222, 223, 224, + 225, 226, 526, 20, 547, 549, 492, -336, -336, -336, + 225, 226, 499, 561, 550, 503, 553, 61, 267, 554, + 555, 268, 269, 270, 271, 556, 563, 272, 567, 559, + 558, 299, 569, 571, 572, 503, 302, 132, 579, 134, + 573, 585, 137, 580, 144, 146, 596, 601, 479, 586, + 599, 611, 577, 578, 610, 546, 612, 155, 621, 583, + 157, 630, 634, 166, 163, 589, 590, 635, 654, 198, + 176, 177, 178, 179, 180, 537, 568, 538, 183, 184, + 185, 186, 640, 647, 652, 655, 198, 658, 548, 668, + 595, 165, 302, 274, 600, 117, 616, 617, 618, 493, + 614, 602, 620, 479, 479, 665, 562, 606, 606, 510, + 428, 424, 221, 264, 629, 222, 223, 224, 225, 226, + 511, 632, 633, 566, 220, 622, 290, 396, 491, 221, + 628, 625, 222, 223, 224, 225, 226, 513, 0, 0, + 495, 479, 0, 575, 0, 651, 264, 264, 264, 0, + 0, 0, 0, 609, 289, 0, 0, 659, 198, 199, + 200, 0, 264, 264, 0, 619, 479, 0, 663, 0, + 0, 0, 0, 656, 0, 0, 653, 0, 669, 0, + 0, 264, 662, 0, 0, 0, 479, 0, 0, 264, + 485, 0, 0, 606, 218, 219, 220, 0, 503, 0, + 0, 221, 0, 326, 222, 223, 224, 225, 226, 331, + 0, 0, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, -13, 87, + 0, 358, 0, 0, 0, 0, 0, 0, 18, 85, + 0, 19, 0, 0, 20, 0, 0, 21, 22, 23, + 88, 0, 24, 25, 89, 90, 91, 26, 27, 92, + 93, 0, 0, 94, 95, 96, 97, 0, 98, 99, + 100, 101, 0, 0, 102, 28, 29, 103, 104, 105, + 30, 31, 106, 32, 33, 34, 35, 36, 37, 0, + 38, 39, 40, 41, 42, 43, 107, 116, 44, 0, + 108, 45, 46, 47, 48, 49, 0, 0, 0, 50, + 51, 52, 183, 184, 185, 186, 0, 109, 183, 184, + 185, 186, 0, 0, 53, 0, 0, 0, 0, 183, + 184, 185, 186, 0, 0, 0, 0, 0, 0, 183, + 184, 185, 186, -3, 87, 54, 55, 0, 56, 429, + 57, 58, 0, 18, 85, 440, 19, 0, 59, 20, + 0, 0, 21, 22, 23, 88, 449, 24, 25, 89, + 90, 91, 26, 27, 92, 93, 462, 0, 94, 95, + 96, 97, 0, 98, 99, 100, 101, 0, 0, 102, + 28, 29, 103, 104, 105, 30, 31, 106, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 107, 116, 44, 0, 108, 45, 46, 47, 48, + 49, 0, 0, 0, 50, 51, 52, 183, 184, 185, + 186, 0, 109, 183, 184, 185, 186, 0, 0, 53, + 183, 184, 185, 186, 1, 2, 3, 4, 5, 6, + 7, 0, 0, 0, 0, 0, 528, 0, 0, 0, + 54, 55, 0, 56, 512, 57, 58, 0, 0, 87, + 524, 0, 0, 59, 0, 0, 0, 531, 18, 85, + 470, 19, 0, 0, 20, 0, 0, 21, 22, 23, + 88, 0, 24, 25, 89, 90, 91, 26, 27, 92, + 93, 0, 0, 94, 95, 96, 97, 0, 98, 99, + 100, 101, 0, 565, 102, 28, 29, 103, 104, 105, + 30, 31, 106, 32, 33, 34, 35, 36, 37, 0, + 38, 39, 40, 41, 42, 43, 107, 116, 44, 0, + 108, 45, 46, 47, 48, 49, 0, 576, 0, 50, + 51, 52, 0, 0, 0, 0, 0, 109, 0, 0, + 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 529, 0, 0, 0, 54, 55, 0, - 56, 0, 57, 58, 0, 0, 0, 87, 0, 0, - 59, 0, 0, 0, 0, 0, 18, 85, 470, 19, - 0, 0, 20, 0, 0, 21, 22, 23, 88, 0, - 24, 25, 89, 90, 91, 26, 27, 92, 93, 0, - 0, 94, 95, 96, 97, 0, 98, 99, 100, 101, - 0, 565, 102, 28, 29, 103, 104, 105, 30, 31, - 106, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 107, 116, 44, 0, 108, 45, - 46, 47, 48, 49, 576, 0, 0, 50, 51, 52, - 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 54, 55, 0, 56, 0, + 57, 58, 0, 18, 85, 557, 19, 0, 59, 20, + 0, 0, 21, 22, 23, 88, 0, 24, 25, 89, + 90, 91, 26, 27, 92, 93, 0, 0, 94, 95, + 96, 97, 0, 98, 99, 100, 101, 0, 0, 102, + 28, 29, 103, 104, 105, 30, 31, 106, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 107, 116, 44, 0, 108, 45, 46, 47, 48, + 49, 0, 0, 0, 50, 51, 52, 0, 0, 0, + 0, 0, 109, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 87, 54, 55, 0, 56, 0, 57, 58, - 0, 18, 85, 557, 19, 0, 59, 20, 0, 0, - 21, 22, 23, 88, 0, 24, 25, 89, 90, 91, - 26, 27, 92, 93, 0, 0, 94, 95, 96, 97, - 0, 98, 99, 100, 101, 0, 0, 102, 28, 29, - 103, 104, 105, 30, 31, 106, 32, 33, 34, 35, - 36, 37, 0, 38, 39, 40, 41, 42, 43, 107, - 116, 44, 0, 108, 45, 46, 47, 48, 49, 0, - 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, - 109, 0, 0, 0, 0, 0, 0, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 54, 55, 0, 56, 0, 57, 58, 0, 18, 85, + 623, 19, 0, 59, 20, 0, 0, 21, 22, 23, + 88, 0, 24, 25, 89, 90, 91, 26, 27, 92, + 93, 0, 0, 94, 95, 96, 97, 0, 98, 99, + 100, 101, 0, 0, 102, 28, 29, 103, 104, 105, + 30, 31, 106, 32, 33, 34, 35, 36, 37, 0, + 38, 39, 40, 41, 42, 43, 107, 116, 44, 0, + 108, 45, 46, 47, 48, 49, 0, 0, 0, 50, + 51, 52, 0, 0, 0, 0, 0, 109, 0, 0, + 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 87, 54, 55, - 0, 56, 0, 57, 58, 0, 18, 85, 623, 19, - 0, 59, 20, 0, 0, 21, 22, 23, 88, 0, - 24, 25, 89, 90, 91, 26, 27, 92, 93, 0, - 0, 94, 95, 96, 97, 0, 98, 99, 100, 101, - 0, 0, 102, 28, 29, 103, 104, 105, 30, 31, - 106, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 107, 116, 44, 0, 108, 45, - 46, 47, 48, 49, 0, 0, 0, 50, 51, 52, - 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 54, 55, 0, 56, 0, + 57, 58, 0, 18, 85, 624, 19, 0, 59, 20, + 0, 0, 21, 22, 23, 88, 0, 24, 25, 89, + 90, 91, 26, 27, 92, 93, 0, 0, 94, 95, + 96, 97, 0, 98, 99, 100, 101, 0, 0, 102, + 28, 29, 103, 104, 105, 30, 31, 106, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 107, 116, 44, 0, 108, 45, 46, 47, 48, + 49, 0, 0, 0, 50, 51, 52, 0, 0, 0, + 0, 0, 109, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 87, 54, 55, 0, 56, 0, 57, 58, - 0, 18, 85, 624, 19, 0, 59, 20, 0, 0, - 21, 22, 23, 88, 0, 24, 25, 89, 90, 91, - 26, 27, 92, 93, 0, 0, 94, 95, 96, 97, - 0, 98, 99, 100, 101, 0, 0, 102, 28, 29, - 103, 104, 105, 30, 31, 106, 32, 33, 34, 35, - 36, 37, 0, 38, 39, 40, 41, 42, 43, 107, - 116, 44, 0, 108, 45, 46, 47, 48, 49, 0, - 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, - 109, 0, 0, 0, 0, 0, 0, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 54, 55, 0, 56, 0, 57, 58, 0, 18, 85, + 627, 19, 0, 59, 20, 0, 0, 21, 22, 23, + 88, 0, 24, 25, 89, 90, 91, 26, 27, 92, + 93, 0, 0, 94, 95, 96, 97, 0, 98, 99, + 100, 101, 0, 0, 102, 28, 29, 103, 104, 105, + 30, 31, 106, 32, 33, 34, 35, 36, 37, 0, + 38, 39, 40, 41, 42, 43, 107, 116, 44, 0, + 108, 45, 46, 47, 48, 49, 0, 0, 0, 50, + 51, 52, 0, 0, 0, 0, 0, 109, 0, 0, + 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 87, 54, 55, - 0, 56, 0, 57, 58, 0, 18, 85, 627, 19, - 0, 59, 20, 0, 0, 21, 22, 23, 88, 0, - 24, 25, 89, 90, 91, 26, 27, 92, 93, 0, - 0, 94, 95, 96, 97, 0, 98, 99, 100, 101, - 0, 0, 102, 28, 29, 103, 104, 105, 30, 31, - 106, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 107, 116, 44, 0, 108, 45, - 46, 47, 48, 49, 0, 0, 0, 50, 51, 52, - 0, 0, 0, 0, 0, 109, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 54, 55, 0, 56, 0, + 57, 58, 0, 18, 85, 645, 19, 0, 59, 20, + 0, 0, 21, 22, 23, 88, 0, 24, 25, 89, + 90, 91, 26, 27, 92, 93, 0, 0, 94, 95, + 96, 97, 0, 98, 99, 100, 101, 0, 0, 102, + 28, 29, 103, 104, 105, 30, 31, 106, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 107, 116, 44, 0, 108, 45, 46, 47, 48, + 49, 0, 0, 0, 50, 51, 52, 0, 0, 0, + 0, 0, 109, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 87, 54, 55, 0, 56, 0, 57, 58, - 0, 18, 85, 645, 19, 0, 59, 20, 0, 0, - 21, 22, 23, 88, 0, 24, 25, 89, 90, 91, - 26, 27, 92, 93, 0, 0, 94, 95, 96, 97, - 0, 98, 99, 100, 101, 0, 0, 102, 28, 29, - 103, 104, 105, 30, 31, 106, 32, 33, 34, 35, - 36, 37, 0, 38, 39, 40, 41, 42, 43, 107, - 116, 44, 0, 108, 45, 46, 47, 48, 49, 0, - 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, - 109, 0, 0, 0, 0, 0, 0, 53, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 54, 55, 0, 56, 0, 57, 58, 0, 18, 85, + 0, 19, 0, 59, 20, 0, 0, 21, 22, 23, + 88, 0, 24, 25, 89, 90, 91, 26, 27, 92, + 93, 0, 0, 94, 95, 96, 97, 0, 98, 99, + 100, 101, 0, 0, 102, 28, 29, 103, 104, 105, + 30, 31, 106, 32, 33, 34, 35, 36, 37, 0, + 38, 39, 40, 41, 42, 43, 107, 116, 44, 0, + 108, 45, 46, 47, 48, 49, 0, 0, 0, 50, + 51, 52, 0, 0, 666, 0, 0, 109, 0, 0, + 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 87, 54, 55, - 0, 56, 0, 57, 58, 0, 18, 85, 0, 19, - 0, 59, 20, 0, 0, 21, 22, 23, 88, 0, - 24, 25, 89, 90, 91, 26, 27, 92, 93, 0, - 0, 94, 95, 96, 97, 0, 98, 99, 100, 101, - 0, 0, 102, 28, 29, 103, 104, 105, 30, 31, - 106, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 107, 116, 44, 0, 108, 45, - 46, 47, 48, 49, 0, 0, 0, 50, 51, 52, - 0, 0, 666, 0, 0, 109, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 87, 54, 55, 0, 56, 0, + 57, 58, 0, 18, 85, 0, 19, 0, 59, 20, + 0, 0, 21, 22, 23, 88, 0, 24, 25, 89, + 90, 91, 26, 27, 92, 93, 0, 0, 94, 95, + 96, 97, 0, 98, 99, 100, 101, 0, 0, 102, + 28, 29, 103, 104, 105, 30, 31, 106, 32, 33, + 34, 35, 36, 37, 0, 38, 39, 40, 41, 42, + 43, 107, 116, 44, 0, 108, 45, 46, 47, 48, + 49, 0, 0, 0, 50, 51, 52, 0, 0, 0, + 0, 0, 109, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 87, 54, 55, 0, 56, 0, 57, 58, - 0, 18, 85, 0, 19, 0, 59, 20, 0, 0, - 21, 22, 23, 88, 0, 24, 25, 89, 90, 91, - 26, 27, 92, 93, 0, 0, 94, 95, 96, 97, - 0, 98, 99, 100, 101, 0, 0, 102, 28, 29, - 103, 104, 105, 30, 31, 106, 32, 33, 34, 35, - 36, 37, 0, 38, 39, 40, 41, 42, 43, 107, - 116, 44, 0, 108, 45, 46, 47, 48, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, + 54, 55, 0, 56, 0, 57, 58, 0, 18, 85, + 0, 19, 0, 59, 20, 0, 0, 21, 22, 23, + 88, 0, 24, 25, 89, 90, 91, 26, 27, 92, + 93, 0, 0, 94, 95, 96, 97, 0, 98, 99, + 100, 101, 0, 0, 102, 28, 29, 103, 104, 105, + 30, 31, 106, 32, 33, 34, 35, 36, 37, 0, + 38, 39, 40, 41, 42, 43, 107, 0, 44, 0, + 108, 45, 46, 47, 48, 49, 0, 0, 0, 50, + 51, 52, 0, 87, 0, 0, 0, 109, 0, 0, + 0, 0, 18, 0, 53, 19, 0, 0, 20, 0, + 0, 21, 22, 23, -19, 0, 24, 25, 0, 0, + 0, 26, 27, 0, 0, 54, 55, 0, 56, 0, + 57, 58, 0, 0, 0, 0, 0, 0, 59, 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, + 0, 0, 87, 50, 51, 52, 0, 0, 0, 0, + 0, 18, 0, 0, 19, 0, 0, 20, 53, 0, + 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, + 26, 27, 0, 0, 0, 0, 0, 0, 0, 54, + 55, 0, 56, 0, 57, 58, 0, 0, 28, 29, + 0, 0, 59, 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, 0, 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, - 109, 0, 0, 0, 0, 0, 0, 53, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 87, 54, 55, - 0, 56, 0, 57, 58, 0, 18, 85, 0, 19, - 0, 59, 20, 0, 0, 21, 22, 23, 88, 0, - 24, 25, 89, 90, 91, 26, 27, 92, 93, 0, - 0, 94, 95, 96, 97, 0, 98, 99, 100, 101, - 0, 0, 102, 28, 29, 103, 104, 105, 30, 31, - 106, 32, 33, 34, 35, 36, 37, 0, 38, 39, - 40, 41, 42, 43, 107, 0, 44, 0, 108, 45, - 46, 47, 48, 49, 0, 0, 0, 50, 51, 52, - 0, 87, 0, 0, 0, 109, 0, 0, 0, 0, - 18, 0, 53, 19, 0, 0, 20, 0, 0, 21, - 22, 23, -19, 0, 24, 25, 0, 0, 0, 26, - 27, 0, 0, 54, 55, 0, 56, 0, 57, 58, - 0, 0, 0, 0, 0, 0, 59, 28, 29, 0, - 0, 0, 30, 31, 0, 32, 33, 34, 35, 36, - 37, 0, 38, 39, 40, 41, 42, 43, 0, 0, + 18, 85, 0, 19, 0, 0, 20, 53, 0, 21, + 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, + 27, 0, 0, 0, 0, 0, 0, 0, 54, 55, + 0, 56, 0, 57, 58, 0, 0, 28, 29, 0, + -19, 59, 30, 31, 0, 32, 164, 34, 35, 36, + 37, 126, 38, 39, 40, 41, 42, 43, 0, 0, 44, 0, 0, 45, 46, 47, 48, 49, 0, 0, - 87, 50, 51, 52, 0, 0, 0, 0, 0, 18, - 0, 0, 19, 0, 0, 20, 53, 0, 21, 22, + 0, 50, 51, 52, 0, 0, 0, 0, 0, 18, + 85, 0, 19, 0, 0, 20, 53, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 56, 0, 57, 58, 0, 0, 28, 29, 0, 0, 59, 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, 0, 0, 0, - 50, 51, 52, 0, 0, 0, 0, 0, 18, 85, + 50, 51, 52, 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, 0, 20, 53, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 56, - 0, 57, 58, 0, 0, 28, 29, 0, -19, 59, - 30, 31, 0, 32, 164, 34, 35, 36, 37, 126, + 0, 57, 58, 0, 0, 28, 29, 0, 0, 59, + 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, 0, 0, 0, 50, - 51, 52, 0, 0, 0, 0, 0, 18, 85, 0, + 51, 52, 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, 0, 20, 53, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 56, 0, - 57, 58, 0, 0, 28, 29, 0, 0, 59, 30, + 57, 58, 0, 0, 28, 29, 0, 181, 59, 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, 0, 0, 0, 50, 51, @@ -614,39 +630,39 @@ static const yytype_int16 yytable[] = 0, 0, 20, 53, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 56, 0, 57, - 58, 0, 0, 28, 29, 0, 0, 59, 30, 31, + 58, 0, 0, 28, 29, 0, 294, 59, 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, 0, 0, 0, 50, 51, 52, - 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, - 0, 20, 53, 0, 21, 22, 23, 0, 0, 24, - 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, + 0, 0, 0, 0, 0, -335, 228, 0, 229, 0, + 0, -335, 53, 0, -335, -335, -335, 0, 0, -335, + -335, 0, 0, 0, -335, -335, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 56, 0, 57, 58, - 0, 0, 28, 29, 0, 181, 59, 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, 0, 0, 0, 50, 51, 52, 0, + 0, 0, -335, -335, 0, 312, 59, -335, -335, 0, + -335, -335, -335, -335, -335, -335, 0, -335, -335, -335, + -335, -335, -335, 0, 0, -335, 0, 0, -335, -335, + -335, -335, -335, 0, 0, 0, -335, -335, -335, 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, 0, - 20, 53, 0, 21, 22, 23, 0, 0, 24, 25, + 20, -335, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, - 0, 0, 54, 55, 0, 56, 0, 57, 58, 0, - 0, 28, 29, 0, 294, 59, 30, 31, 0, 32, + 0, 0, -335, -335, 0, -335, 0, -335, -335, 0, + 0, 28, 29, 0, 0, -335, 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, 0, 0, 0, 50, 51, 52, 0, 0, - 0, 0, 0, -335, 228, 0, 229, 0, 0, -335, - 53, 0, -335, -335, -335, 0, 0, -335, -335, 0, - 0, 0, -335, -335, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 18, 0, 0, 19, 0, 0, 20, + 53, 0, 21, 22, 23, 0, 0, 24, 25, 0, + 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 56, 0, 57, 58, 0, 0, - -335, -335, 0, 312, 59, -335, -335, 0, -335, -335, - -335, -335, -335, -335, 0, -335, -335, -335, -335, -335, - -335, 0, 0, -335, 0, 0, -335, -335, -335, -335, - -335, 0, 0, 0, -335, -335, -335, 0, 0, 0, - 0, 0, 18, 0, 0, 19, 0, 0, 20, -335, + 28, 29, 0, 329, 59, 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, 0, 0, 0, 50, 51, 52, 0, 0, 0, + 0, 0, 18, 0, 0, 19, 0, 0, 20, 53, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, - -335, -335, 0, -335, 0, -335, -335, 0, 0, 28, - 29, 0, 0, -335, 30, 31, 0, 32, 33, 34, + 54, 55, 0, 56, 0, 57, 58, 0, 0, 28, + 29, 0, 371, 59, 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, 0, 0, 0, 50, 51, 52, 0, 0, 0, 0, @@ -654,7 +670,7 @@ static const yytype_int16 yytable[] = 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 56, 0, 57, 58, 0, 0, 28, 29, - 0, 329, 59, 30, 31, 0, 32, 33, 34, 35, + 0, 426, 59, 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, 0, 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, @@ -662,322 +678,322 @@ static const yytype_int16 yytable[] = 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 56, 0, 57, 58, 0, 0, 28, 29, 0, - 371, 59, 30, 31, 0, 32, 33, 34, 35, 36, + 459, 59, 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, 0, 0, 0, 50, 51, 52, 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, 0, 20, 53, 0, 21, 22, 23, 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, - 56, 0, 57, 58, 0, 0, 28, 29, 0, 426, + 56, 0, 57, 58, 0, 0, 28, 29, 0, 0, 59, 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, 0, 0, 0, - 50, 51, 52, 0, 0, 0, 0, 0, 18, 0, - 0, 19, 0, 0, 20, 53, 0, 21, 22, 23, - 0, 0, 24, 25, 0, 0, 0, 26, 27, 0, + 50, 51, 52, 0, 0, 0, 0, 0, -334, 0, + 0, -334, 0, 0, -334, 53, 0, -334, -334, -334, + 0, 0, -334, -334, 0, 0, 0, -334, -334, 0, 0, 0, 0, 0, 0, 0, 54, 55, 0, 56, - 0, 57, 58, 0, 0, 28, 29, 0, 459, 59, - 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, 0, 0, 0, 50, - 51, 52, 0, 0, 0, 0, 0, 18, 0, 0, - 19, 0, 0, 20, 53, 0, 21, 22, 23, 0, - 0, 24, 25, 0, 0, 0, 26, 27, 0, 0, - 0, 0, 0, 0, 0, 54, 55, 0, 56, 0, - 57, 58, 0, 0, 28, 29, 0, 0, 59, 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, 0, 0, 0, 50, 51, - 52, 0, 0, 0, 0, 0, -334, 0, 0, -334, - 0, 0, -334, 53, 0, -334, -334, -334, 0, 0, - -334, -334, 0, 0, 0, -334, -334, 0, 0, 0, - 0, 0, 0, 0, 54, 55, 0, 56, 0, 57, - 58, 0, 0, -334, -334, 0, 0, 288, -334, -334, - 0, -334, -334, -334, -334, -334, -334, 0, -334, -334, - -334, -334, -334, -334, 0, 0, -334, 0, 0, -334, - -334, -334, -334, -334, 0, 0, 0, -334, -334, -334, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -334, 0, 0, 0, 0, 0, 0, 0, - 0, 197, 0, 0, 0, 0, 0, 0, 198, 199, - 200, 0, 0, -334, -334, 0, -334, 0, -334, -334, - 0, 201, 0, 0, 0, 0, -334, 202, 203, 204, - 450, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 0, 0, 0, - 0, 221, 197, 0, 222, 223, 224, 225, 226, 198, - 199, 200, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 201, 0, 0, 0, 0, 0, 202, 203, - 204, 0, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 0, 0, - 0, 0, 221, 197, 0, 222, 223, 224, 225, 226, - 198, 199, 200, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -336, 0, 0, 0, 0, 0, 202, - 203, 204, 0, 205, 206, 207, 208, 209, 210, 211, + 0, 57, 58, 0, 0, -334, -334, 0, 0, 288, + -334, -334, 0, -334, -334, -334, -334, -334, -334, 0, + -334, -334, -334, -334, -334, -334, 0, 0, -334, 0, + 0, -334, -334, -334, -334, -334, 0, 0, 0, -334, + -334, -334, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -334, 0, 0, 0, 0, 0, + 0, 0, 0, 197, 0, 0, 0, 0, 0, 0, + 198, 199, 200, 0, 0, -334, -334, 0, -334, 0, + -334, -334, 0, 201, 0, 0, 0, 0, -334, 202, + 203, 204, 450, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 0, 0, 0, 0, 221, 197, 0, 222, 223, 224, 225, 226, 198, 199, 200, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 201, 0, 0, 0, 0, 0, 202, 203, 204, 0, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 0, 0, 0, 0, 221, 197, 0, 222, 223, 224, 225, 226, 198, 199, 200, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 204, 0, 205, 206, 207, 208, 209, + 0, 0, 0, 0, 0, -336, 0, 0, 0, 0, + 0, 202, 203, 204, 0, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 0, 0, 0, 0, 221, -336, 0, 222, 223, + 220, 0, 0, 0, 0, 221, 197, 0, 222, 223, 224, 225, 226, 198, 199, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 205, 206, 207, 208, + 0, 0, 202, 203, 204, 0, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 198, 199, 200, 0, 221, 0, 0, 222, - 223, 224, 225, 226, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 199, 200, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 0, 0, 0, 0, 221, 0, 0, 222, 223, - 224, 225, 226, 210, 211, 212, 213, 214, 215, 216, + 219, 220, 0, 0, 0, 0, 221, 197, 0, 222, + 223, 224, 225, 226, 198, 199, 200, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 204, 0, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 0, 0, 0, 0, 221, -336, 0, + 222, 223, 224, 225, 226, 198, 199, 200, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 198, 199, 200, 0, 221, 0, 0, 222, 223, 224, 225, 226, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 199, 200, 0, 0, - 0, 0, 0, 211, 212, 213, 214, 215, 216, 217, - 218, 219, 220, 0, 198, 199, 200, 221, 0, 0, - 222, 223, 224, 225, 226, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 198, 199, 200, 0, 221, 0, - 0, 222, 223, 224, 225, 226, 214, 215, 216, 217, - 218, 219, 220, 198, 199, 200, 0, 221, 0, 0, - 222, 223, 224, 225, 226, 0, 0, 0, 216, 217, - 218, 219, 220, 198, 199, 200, 0, 221, 0, 0, - 222, 223, 224, 225, 226, 0, 0, -336, 217, 218, - 219, 220, 0, 0, 0, 0, 221, 0, 0, 222, - 223, 224, 225, 226, 0, 0, 0, 0, 217, 218, - 219, 220, 0, 0, 0, 0, 221, 0, 0, 222, - 223, 224, 225, 226 + 0, 0, 0, 0, 0, 0, 0, 198, 199, 200, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 0, 0, 0, 0, 221, 0, 0, + 222, 223, 224, 225, 226, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 198, 199, 200, 0, + 221, 0, 0, 222, 223, 224, 225, 226, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 199, 200, + 0, 0, 0, 0, 0, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 0, 198, 199, 200, 221, + 0, 0, 222, 223, 224, 225, 226, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 198, 199, 200, 0, + 221, 0, 0, 222, 223, 224, 225, 226, 214, 215, + 216, 217, 218, 219, 220, 198, 199, 200, 0, 221, + 0, 0, 222, 223, 224, 225, 226, 0, 0, 0, + 216, 217, 218, 219, 220, 198, 199, 200, 0, 221, + 0, 0, 222, 223, 224, 225, 226, 0, 0, -336, + 217, 218, 219, 220, 0, 0, 0, 0, 221, 0, + 0, 222, 223, 224, 225, 226, 0, 0, 0, 0, + 217, 218, 219, 220, 0, 0, 0, 0, 221, 0, + 0, 222, 223, 224, 225, 226 }; static const yytype_int16 yycheck[] = { - 10, 400, 19, 109, 17, 27, 300, 11, 49, 19, - 304, 27, 53, 150, 18, 12, 20, 435, 22, 554, - 24, 25, 11, 22, 13, 29, 10, 578, 16, 22, - 34, 35, 390, 0, 51, 19, 11, 174, 11, 49, - 13, 51, 400, 13, 48, 49, 50, 405, 406, 13, - 56, 11, 18, 13, 20, 61, 22, 13, 24, 25, - 11, 27, 13, 11, 130, 13, 59, 51, 34, 35, - 92, 9, 102, 18, 16, 59, 92, 22, 20, 24, - 25, 14, 24, 49, 50, 84, 11, 14, 130, 34, - 35, 385, 10, 11, 16, 13, 100, 22, 16, 31, - 32, 111, 20, 14, 49, 50, 24, 25, 30, 150, - 42, 84, 663, 123, 84, 650, 138, 15, 130, 116, - 84, 22, 138, 16, 84, 23, 92, 20, 169, 95, - 87, 24, 11, 174, 13, 493, 84, 147, 148, 57, - 150, 130, 130, 160, 161, 15, 564, 85, 110, 111, - 160, 161, 156, 259, 14, 139, 262, 161, 14, 92, - 93, 94, 95, 81, 174, 92, 93, 94, 95, 153, - 94, 95, 138, 130, 104, 159, 160, 161, 120, 110, - 110, 92, 93, 94, 95, 22, 127, 128, 130, 547, - 548, 92, 93, 94, 95, 161, 108, 109, 120, 183, - 184, 185, 186, 16, 188, 189, 190, 20, 130, 33, - 34, 24, 130, 507, 32, 130, 161, 35, 36, 37, - 38, 108, 235, 41, 246, 11, 236, 585, 22, 239, - 246, 11, 92, 93, 94, 95, 92, 93, 94, 95, - 14, 56, 56, 227, 228, 229, 230, 231, 232, 233, - 234, 11, 610, 22, 130, 92, 93, 94, 95, 263, - 226, 660, 14, 11, 130, 13, 307, 14, 562, 11, - 59, 13, 630, 130, 92, 93, 94, 95, 130, 22, + 10, 400, 19, 109, 17, 27, 27, 11, 300, 19, + 435, 49, 304, 150, 18, 53, 20, 12, 22, 16, + 24, 25, 11, 20, 13, 29, 10, 24, 16, 554, + 34, 35, 390, 578, 51, 19, 11, 174, 13, 49, + 13, 51, 400, 13, 48, 49, 50, 405, 406, 11, + 22, 13, 18, 11, 20, 11, 22, 13, 24, 25, + 11, 27, 13, 0, 87, 11, 11, 51, 34, 35, + 92, 92, 102, 9, 18, 59, 22, 22, 22, 104, + 24, 25, 14, 49, 50, 110, 130, 59, 10, 16, + 34, 35, 15, 385, 16, 11, 100, 13, 20, 56, + 23, 111, 24, 30, 61, 49, 50, 130, 30, 84, + 13, 84, 150, 123, 84, 130, 138, 138, 663, 110, + 111, 116, 84, 120, 130, 650, 92, 15, 84, 95, + 14, 169, 110, 130, 492, 11, 174, 147, 148, 564, + 150, 130, 130, 160, 161, 92, 93, 94, 95, 85, + 160, 161, 156, 259, 14, 139, 262, 161, 108, 109, + 92, 93, 94, 95, 174, 11, 16, 13, 11, 153, + 20, 130, 138, 16, 24, 159, 160, 161, 32, 94, + 95, 35, 36, 37, 38, 14, 11, 41, 13, 547, + 548, 108, 11, 120, 13, 161, 31, 32, 14, 183, + 184, 185, 186, 130, 188, 189, 190, 42, 92, 93, + 94, 95, 16, 56, 506, 11, 20, 161, 61, 14, + 24, 130, 235, 11, 246, 246, 236, 585, 16, 239, + 127, 128, 92, 93, 94, 95, 56, 25, 92, 93, + 94, 95, 56, 227, 228, 229, 230, 231, 232, 233, + 234, 130, 610, 33, 34, 92, 93, 94, 95, 263, + 226, 660, 14, 92, 93, 94, 95, 14, 56, 307, + 562, 130, 630, 61, 130, 129, 92, 93, 94, 95, 246, 130, 130, 267, 268, 269, 270, 271, 272, 306, - 300, 11, 22, 13, 304, 39, 306, 22, 92, 93, - 94, 95, 439, 22, 288, 243, 244, 245, 22, 247, - 248, 129, 250, 251, 252, 253, 14, 84, 92, 93, - 94, 95, 306, 92, 93, 94, 95, 84, 11, 130, - 129, 583, 316, 16, 268, 269, 320, 271, 272, 129, - 92, 93, 94, 95, 22, 92, 93, 94, 95, 92, - 93, 94, 95, 87, 78, 79, 13, 56, 362, 124, - 125, 126, 127, 128, 616, 617, 618, 92, 93, 94, - 95, 56, 56, 56, 84, 385, 360, 361, 61, 401, - 632, 633, 120, 44, 368, 401, 92, 93, 94, 95, - 400, 115, 116, 130, 407, 61, 362, 121, 439, 651, - 124, 125, 126, 127, 128, 389, 390, 659, 15, 59, - 78, 59, 88, 423, 424, 12, 400, 129, 13, 403, - 404, 405, 406, 433, 561, 25, 392, 437, 130, 439, - 92, 93, 94, 95, 25, 401, 18, 25, 78, 79, - 80, 25, 25, 32, 461, 59, 35, 36, 37, 38, - 97, 461, 41, 121, 56, 130, 124, 125, 126, 127, - 128, 22, 446, 97, 402, 130, 129, 129, 12, 12, - 408, 12, 12, 411, 114, 115, 116, 461, 12, 16, - 11, 121, 56, 129, 124, 125, 126, 127, 128, 130, - 500, 129, 502, 431, 21, 130, 23, 507, 129, 26, - 22, 28, 29, 92, 93, 94, 95, 129, 129, 493, - 11, 129, 542, 543, 41, 16, 482, 44, 129, 549, - 561, 48, 11, 11, 25, 555, 556, 54, 55, 56, - 57, 58, 88, 471, 12, 473, 129, 521, 92, 93, - 94, 95, 92, 93, 94, 95, 78, 485, 15, 22, - 563, 561, 562, 129, 567, 56, 586, 587, 588, 130, - 61, 574, 592, 547, 548, 129, 10, 577, 578, 22, - 129, 86, 16, 583, 604, 129, 20, 130, 129, 129, - 24, 611, 612, 129, 116, 22, 30, 22, 130, 121, - 603, 601, 124, 125, 126, 127, 128, 45, 17, 129, - 584, 585, 540, 129, 129, 635, 616, 617, 618, 85, - 129, 138, 129, 579, 13, 584, 116, 647, 92, 93, - 94, 95, 632, 633, 403, 591, 610, 660, 658, 502, - 290, 424, 281, 643, 425, 515, 640, 401, 668, 594, - 138, 651, 655, 431, -1, 246, 630, -1, -1, 659, - 660, -1, -1, 663, -1, 129, 594, -1, -1, -1, - 187, -1, 92, 93, 94, 95, 193, -1, -1, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 0, 1, -1, 225, 129, - -1, -1, -1, -1, -1, 10, 11, -1, 13, -1, - -1, 16, -1, -1, 19, 20, 21, 22, -1, 24, - 25, 26, 27, 28, 29, 30, 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, -1, -1, -1, 81, 82, 83, 92, - 93, 94, 95, -1, 89, 92, 93, 94, 95, -1, - -1, 96, -1, -1, -1, -1, 92, 93, 94, 95, - 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, - 0, 1, 117, 118, -1, 120, 129, 122, 123, -1, - 10, 11, 129, 13, -1, 130, 16, -1, -1, 19, - 20, 21, 22, 129, 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, -1, -1, - -1, 81, 82, 83, -1, -1, -1, -1, -1, 89, - -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, + 300, 22, 129, 11, 304, 22, 306, 92, 93, 94, + 95, 22, 439, 39, 288, 22, 22, 243, 244, 245, + 14, 247, 248, 84, 250, 251, 252, 253, 59, 583, + 10, 11, 306, 13, 84, 130, 16, 22, 87, 129, + 20, 129, 316, 22, 24, 25, 320, 22, 13, 84, + 92, 93, 94, 95, 56, 92, 93, 94, 95, 56, + 56, 120, 616, 617, 618, 130, 44, 15, 362, 61, + 22, 92, 93, 94, 95, 59, 22, 57, 632, 633, + 12, 92, 93, 94, 95, 385, 360, 361, 59, 401, + 401, 129, 268, 269, 368, 271, 272, 651, 88, 13, + 400, 81, 25, 25, 407, 659, 362, 92, 93, 94, + 95, 439, 25, 25, 25, 389, 390, 92, 93, 94, + 95, 78, 79, 423, 424, 130, 400, 18, 59, 403, + 404, 405, 406, 433, 561, 97, 392, 437, 56, 439, + 92, 93, 94, 95, 130, 401, 92, 93, 94, 95, + 130, 22, 97, 130, 461, 129, 12, 12, 115, 116, + 12, 461, 12, 12, 121, 129, 129, 124, 125, 126, + 127, 128, 446, 16, 130, 129, 402, 124, 125, 126, + 127, 128, 408, 56, 22, 411, 129, 461, 32, 129, + 129, 35, 36, 37, 38, 129, 11, 41, 11, 499, + 130, 501, 88, 12, 129, 431, 506, 21, 15, 23, + 22, 130, 26, 129, 28, 29, 22, 86, 492, 129, + 129, 129, 542, 543, 130, 481, 129, 41, 22, 549, + 44, 130, 22, 561, 48, 555, 556, 129, 17, 78, + 54, 55, 56, 57, 58, 471, 520, 473, 92, 93, + 94, 95, 45, 129, 129, 85, 78, 129, 484, 129, + 563, 561, 562, 116, 567, 13, 586, 587, 588, 403, + 584, 574, 592, 547, 548, 660, 501, 577, 578, 424, + 290, 281, 121, 583, 604, 124, 125, 126, 127, 128, + 425, 611, 612, 514, 116, 594, 138, 246, 401, 121, + 603, 601, 124, 125, 126, 127, 128, 431, -1, -1, + 584, 585, -1, 539, -1, 635, 616, 617, 618, -1, + -1, -1, -1, 579, 138, -1, -1, 647, 78, 79, + 80, -1, 632, 633, -1, 591, 610, -1, 658, -1, + -1, -1, -1, 643, -1, -1, 640, -1, 668, -1, + -1, 651, 655, -1, -1, -1, 630, -1, -1, 659, + 660, -1, -1, 663, 114, 115, 116, -1, 594, -1, + -1, 121, -1, 187, 124, 125, 126, 127, 128, 193, + -1, -1, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 0, 1, + -1, 225, -1, -1, -1, -1, -1, -1, 10, 11, + -1, 13, -1, -1, 16, -1, -1, 19, 20, 21, + 22, -1, 24, 25, 26, 27, 28, 29, 30, 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, -1, -1, -1, 81, + 82, 83, 92, 93, 94, 95, -1, 89, 92, 93, + 94, 95, -1, -1, 96, -1, -1, -1, -1, 92, + 93, 94, 95, -1, -1, -1, -1, -1, -1, 92, + 93, 94, 95, 0, 1, 117, 118, -1, 120, 129, + 122, 123, -1, 10, 11, 129, 13, -1, 130, 16, + -1, -1, 19, 20, 21, 22, 129, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 129, -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, -1, -1, -1, 81, 82, 83, 92, 93, 94, + 95, -1, 89, 92, 93, 94, 95, -1, -1, 96, + 92, 93, 94, 95, 3, 4, 5, 6, 7, 8, + 9, -1, -1, -1, -1, -1, 450, -1, -1, -1, + 117, 118, -1, 120, 129, 122, 123, -1, -1, 1, + 129, -1, -1, 130, -1, -1, -1, 129, 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, -1, 40, 41, + 42, 43, -1, 507, 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, -1, 541, -1, 81, + 82, 83, -1, -1, -1, -1, -1, 89, -1, -1, + -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 450, -1, -1, -1, 117, 118, -1, - 120, -1, 122, 123, -1, -1, -1, 1, -1, -1, - 130, -1, -1, -1, -1, -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, -1, 40, 41, 42, 43, - -1, 508, 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, 541, -1, -1, 81, 82, 83, - -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, - -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1, 117, 118, -1, 120, -1, + 122, 123, -1, 10, 11, 12, 13, -1, 130, 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, -1, -1, -1, 81, 82, 83, -1, -1, -1, + -1, -1, 89, -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1, 117, 118, -1, 120, -1, 122, 123, - -1, 10, 11, 12, 13, -1, 130, 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, -1, - -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, - 89, -1, -1, -1, -1, -1, -1, 96, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, + 117, 118, -1, 120, -1, 122, 123, -1, 10, 11, + 12, 13, -1, 130, 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, -1, -1, -1, 81, + 82, 83, -1, -1, -1, -1, -1, 89, -1, -1, + -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1, 117, 118, - -1, 120, -1, 122, 123, -1, 10, 11, 12, 13, - -1, 130, 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, -1, -1, -1, 81, 82, 83, - -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, - -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1, 117, 118, -1, 120, -1, + 122, 123, -1, 10, 11, 12, 13, -1, 130, 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, -1, -1, -1, 81, 82, 83, -1, -1, -1, + -1, -1, 89, -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1, 117, 118, -1, 120, -1, 122, 123, - -1, 10, 11, 12, 13, -1, 130, 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, -1, - -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, - 89, -1, -1, -1, -1, -1, -1, 96, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, + 117, 118, -1, 120, -1, 122, 123, -1, 10, 11, + 12, 13, -1, 130, 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, -1, -1, -1, 81, + 82, 83, -1, -1, -1, -1, -1, 89, -1, -1, + -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1, 117, 118, - -1, 120, -1, 122, 123, -1, 10, 11, 12, 13, - -1, 130, 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, -1, -1, -1, 81, 82, 83, - -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, - -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1, 117, 118, -1, 120, -1, + 122, 123, -1, 10, 11, 12, 13, -1, 130, 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, -1, -1, -1, 81, 82, 83, -1, -1, -1, + -1, -1, 89, -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1, 117, 118, -1, 120, -1, 122, 123, - -1, 10, 11, 12, 13, -1, 130, 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, -1, - -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, - 89, -1, -1, -1, -1, -1, -1, 96, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, + 117, 118, -1, 120, -1, 122, 123, -1, 10, 11, + -1, 13, -1, 130, 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, -1, -1, -1, 81, + 82, 83, -1, -1, 86, -1, -1, 89, -1, -1, + -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1, 117, 118, - -1, 120, -1, 122, 123, -1, 10, 11, -1, 13, - -1, 130, 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, -1, -1, -1, 81, 82, 83, - -1, -1, 86, -1, -1, 89, -1, -1, -1, -1, - -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1, 117, 118, -1, 120, -1, + 122, 123, -1, 10, 11, -1, 13, -1, 130, 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, -1, -1, -1, 81, 82, 83, -1, -1, -1, + -1, -1, 89, -1, -1, -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1, 117, 118, -1, 120, -1, 122, 123, - -1, 10, 11, -1, 13, -1, 130, 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, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, + 117, 118, -1, 120, -1, 122, 123, -1, 10, 11, + -1, 13, -1, 130, 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, -1, -1, -1, 81, + 82, 83, -1, 1, -1, -1, -1, 89, -1, -1, + -1, -1, 10, -1, 96, 13, -1, -1, 16, -1, + -1, 19, 20, 21, 22, -1, 24, 25, -1, -1, + -1, 29, 30, -1, -1, 117, 118, -1, 120, -1, + 122, 123, -1, -1, -1, -1, -1, -1, 130, 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, + -1, -1, 1, 81, 82, 83, -1, -1, -1, -1, + -1, 10, -1, -1, 13, -1, -1, 16, 96, -1, + 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, + 29, 30, -1, -1, -1, -1, -1, -1, -1, 117, + 118, -1, 120, -1, 122, 123, -1, -1, 47, 48, + -1, -1, 130, 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, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, -1, - 89, -1, -1, -1, -1, -1, -1, 96, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1, 117, 118, - -1, 120, -1, 122, 123, -1, 10, 11, -1, 13, - -1, 130, 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, -1, -1, -1, 81, 82, 83, - -1, 1, -1, -1, -1, 89, -1, -1, -1, -1, - 10, -1, 96, 13, -1, -1, 16, -1, -1, 19, - 20, 21, 22, -1, 24, 25, -1, -1, -1, 29, - 30, -1, -1, 117, 118, -1, 120, -1, 122, 123, - -1, -1, -1, -1, -1, -1, 130, 47, 48, -1, - -1, -1, 52, 53, -1, 55, 56, 57, 58, 59, - 60, -1, 62, 63, 64, 65, 66, 67, -1, -1, + 10, 11, -1, 13, -1, -1, 16, 96, -1, 19, + 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, + 30, -1, -1, -1, -1, -1, -1, -1, 117, 118, + -1, 120, -1, 122, 123, -1, -1, 47, 48, -1, + 129, 130, 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, -1, -1, - 1, 81, 82, 83, -1, -1, -1, -1, -1, 10, - -1, -1, 13, -1, -1, 16, 96, -1, 19, 20, + -1, 81, 82, 83, -1, -1, -1, -1, -1, 10, + 11, -1, 13, -1, -1, 16, 96, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 117, 118, -1, 120, -1, 122, 123, -1, -1, 47, 48, -1, -1, 130, 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, -1, -1, -1, - 81, 82, 83, -1, -1, -1, -1, -1, 10, 11, + 81, 82, 83, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, 16, 96, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 117, 118, -1, 120, - -1, 122, 123, -1, -1, 47, 48, -1, 129, 130, - 52, 53, -1, 55, 56, 57, 58, 59, 60, 61, + -1, 122, 123, -1, -1, 47, 48, -1, -1, 130, + 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, -1, -1, -1, 81, - 82, 83, -1, -1, -1, -1, -1, 10, 11, -1, + 82, 83, -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, -1, 16, 96, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 117, 118, -1, 120, -1, - 122, 123, -1, -1, 47, 48, -1, -1, 130, 52, + 122, 123, -1, -1, 47, 48, -1, 129, 130, 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, -1, -1, -1, 81, 82, @@ -985,11 +1001,11 @@ static const yytype_int16 yycheck[] = -1, -1, 16, 96, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 117, 118, -1, 120, -1, 122, - 123, -1, -1, 47, 48, -1, -1, 130, 52, 53, + 123, -1, -1, 47, 48, -1, 129, 130, 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, -1, -1, -1, 81, 82, 83, - -1, -1, -1, -1, -1, 10, -1, -1, 13, -1, + -1, -1, -1, -1, -1, 10, 11, -1, 13, -1, -1, 16, 96, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 117, 118, -1, 120, -1, 122, 123, @@ -1001,11 +1017,11 @@ static const yytype_int16 yycheck[] = 16, 96, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 117, 118, -1, 120, -1, 122, 123, -1, - -1, 47, 48, -1, 129, 130, 52, 53, -1, 55, + -1, 47, 48, -1, -1, 130, 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, -1, -1, -1, 81, 82, 83, -1, -1, - -1, -1, -1, 10, 11, -1, 13, -1, -1, 16, + -1, -1, -1, 10, -1, -1, 13, -1, -1, 16, 96, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 117, 118, -1, 120, -1, 122, 123, -1, -1, @@ -1017,7 +1033,7 @@ static const yytype_int16 yycheck[] = -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 117, 118, -1, 120, -1, 122, 123, -1, -1, 47, - 48, -1, -1, 130, 52, 53, -1, 55, 56, 57, + 48, -1, 129, 130, 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, -1, -1, -1, 81, 82, 83, -1, -1, -1, -1, @@ -1040,7 +1056,7 @@ static const yytype_int16 yycheck[] = -1, -1, 13, -1, -1, 16, 96, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 117, 118, -1, - 120, -1, 122, 123, -1, -1, 47, 48, -1, 129, + 120, -1, 122, 123, -1, -1, 47, 48, -1, -1, 130, 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, -1, -1, -1, @@ -1048,80 +1064,64 @@ static const yytype_int16 yycheck[] = -1, 13, -1, -1, 16, 96, -1, 19, 20, 21, -1, -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, -1, -1, -1, -1, 117, 118, -1, 120, - -1, 122, 123, -1, -1, 47, 48, -1, 129, 130, + -1, 122, 123, -1, -1, 47, 48, -1, -1, 130, 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, -1, -1, -1, 81, - 82, 83, -1, -1, -1, -1, -1, 10, -1, -1, - 13, -1, -1, 16, 96, -1, 19, 20, 21, -1, - -1, 24, 25, -1, -1, -1, 29, 30, -1, -1, - -1, -1, -1, -1, -1, 117, 118, -1, 120, -1, - 122, 123, -1, -1, 47, 48, -1, -1, 130, 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, -1, -1, -1, 81, 82, - 83, -1, -1, -1, -1, -1, 10, -1, -1, 13, - -1, -1, 16, 96, -1, 19, 20, 21, -1, -1, - 24, 25, -1, -1, -1, 29, 30, -1, -1, -1, - -1, -1, -1, -1, 117, 118, -1, 120, -1, 122, - 123, -1, -1, 47, 48, -1, -1, 130, 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, -1, -1, -1, 81, 82, 83, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 96, -1, -1, -1, -1, -1, -1, -1, - -1, 71, -1, -1, -1, -1, -1, -1, 78, 79, - 80, -1, -1, 117, 118, -1, 120, -1, 122, 123, - -1, 91, -1, -1, -1, -1, 130, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, -1, -1, - -1, 121, 71, -1, 124, 125, 126, 127, 128, 78, - 79, 80, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 91, -1, -1, -1, -1, -1, 97, 98, - 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, -1, -1, - -1, -1, 121, 71, -1, 124, 125, 126, 127, 128, - 78, 79, 80, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 91, -1, -1, -1, -1, -1, 97, - 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, + 82, 83, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 96, -1, -1, -1, -1, -1, + -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, + 78, 79, 80, -1, -1, 117, 118, -1, 120, -1, + 122, 123, -1, 91, -1, -1, -1, -1, 130, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, -1, -1, -1, 121, 71, -1, 124, 125, 126, 127, 128, 78, 79, 80, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 91, -1, -1, -1, -1, -1, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, -1, -1, -1, 121, 71, -1, 124, 125, 126, 127, 128, 78, 79, 80, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 99, -1, 101, 102, 103, 104, 105, + -1, -1, -1, -1, -1, 91, -1, -1, -1, -1, + -1, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, -1, -1, -1, 121, 71, -1, 124, 125, 126, 127, 128, 78, 79, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 101, 102, 103, 104, + -1, -1, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 78, 79, 80, -1, 121, -1, -1, 124, - 125, 126, 127, 128, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 78, 79, 80, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, -1, -1, -1, -1, 121, -1, -1, 124, 125, - 126, 127, 128, 106, 107, 108, 109, 110, 111, 112, + 115, 116, -1, -1, -1, -1, 121, 71, -1, 124, + 125, 126, 127, 128, 78, 79, 80, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, -1, -1, -1, 121, 71, -1, + 124, 125, 126, 127, 128, 78, 79, 80, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 78, 79, 80, -1, 121, -1, -1, 124, 125, 126, 127, 128, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, - -1, -1, -1, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 78, 79, 80, 121, -1, -1, - 124, 125, 126, 127, 128, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 78, 79, 80, -1, 121, -1, - -1, 124, 125, 126, 127, 128, 110, 111, 112, 113, - 114, 115, 116, 78, 79, 80, -1, 121, -1, -1, - 124, 125, 126, 127, 128, -1, -1, -1, 112, 113, - 114, 115, 116, 78, 79, 80, -1, 121, -1, -1, - 124, 125, 126, 127, 128, -1, -1, 112, 113, 114, - 115, 116, -1, -1, -1, -1, 121, -1, -1, 124, - 125, 126, 127, 128, -1, -1, -1, -1, 113, 114, - 115, 116, -1, -1, -1, -1, 121, -1, -1, 124, - 125, 126, 127, 128 + -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, -1, -1, -1, 121, -1, -1, + 124, 125, 126, 127, 128, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 78, 79, 80, -1, + 121, -1, -1, 124, 125, 126, 127, 128, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 78, 79, 80, + -1, -1, -1, -1, -1, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, 78, 79, 80, 121, + -1, -1, 124, 125, 126, 127, 128, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 78, 79, 80, -1, + 121, -1, -1, 124, 125, 126, 127, 128, 110, 111, + 112, 113, 114, 115, 116, 78, 79, 80, -1, 121, + -1, -1, 124, 125, 126, 127, 128, -1, -1, -1, + 112, 113, 114, 115, 116, 78, 79, 80, -1, 121, + -1, -1, 124, 125, 126, 127, 128, -1, -1, 112, + 113, 114, 115, 116, -1, -1, -1, -1, 121, -1, + -1, 124, 125, 126, 127, 128, -1, -1, -1, -1, + 113, 114, 115, 116, -1, -1, -1, -1, 121, -1, + -1, 124, 125, 126, 127, 128 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1175,14 +1175,14 @@ static const yytype_uint8 yystos[] = 129, 88, 129, 202, 12, 202, 13, 22, 14, 129, 100, 25, 202, 202, 25, 25, 25, 25, 25, 129, 202, 130, 129, 22, 14, 22, 14, 22, 14, 22, - 12, 18, 143, 11, 22, 22, 184, 59, 97, 176, - 202, 176, 130, 228, 235, 130, 142, 168, 173, 176, - 177, 202, 231, 144, 175, 174, 202, 176, 176, 150, - 144, 56, 155, 22, 144, 198, 199, 156, 97, 142, - 189, 189, 191, 129, 199, 130, 142, 194, 195, 201, - 129, 23, 142, 227, 225, 129, 14, 202, 12, 217, - 22, 14, 129, 226, 12, 12, 12, 12, 144, 144, - 11, 224, 129, 129, 229, 230, 235, 130, 144, 129, + 12, 18, 143, 11, 22, 184, 59, 97, 176, 202, + 176, 130, 228, 235, 130, 142, 168, 173, 176, 177, + 202, 231, 144, 175, 174, 202, 176, 176, 150, 144, + 56, 155, 22, 144, 198, 199, 156, 97, 142, 189, + 189, 191, 129, 199, 130, 142, 194, 195, 201, 129, + 23, 142, 227, 225, 129, 14, 202, 12, 217, 22, + 14, 129, 226, 12, 12, 12, 12, 144, 144, 11, + 22, 224, 129, 129, 229, 230, 235, 130, 144, 129, 22, 161, 176, 129, 129, 129, 129, 12, 130, 142, 147, 56, 183, 11, 184, 217, 196, 11, 202, 88, 14, 12, 129, 22, 163, 144, 217, 145, 145, 15, @@ -1243,7 +1243,7 @@ static const yytype_int8 yyr2[] = 0, 3, 0, 3, 0, 3, 1, 1, 4, 0, 7, 0, 4, 0, 1, 0, 0, 5, 1, 2, 1, 2, 1, 1, 2, 2, 1, 4, 0, 7, - 0, 6, 0, 4, 4, 4, 0, 7, 7, 7, + 0, 6, 0, 4, 4, 5, 0, 7, 7, 7, 6, 6, 2, 8, 8, 0, 0, 13, 9, 11, 8, 0, 10, 9, 7, 0, 8, 2, 0, 8, 0, 9, 2, 2, 2, 2, 1, 2, 1, 3, @@ -1331,6 +1331,6 @@ static const toketypes yy_type_tab[] = }; /* Generated from: - * 404f5c053415e3ead8d5b0e39c35188e47e522bbccd25374bdcf5128f1b93ccc perly.y + * 772de3ed75dc4010fd79a22e9c90253232ab5af632d3657c55a670d510ee71ef perly.y * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl * ex: set ro ft=C: */ @@ -443,13 +443,16 @@ barestmt: PLUGSTMT package_version($version); $$ = NULL; } - | KW_CLASS BAREWORD[version] BAREWORD[package] PERLY_SEMICOLON + | KW_CLASS BAREWORD[version] BAREWORD[package] subattrlist PERLY_SEMICOLON { package($package); if ($version) package_version($version); $$ = NULL; class_setup_stash(PL_curstash); + if ($subattrlist) { + class_apply_attributes(PL_curstash, $subattrlist); + } } | KW_USE_or_NO startsub { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ } diff --git a/pod/perldelta.pod b/pod/perldelta.pod index f8700577af..cad4e405ce 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -366,6 +366,12 @@ manager will later use a regex to expand these into links. =item * +In the new experimental C<class> feature, attributes are no longer a syntax +error when using the unit class syntax. +[GH #20888]. + +=item * + XXX =back diff --git a/t/class/inherit.t b/t/class/inherit.t index 03b2199683..9fd314b9f9 100644 --- a/t/class/inherit.t +++ b/t/class/inherit.t @@ -71,4 +71,14 @@ no warnings 'experimental::class'; is($obj->x, "X", 'Constructor params passed through to superclass'); } +{ + class Test4A { } + + class Test4B :isa(Test4A); + + package main; + my $obj = Test4B->new; + ok($obj isa Test4A, 'Unit class syntax allows :isa'); +} + done_testing; |