diff options
-rw-r--r-- | embed.fnc | 2 | ||||
-rw-r--r-- | embed.h | 2 | ||||
-rw-r--r-- | op.c | 12 | ||||
-rw-r--r-- | perly.act | 258 | ||||
-rw-r--r-- | perly.h | 42 | ||||
-rw-r--r-- | perly.tab | 1132 | ||||
-rw-r--r-- | perly.y | 18 | ||||
-rw-r--r-- | pod/perlfunc.pod | 9 | ||||
-rw-r--r-- | proto.h | 5 | ||||
-rw-r--r-- | t/comp/package.t | 21 | ||||
-rw-r--r-- | toke.c | 1 |
11 files changed, 775 insertions, 727 deletions
@@ -736,6 +736,8 @@ p |OP* |package |NN OP* o #else p |void |package |NN OP* o #endif +: Used in perly.y +p |void |package_version|NN OP* v : Used in op.c pd |PADOFFSET|pad_alloc |I32 optype|U32 tmptype : Used in toke.c and perly.y @@ -629,6 +629,7 @@ #endif #endif #ifdef PERL_CORE +#define package_version Perl_package_version #define pad_alloc Perl_pad_alloc #define allocmy Perl_allocmy #define pad_findmy Perl_pad_findmy @@ -2974,6 +2975,7 @@ #endif #endif #ifdef PERL_CORE +#define package_version(a) Perl_package_version(aTHX_ a) #define pad_alloc(a,b) Perl_pad_alloc(aTHX_ a,b) #define allocmy(a) Perl_allocmy(aTHX_ a) #define pad_findmy(a) Perl_pad_findmy(aTHX_ a) @@ -3816,6 +3816,18 @@ Perl_package(pTHX_ OP *o) #endif } +void +Perl_package_version( pTHX_ OP *v ) +{ + dVAR; + PERL_ARGS_ASSERT_PACKAGE_VERSION; + SV *const version = cSVOPx(v)->op_sv; + SV *const pkgname = sv_mortalcopy(PL_curstname); + sv_catpv(pkgname, "::VERSION"); + sv_setsv( get_sv(SvPV_nolen(pkgname),TRUE), version ); + op_free(v); +} + #ifdef PERL_MAD OP* #else @@ -605,24 +605,21 @@ case 2: case 79: #line 637 "perly.y" { -#ifdef MAD - (yyval.opval) = package((ps[(2) - (3)].val.opval)); - token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o'); - token_getmad((ps[(3) - (3)].val.i_tkval),(yyval.opval),';'); -#else - package((ps[(2) - (3)].val.opval)); + package((ps[(3) - (4)].val.opval)); + if ((ps[(2) - (4)].val.opval)) { + package_version((ps[(2) - (4)].val.opval)); + } (yyval.opval) = (OP*)NULL; -#endif ;} break; case 80: -#line 650 "perly.y" +#line 647 "perly.y" { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;} break; case 81: -#line 652 "perly.y" +#line 649 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); #ifdef MAD (yyval.opval) = utilize(IVAL((ps[(1) - (7)].val.i_tkval)), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval)); @@ -639,28 +636,28 @@ case 2: break; case 82: -#line 669 "perly.y" +#line 666 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 83: -#line 673 "perly.y" +#line 670 "perly.y" { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 84: -#line 677 "perly.y" +#line 674 "perly.y" { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 86: -#line 685 "perly.y" +#line 682 "perly.y" { #ifdef MAD OP* op = newNULLLIST(); @@ -673,7 +670,7 @@ case 2: break; case 87: -#line 695 "perly.y" +#line 692 "perly.y" { OP* term = (ps[(3) - (3)].val.opval); DO_MAD( @@ -685,7 +682,7 @@ case 2: break; case 89: -#line 708 "perly.y" +#line 705 "perly.y" { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED, prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) ); TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o'); @@ -693,7 +690,7 @@ case 2: break; case 90: -#line 713 "perly.y" +#line 710 "perly.y" { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED, prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) ); TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o'); @@ -703,7 +700,7 @@ case 2: break; case 91: -#line 720 "perly.y" +#line 717 "perly.y" { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)), @@ -715,7 +712,7 @@ case 2: break; case 92: -#line 729 "perly.y" +#line 726 "perly.y" { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)), newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval)))); @@ -724,7 +721,7 @@ case 2: break; case 93: -#line 735 "perly.y" +#line 732 "perly.y" { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)), @@ -733,7 +730,7 @@ case 2: break; case 94: -#line 741 "perly.y" +#line 738 "perly.y" { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)), @@ -744,14 +741,14 @@ case 2: break; case 95: -#line 749 "perly.y" +#line 746 "perly.y" { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 96: -#line 753 "perly.y" +#line 750 "perly.y" { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval)); TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o'); TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'('); @@ -760,13 +757,13 @@ case 2: break; case 97: -#line 759 "perly.y" +#line 756 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;} break; case 98: -#line 762 "perly.y" +#line 759 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval))); @@ -774,7 +771,7 @@ case 2: break; case 101: -#line 777 "perly.y" +#line 774 "perly.y" { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); PL_parser->expect = XOPERATOR; TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{'); @@ -784,7 +781,7 @@ case 2: break; case 102: -#line 784 "perly.y" +#line 781 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval))); TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'['); TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']'); @@ -792,7 +789,7 @@ case 2: break; case 103: -#line 789 "perly.y" +#line 786 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV), scalar((ps[(4) - (5)].val.opval))); @@ -803,7 +800,7 @@ case 2: break; case 104: -#line 797 "perly.y" +#line 794 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV), scalar((ps[(3) - (4)].val.opval))); @@ -813,7 +810,7 @@ case 2: break; case 105: -#line 804 "perly.y" +#line 801 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval))); PL_parser->expect = XOPERATOR; TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{'); @@ -823,7 +820,7 @@ case 2: break; case 106: -#line 811 "perly.y" +#line 808 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV), jmaybe((ps[(4) - (6)].val.opval))); @@ -836,7 +833,7 @@ case 2: break; case 107: -#line 821 "perly.y" +#line 818 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV), jmaybe((ps[(3) - (5)].val.opval))); @@ -848,7 +845,7 @@ case 2: break; case 108: -#line 830 "perly.y" +#line 827 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a'); @@ -858,7 +855,7 @@ case 2: break; case 109: -#line 837 "perly.y" +#line 834 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, (ps[(4) - (5)].val.opval), newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); @@ -869,7 +866,7 @@ case 2: break; case 110: -#line 846 "perly.y" +#line 843 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, (ps[(3) - (4)].val.opval), newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); @@ -879,7 +876,7 @@ case 2: break; case 111: -#line 853 "perly.y" +#line 850 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'('); @@ -888,7 +885,7 @@ case 2: break; case 112: -#line 859 "perly.y" +#line 856 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')'); @@ -898,7 +895,7 @@ case 2: break; case 113: -#line 866 "perly.y" +#line 863 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')'); @@ -908,21 +905,21 @@ case 2: break; case 114: -#line 876 "perly.y" +#line 873 "perly.y" { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 115: -#line 880 "perly.y" +#line 877 "perly.y" { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 116: -#line 884 "perly.y" +#line 881 "perly.y" { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT) scalar((ps[(1) - (3)].val.opval)); (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval))); @@ -931,49 +928,49 @@ case 2: break; case 117: -#line 890 "perly.y" +#line 887 "perly.y" { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 118: -#line 894 "perly.y" +#line 891 "perly.y" { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 119: -#line 898 "perly.y" +#line 895 "perly.y" { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 120: -#line 902 "perly.y" +#line 899 "perly.y" { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 121: -#line 906 "perly.y" +#line 903 "perly.y" { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 122: -#line 910 "perly.y" +#line 907 "perly.y" { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 123: -#line 914 "perly.y" +#line 911 "perly.y" { (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); DO_MAD({ @@ -988,28 +985,28 @@ case 2: break; case 124: -#line 926 "perly.y" +#line 923 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 125: -#line 930 "perly.y" +#line 927 "perly.y" { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 126: -#line 934 "perly.y" +#line 931 "perly.y" { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 127: -#line 938 "perly.y" +#line 935 "perly.y" { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval), ((yyval.opval)->op_type == OP_NOT @@ -1019,14 +1016,14 @@ case 2: break; case 128: -#line 948 "perly.y" +#line 945 "perly.y" { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 129: -#line 952 "perly.y" +#line 949 "perly.y" { (yyval.opval) = IF_MAD( newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)), (ps[(2) - (2)].val.opval) @@ -1036,21 +1033,21 @@ case 2: break; case 130: -#line 959 "perly.y" +#line 956 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 131: -#line 963 "perly.y" +#line 960 "perly.y" { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 132: -#line 967 "perly.y" +#line 964 "perly.y" { (yyval.opval) = newUNOP(OP_POSTINC, 0, mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o'); @@ -1058,7 +1055,7 @@ case 2: break; case 133: -#line 972 "perly.y" +#line 969 "perly.y" { (yyval.opval) = newUNOP(OP_POSTDEC, 0, mod(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC)); TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o'); @@ -1066,7 +1063,7 @@ case 2: break; case 134: -#line 977 "perly.y" +#line 974 "perly.y" { (yyval.opval) = newUNOP(OP_PREINC, 0, mod(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); @@ -1074,7 +1071,7 @@ case 2: break; case 135: -#line 982 "perly.y" +#line 979 "perly.y" { (yyval.opval) = newUNOP(OP_PREDEC, 0, mod(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); @@ -1082,7 +1079,7 @@ case 2: break; case 136: -#line 991 "perly.y" +#line 988 "perly.y" { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'['); TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']'); @@ -1090,7 +1087,7 @@ case 2: break; case 137: -#line 996 "perly.y" +#line 993 "perly.y" { (yyval.opval) = newANONLIST((OP*)NULL); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'['); TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']'); @@ -1098,7 +1095,7 @@ case 2: break; case 138: -#line 1001 "perly.y" +#line 998 "perly.y" { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{'); TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';'); @@ -1107,7 +1104,7 @@ case 2: break; case 139: -#line 1007 "perly.y" +#line 1004 "perly.y" { (yyval.opval) = newANONHASH((OP*)NULL); TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{'); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';'); @@ -1116,7 +1113,7 @@ case 2: break; case 140: -#line 1013 "perly.y" +#line 1010 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o'); @@ -1126,21 +1123,21 @@ case 2: break; case 141: -#line 1024 "perly.y" +#line 1021 "perly.y" { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 142: -#line 1028 "perly.y" +#line 1025 "perly.y" { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, scope((ps[(2) - (2)].val.opval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D'); ;} break; case 143: -#line 1032 "perly.y" +#line 1029 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, prepend_elem(OP_LIST, @@ -1155,7 +1152,7 @@ case 2: break; case 144: -#line 1044 "perly.y" +#line 1041 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, append_elem(OP_LIST, @@ -1171,7 +1168,7 @@ case 2: break; case 145: -#line 1057 "perly.y" +#line 1054 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, prepend_elem(OP_LIST, scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep(); @@ -1182,7 +1179,7 @@ case 2: break; case 146: -#line 1065 "perly.y" +#line 1062 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), @@ -1194,7 +1191,7 @@ case 2: break; case 151: -#line 1081 "perly.y" +#line 1078 "perly.y" { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?'); TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':'); @@ -1202,26 +1199,26 @@ case 2: break; case 152: -#line 1086 "perly.y" +#line 1083 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, mod((ps[(2) - (2)].val.opval),OP_REFGEN)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 153: -#line 1090 "perly.y" +#line 1087 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 154: -#line 1092 "perly.y" +#line 1089 "perly.y" { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k'); ;} break; case 155: -#line 1096 "perly.y" +#line 1093 "perly.y" { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval))); TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')'); @@ -1229,7 +1226,7 @@ case 2: break; case 156: -#line 1101 "perly.y" +#line 1098 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')'); @@ -1237,37 +1234,37 @@ case 2: break; case 157: -#line 1106 "perly.y" +#line 1103 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 158: -#line 1108 "perly.y" +#line 1105 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 159: -#line 1110 "perly.y" +#line 1107 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 160: -#line 1112 "perly.y" +#line 1109 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 161: -#line 1114 "perly.y" +#line 1111 "perly.y" { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;} break; case 162: -#line 1116 "perly.y" +#line 1113 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 163: -#line 1118 "perly.y" +#line 1115 "perly.y" { (yyval.opval) = prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -1279,7 +1276,7 @@ case 2: break; case 164: -#line 1127 "perly.y" +#line 1124 "perly.y" { (yyval.opval) = prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -1293,17 +1290,17 @@ case 2: break; case 165: -#line 1138 "perly.y" +#line 1135 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 166: -#line 1140 "perly.y" +#line 1137 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;} break; case 167: -#line 1142 "perly.y" +#line 1139 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')'); @@ -1311,7 +1308,7 @@ case 2: break; case 168: -#line 1147 "perly.y" +#line 1144 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval)))); @@ -1327,7 +1324,7 @@ case 2: break; case 169: -#line 1160 "perly.y" +#line 1157 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval)))); TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o'); @@ -1335,7 +1332,7 @@ case 2: break; case 170: -#line 1165 "perly.y" +#line 1162 "perly.y" { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL); PL_hints |= HINT_BLOCK_SCOPE; TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o'); @@ -1343,74 +1340,74 @@ case 2: break; case 171: -#line 1170 "perly.y" +#line 1167 "perly.y" { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 172: -#line 1174 "perly.y" +#line 1171 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 173: -#line 1178 "perly.y" +#line 1175 "perly.y" { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0); TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o'); ;} break; case 174: -#line 1182 "perly.y" +#line 1179 "perly.y" { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 175: -#line 1186 "perly.y" +#line 1183 "perly.y" { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 176: -#line 1190 "perly.y" +#line 1187 "perly.y" { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0); TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o'); ;} break; case 177: -#line 1194 "perly.y" +#line 1191 "perly.y" { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 178: -#line 1198 "perly.y" +#line 1195 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;} break; case 179: -#line 1200 "perly.y" +#line 1197 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;} break; case 180: -#line 1203 "perly.y" +#line 1200 "perly.y" { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0); TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o'); ;} break; case 181: -#line 1207 "perly.y" +#line 1204 "perly.y" { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0); TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o'); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'('); @@ -1419,13 +1416,13 @@ case 2: break; case 182: -#line 1213 "perly.y" +#line 1210 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;} break; case 183: -#line 1216 "perly.y" +#line 1213 "perly.y" { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT) ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0))) : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL); @@ -1437,7 +1434,7 @@ case 2: break; case 184: -#line 1225 "perly.y" +#line 1222 "perly.y" { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval)); TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o'); TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'('); @@ -1446,7 +1443,7 @@ case 2: break; case 185: -#line 1231 "perly.y" +#line 1228 "perly.y" { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1); TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')'); @@ -1454,7 +1451,7 @@ case 2: break; case 188: -#line 1238 "perly.y" +#line 1235 "perly.y" { (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); @@ -1463,7 +1460,7 @@ case 2: break; case 189: -#line 1247 "perly.y" +#line 1244 "perly.y" { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); DO_MAD( token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d'); @@ -1474,14 +1471,14 @@ case 2: break; case 190: -#line 1255 "perly.y" +#line 1252 "perly.y" { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d'); ;} break; case 191: -#line 1262 "perly.y" +#line 1259 "perly.y" { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')'); @@ -1489,7 +1486,7 @@ case 2: break; case 192: -#line 1267 "perly.y" +#line 1264 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')'); @@ -1497,42 +1494,42 @@ case 2: break; case 193: -#line 1272 "perly.y" +#line 1269 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 194: -#line 1274 "perly.y" +#line 1271 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 195: -#line 1276 "perly.y" +#line 1273 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 196: -#line 1281 "perly.y" +#line 1278 "perly.y" { (yyval.opval) = (OP*)NULL; ;} break; case 197: -#line 1283 "perly.y" +#line 1280 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 198: -#line 1287 "perly.y" +#line 1284 "perly.y" { (yyval.opval) = (OP*)NULL; ;} break; case 199: -#line 1289 "perly.y" +#line 1286 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 200: -#line 1291 "perly.y" +#line 1288 "perly.y" { #ifdef MAD OP* op = newNULLLIST(); @@ -1546,71 +1543,74 @@ case 2: break; case 201: -#line 1306 "perly.y" +#line 1303 "perly.y" { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;} break; case 202: -#line 1310 "perly.y" +#line 1307 "perly.y" { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&'); ;} break; case 203: -#line 1316 "perly.y" +#line 1313 "perly.y" { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$'); ;} break; case 204: -#line 1322 "perly.y" +#line 1319 "perly.y" { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@'); ;} break; case 205: -#line 1328 "perly.y" +#line 1325 "perly.y" { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%'); ;} break; case 206: -#line 1334 "perly.y" +#line 1331 "perly.y" { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l'); ;} break; case 207: -#line 1340 "perly.y" +#line 1337 "perly.y" { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*'); ;} break; case 208: -#line 1347 "perly.y" +#line 1344 "perly.y" { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;} break; case 209: -#line 1349 "perly.y" +#line 1346 "perly.y" { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;} break; case 210: -#line 1351 "perly.y" +#line 1348 "perly.y" { (yyval.opval) = scope((ps[(1) - (1)].val.opval)); ;} break; case 211: -#line 1354 "perly.y" +#line 1351 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; + +/* Line 1267 of yacc.c. */ + default: break; @@ -1,24 +1,25 @@ #ifdef PERL_CORE - -/* A Bison parser, made by GNU Bison 2.4.1. */ +/* A Bison parser, made by GNU Bison 2.3. */ /* Skeleton interface for Bison's Yacc-like parsers in C - - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify + + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - + the Free Software Foundation; either version 2, or (at your option) + any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -29,11 +30,10 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ - /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -111,7 +111,6 @@ PEG = 326 }; #endif - /* Tokens. */ #define WORD 258 #define METHOD 259 @@ -185,13 +184,11 @@ + #endif /* PERL_CORE */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { - -/* Line 1676 of yacc.c */ - I32 ival; /* __DEFAULT__ (marker for regen_perly.pl; must always be 1st union member) */ char *pval; @@ -207,16 +204,13 @@ typedef union YYSTYPE #ifdef PERL_MAD TOKEN* tkval; #endif - - - -/* Line 1676 of yacc.c */ -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 +} +/* Line 1489 of yacc.c. */ + YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif - @@ -1,6 +1,6 @@ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2061 +#define YYLAST 2062 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 91 @@ -9,7 +9,7 @@ /* YYNRULES -- Number of rules. */ #define YYNRULES 211 /* YYNRULES -- Number of states. */ -#define YYNSTATES 422 +#define YYNSTATES 423 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -69,20 +69,20 @@ static const yytype_uint16 yyprhs[] = 200, 202, 204, 205, 207, 209, 211, 213, 215, 217, 219, 221, 226, 228, 229, 236, 243, 244, 245, 246, 248, 249, 251, 252, 255, 257, 260, 262, 264, 266, - 270, 271, 279, 283, 287, 291, 293, 296, 300, 302, - 306, 312, 319, 323, 327, 333, 336, 341, 342, 348, - 350, 352, 358, 363, 369, 374, 380, 387, 393, 398, - 404, 409, 413, 420, 426, 430, 434, 438, 442, 446, - 450, 454, 458, 462, 466, 470, 474, 478, 482, 485, - 488, 491, 494, 497, 500, 503, 506, 510, 513, 518, - 522, 528, 531, 534, 539, 545, 550, 556, 558, 560, - 562, 564, 570, 573, 575, 578, 582, 585, 587, 589, - 591, 593, 595, 597, 602, 608, 610, 612, 616, 621, - 625, 627, 630, 633, 635, 638, 641, 643, 646, 648, - 651, 653, 657, 659, 663, 668, 673, 675, 677, 679, - 683, 686, 690, 693, 695, 697, 699, 700, 702, 703, - 705, 708, 710, 713, 716, 719, 722, 725, 728, 730, - 732, 734 + 271, 272, 280, 284, 288, 292, 294, 297, 301, 303, + 307, 313, 320, 324, 328, 334, 337, 342, 343, 349, + 351, 353, 359, 364, 370, 375, 381, 388, 394, 399, + 405, 410, 414, 421, 427, 431, 435, 439, 443, 447, + 451, 455, 459, 463, 467, 471, 475, 479, 483, 486, + 489, 492, 495, 498, 501, 504, 507, 511, 514, 519, + 523, 529, 532, 535, 540, 546, 551, 557, 559, 561, + 563, 565, 571, 574, 576, 579, 583, 586, 588, 590, + 592, 594, 596, 598, 603, 609, 611, 613, 617, 622, + 626, 628, 631, 634, 636, 639, 642, 644, 647, 649, + 652, 654, 658, 660, 664, 669, 674, 676, 678, 680, + 684, 687, 691, 694, 696, 698, 700, 701, 703, 704, + 706, 709, 711, 714, 717, 720, 723, 726, 729, 731, + 733, 735 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -114,54 +114,54 @@ static const yytype_int16 yyrhs[] = 122, 125, 126, 127, 129, -1, 26, 122, 125, 126, 127, 129, -1, -1, -1, -1, 15, -1, -1, 18, -1, -1, 61, 18, -1, 61, -1, 61, 18, -1, - 61, -1, 93, -1, 14, -1, 28, 15, 14, -1, - -1, 29, 122, 132, 15, 15, 146, 14, -1, 133, - 65, 133, -1, 133, 64, 133, -1, 133, 63, 133, - -1, 134, -1, 134, 67, -1, 134, 67, 143, -1, - 143, -1, 48, 155, 134, -1, 46, 89, 155, 133, - 88, -1, 143, 87, 137, 89, 147, 88, -1, 143, - 87, 137, -1, 16, 155, 146, -1, 17, 155, 89, - 147, 88, -1, 48, 146, -1, 46, 89, 147, 88, - -1, -1, 23, 123, 93, 136, 146, -1, 16, -1, - 150, -1, 154, 3, 133, 14, 4, -1, 150, 5, - 133, 6, -1, 143, 87, 5, 133, 6, -1, 138, - 5, 133, 6, -1, 150, 3, 133, 14, 4, -1, - 143, 87, 3, 133, 14, 4, -1, 138, 3, 133, - 14, 4, -1, 143, 87, 89, 88, -1, 143, 87, - 89, 133, 88, -1, 138, 89, 133, 88, -1, 138, - 89, 88, -1, 89, 133, 88, 5, 133, 6, -1, - 89, 88, 5, 133, 6, -1, 143, 68, 143, -1, - 143, 82, 143, -1, 143, 51, 143, -1, 143, 52, - 143, -1, 143, 76, 143, -1, 143, 49, 143, -1, - 143, 50, 143, -1, 143, 75, 143, -1, 143, 74, - 143, -1, 143, 42, 143, -1, 143, 73, 143, -1, - 143, 72, 143, -1, 143, 71, 143, -1, 143, 77, - 143, -1, 7, 143, -1, 8, 143, -1, 78, 143, - -1, 79, 143, -1, 143, 84, -1, 143, 83, -1, - 86, 143, -1, 85, 143, -1, 5, 133, 6, -1, - 5, 6, -1, 55, 133, 14, 4, -1, 55, 14, - 4, -1, 27, 123, 126, 127, 93, -1, 54, 143, - -1, 54, 93, -1, 54, 15, 89, 88, -1, 54, - 15, 89, 133, 88, -1, 54, 150, 89, 88, -1, - 54, 150, 89, 133, 88, -1, 139, -1, 140, -1, - 141, -1, 142, -1, 143, 69, 143, 70, 143, -1, - 80, 143, -1, 144, -1, 57, 143, -1, 89, 133, - 88, -1, 89, 88, -1, 150, -1, 154, -1, 152, - -1, 151, -1, 153, -1, 138, -1, 151, 5, 133, - 6, -1, 151, 3, 133, 14, 4, -1, 18, -1, - 149, -1, 149, 89, 88, -1, 149, 89, 133, 88, - -1, 56, 15, 146, -1, 41, -1, 41, 143, -1, - 66, 134, -1, 47, -1, 47, 93, -1, 47, 143, - -1, 60, -1, 60, 143, -1, 22, -1, 22, 143, - -1, 44, -1, 44, 89, 88, -1, 21, -1, 45, - 89, 88, -1, 45, 89, 133, 88, -1, 19, 89, - 134, 88, -1, 15, -1, 135, -1, 43, -1, 58, - 145, 128, -1, 58, 145, -1, 89, 133, 88, -1, - 89, 88, -1, 150, -1, 152, -1, 151, -1, -1, - 134, -1, -1, 133, -1, 133, 67, -1, 150, -1, - 13, 155, -1, 9, 155, -1, 10, 155, -1, 11, - 155, -1, 53, 155, -1, 12, 155, -1, 15, -1, - 150, -1, 93, -1, 20, -1 + 61, -1, 93, -1, 14, -1, 28, 15, 15, 14, + -1, -1, 29, 122, 132, 15, 15, 146, 14, -1, + 133, 65, 133, -1, 133, 64, 133, -1, 133, 63, + 133, -1, 134, -1, 134, 67, -1, 134, 67, 143, + -1, 143, -1, 48, 155, 134, -1, 46, 89, 155, + 133, 88, -1, 143, 87, 137, 89, 147, 88, -1, + 143, 87, 137, -1, 16, 155, 146, -1, 17, 155, + 89, 147, 88, -1, 48, 146, -1, 46, 89, 147, + 88, -1, -1, 23, 123, 93, 136, 146, -1, 16, + -1, 150, -1, 154, 3, 133, 14, 4, -1, 150, + 5, 133, 6, -1, 143, 87, 5, 133, 6, -1, + 138, 5, 133, 6, -1, 150, 3, 133, 14, 4, + -1, 143, 87, 3, 133, 14, 4, -1, 138, 3, + 133, 14, 4, -1, 143, 87, 89, 88, -1, 143, + 87, 89, 133, 88, -1, 138, 89, 133, 88, -1, + 138, 89, 88, -1, 89, 133, 88, 5, 133, 6, + -1, 89, 88, 5, 133, 6, -1, 143, 68, 143, + -1, 143, 82, 143, -1, 143, 51, 143, -1, 143, + 52, 143, -1, 143, 76, 143, -1, 143, 49, 143, + -1, 143, 50, 143, -1, 143, 75, 143, -1, 143, + 74, 143, -1, 143, 42, 143, -1, 143, 73, 143, + -1, 143, 72, 143, -1, 143, 71, 143, -1, 143, + 77, 143, -1, 7, 143, -1, 8, 143, -1, 78, + 143, -1, 79, 143, -1, 143, 84, -1, 143, 83, + -1, 86, 143, -1, 85, 143, -1, 5, 133, 6, + -1, 5, 6, -1, 55, 133, 14, 4, -1, 55, + 14, 4, -1, 27, 123, 126, 127, 93, -1, 54, + 143, -1, 54, 93, -1, 54, 15, 89, 88, -1, + 54, 15, 89, 133, 88, -1, 54, 150, 89, 88, + -1, 54, 150, 89, 133, 88, -1, 139, -1, 140, + -1, 141, -1, 142, -1, 143, 69, 143, 70, 143, + -1, 80, 143, -1, 144, -1, 57, 143, -1, 89, + 133, 88, -1, 89, 88, -1, 150, -1, 154, -1, + 152, -1, 151, -1, 153, -1, 138, -1, 151, 5, + 133, 6, -1, 151, 3, 133, 14, 4, -1, 18, + -1, 149, -1, 149, 89, 88, -1, 149, 89, 133, + 88, -1, 56, 15, 146, -1, 41, -1, 41, 143, + -1, 66, 134, -1, 47, -1, 47, 93, -1, 47, + 143, -1, 60, -1, 60, 143, -1, 22, -1, 22, + 143, -1, 44, -1, 44, 89, 88, -1, 21, -1, + 45, 89, 88, -1, 45, 89, 133, 88, -1, 19, + 89, 134, 88, -1, 15, -1, 135, -1, 43, -1, + 58, 145, 128, -1, 58, 145, -1, 89, 133, 88, + -1, 89, 88, -1, 150, -1, 152, -1, 151, -1, + -1, 134, -1, -1, 133, -1, 133, 67, -1, 150, + -1, 13, 155, -1, 9, 155, -1, 10, 155, -1, + 11, 155, -1, 53, 155, -1, 12, 155, -1, 15, + -1, 150, -1, 93, -1, 20, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -175,20 +175,20 @@ static const yytype_uint16 yyrline[] = 464, 468, 474, 483, 487, 489, 491, 493, 495, 500, 504, 510, 524, 525, 529, 542, 565, 571, 576, 581, 591, 592, 597, 598, 602, 612, 616, 626, 627, 636, - 650, 649, 668, 672, 676, 680, 684, 694, 703, 707, - 712, 719, 728, 734, 740, 748, 752, 759, 758, 769, - 770, 774, 783, 788, 796, 803, 810, 820, 829, 836, - 845, 852, 858, 865, 875, 879, 883, 889, 893, 897, - 901, 905, 909, 913, 925, 929, 933, 937, 947, 951, - 958, 962, 966, 971, 976, 981, 990, 995, 1000, 1006, - 1012, 1023, 1027, 1031, 1043, 1056, 1064, 1076, 1077, 1078, - 1079, 1080, 1085, 1089, 1091, 1095, 1100, 1105, 1107, 1109, - 1111, 1113, 1115, 1117, 1126, 1137, 1139, 1141, 1146, 1159, - 1164, 1169, 1173, 1177, 1181, 1185, 1189, 1193, 1197, 1199, - 1202, 1206, 1212, 1215, 1224, 1230, 1235, 1236, 1237, 1246, - 1254, 1261, 1266, 1271, 1273, 1275, 1280, 1282, 1287, 1288, - 1290, 1305, 1309, 1315, 1321, 1327, 1333, 1339, 1346, 1348, - 1350, 1353 + 647, 646, 665, 669, 673, 677, 681, 691, 700, 704, + 709, 716, 725, 731, 737, 745, 749, 756, 755, 766, + 767, 771, 780, 785, 793, 800, 807, 817, 826, 833, + 842, 849, 855, 862, 872, 876, 880, 886, 890, 894, + 898, 902, 906, 910, 922, 926, 930, 934, 944, 948, + 955, 959, 963, 968, 973, 978, 987, 992, 997, 1003, + 1009, 1020, 1024, 1028, 1040, 1053, 1061, 1073, 1074, 1075, + 1076, 1077, 1082, 1086, 1088, 1092, 1097, 1102, 1104, 1106, + 1108, 1110, 1112, 1114, 1123, 1134, 1136, 1138, 1143, 1156, + 1161, 1166, 1170, 1174, 1178, 1182, 1186, 1190, 1194, 1196, + 1199, 1203, 1209, 1212, 1221, 1227, 1232, 1233, 1234, 1243, + 1251, 1258, 1263, 1268, 1270, 1272, 1277, 1279, 1284, 1285, + 1287, 1302, 1306, 1312, 1318, 1324, 1330, 1336, 1343, 1345, + 1347, 1350 }; #endif @@ -214,7 +214,7 @@ static const char *const yytname[] = "loop", "switch", "mintro", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "miexpr", "label", "decl", "peg", "format", "formname", "mysubrout", "subrout", "startsub", "startanonsub", "startformsub", "subname", - "proto", "subattrlist", "myattrlist", "subbody", "package", "use", "$@1", + "proto", "subattrlist", "myattrlist", "subbody", "package", "use", "@1", "expr", "argexpr", "listop", "@2", "method", "subscripted", "termbinop", "termunop", "anonymous", "termdo", "term", "myattrterm", "myterm", "listexpr", "listexprcom", "my_scalar", "amper", "scalar", "ary", "hsh", @@ -277,7 +277,7 @@ static const yytype_uint8 yyr2[] = 12, 3, 8, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 0, 6, 6, 0, 0, 0, 1, - 0, 1, 0, 2, 1, 2, 1, 1, 1, 3, + 0, 1, 0, 2, 1, 2, 1, 1, 1, 4, 0, 7, 3, 3, 3, 1, 2, 3, 1, 3, 5, 6, 3, 3, 5, 2, 4, 0, 5, 1, 1, 5, 4, 5, 4, 5, 6, 5, 4, 5, @@ -309,7 +309,7 @@ static const yytype_uint8 yydefact[] = 0, 0, 0, 0, 0, 0, 0, 33, 0, 12, 15, 19, 85, 187, 162, 147, 148, 149, 150, 88, 153, 166, 157, 160, 159, 161, 158, 62, 0, 69, - 70, 79, 0, 70, 9, 137, 0, 128, 129, 208, + 70, 0, 0, 70, 9, 137, 0, 128, 129, 208, 211, 210, 209, 203, 204, 205, 207, 202, 196, 0, 0, 179, 0, 70, 4, 4, 4, 4, 4, 4, 0, 4, 4, 32, 171, 0, 0, 198, 174, 175, @@ -320,102 +320,102 @@ static const yytype_uint8 yydefact[] = 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 132, 0, 0, 0, 0, 0, 0, 0, 61, 71, - 72, 0, 72, 52, 136, 93, 198, 0, 97, 72, - 46, 0, 0, 0, 0, 0, 4, 5, 0, 181, - 183, 0, 199, 0, 0, 89, 0, 0, 139, 0, - 169, 192, 0, 76, 189, 0, 155, 34, 22, 23, - 48, 20, 21, 24, 25, 84, 83, 82, 87, 0, - 0, 111, 0, 123, 119, 120, 116, 117, 114, 0, - 126, 125, 124, 122, 121, 118, 127, 115, 0, 0, - 99, 0, 92, 100, 167, 0, 0, 0, 0, 0, - 0, 74, 0, 196, 0, 3, 0, 185, 196, 0, - 0, 47, 0, 0, 49, 51, 0, 0, 201, 45, - 50, 0, 0, 19, 0, 0, 0, 184, 200, 96, - 0, 143, 0, 145, 0, 138, 191, 75, 0, 0, - 0, 104, 110, 0, 0, 0, 108, 0, 198, 168, - 0, 102, 0, 163, 0, 73, 78, 77, 65, 0, - 64, 94, 98, 140, 43, 43, 0, 0, 0, 0, - 46, 0, 0, 0, 90, 144, 146, 113, 0, 107, - 151, 0, 103, 109, 0, 105, 164, 101, 81, 0, - 0, 8, 26, 26, 0, 33, 0, 0, 0, 31, - 112, 106, 91, 33, 33, 9, 0, 0, 29, 30, - 0, 39, 43, 33, 42, 35, 36, 52, 27, 0, - 33, 0, 38, 7, 0, 37, 0, 0, 0, 26, - 40, 28 + 72, 79, 0, 72, 52, 136, 93, 198, 0, 97, + 72, 46, 0, 0, 0, 0, 0, 4, 5, 0, + 181, 183, 0, 199, 0, 0, 89, 0, 0, 139, + 0, 169, 192, 0, 76, 189, 0, 155, 34, 22, + 23, 48, 20, 21, 24, 25, 84, 83, 82, 87, + 0, 0, 111, 0, 123, 119, 120, 116, 117, 114, + 0, 126, 125, 124, 122, 121, 118, 127, 115, 0, + 0, 99, 0, 92, 100, 167, 0, 0, 0, 0, + 0, 0, 74, 0, 196, 0, 3, 0, 185, 196, + 0, 0, 47, 0, 0, 49, 51, 0, 0, 201, + 45, 50, 0, 0, 19, 0, 0, 0, 184, 200, + 96, 0, 143, 0, 145, 0, 138, 191, 75, 0, + 0, 0, 104, 110, 0, 0, 0, 108, 0, 198, + 168, 0, 102, 0, 163, 0, 73, 78, 77, 65, + 0, 64, 94, 98, 140, 43, 43, 0, 0, 0, + 0, 46, 0, 0, 0, 90, 144, 146, 113, 0, + 107, 151, 0, 103, 109, 0, 105, 164, 101, 81, + 0, 0, 8, 26, 26, 0, 33, 0, 0, 0, + 31, 112, 106, 91, 33, 33, 9, 0, 0, 29, + 30, 0, 39, 43, 33, 42, 35, 36, 52, 27, + 0, 33, 0, 38, 7, 0, 37, 0, 0, 0, + 26, 40, 28 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 111, 104, 315, 2, 382, 395, 4, 12, - 309, 398, 79, 80, 169, 13, 14, 379, 310, 300, - 249, 303, 312, 306, 15, 16, 17, 18, 98, 19, - 20, 24, 122, 23, 100, 210, 292, 244, 348, 21, - 22, 102, 304, 82, 83, 298, 282, 84, 85, 86, - 87, 88, 89, 90, 155, 142, 233, 307, 91, 92, + -1, 1, 111, 104, 316, 2, 383, 396, 4, 12, + 310, 399, 79, 80, 169, 13, 14, 380, 311, 301, + 250, 304, 313, 307, 15, 16, 17, 18, 98, 19, + 20, 24, 122, 23, 100, 210, 293, 245, 349, 21, + 22, 102, 305, 82, 83, 299, 283, 84, 85, 86, + 87, 88, 89, 90, 155, 142, 234, 308, 91, 92, 93, 94, 95, 96, 113 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -354 +#define YYPACT_NINF -344 static const yytype_int16 yypact[] = { - -354, 26, -354, -354, 145, -354, -354, -354, 25, -354, - -354, -354, -354, -354, -354, 294, -354, -354, -354, -354, - -354, -354, -354, 64, 71, 96, -354, 71, -354, -354, - 876, 1722, 1722, 373, 373, 373, 373, 373, -354, -354, - 373, 373, -354, 24, -354, 1722, -354, -354, 55, 63, - 90, 104, 0, 107, 108, 116, 1722, -354, 113, 118, - 120, 645, 560, 373, 730, 959, 138, 1722, 35, 1722, - 1722, 1722, 1722, 1722, 1722, 1722, 1042, 177, 204, -354, - -354, 1003, 162, -354, 14, -354, -354, -354, -354, 1896, - -354, 167, 38, 73, -354, -354, 231, -354, 116, -354, - 239, -354, 244, 239, -354, -354, 30, 133, 133, -354, - -354, -354, -354, -354, -354, -354, -354, -354, 1722, 172, - 1722, 421, 116, 239, -354, -354, -354, -354, -354, -354, - 173, -354, -354, -354, 1896, 179, 1127, 560, -354, 421, - 1783, 162, -354, 792, 1722, -354, 176, -354, 421, 22, - 270, 7, 1722, 421, 1212, 219, -354, -354, -354, 421, - 162, 133, 133, 133, -10, -10, 277, 255, 116, -354, - -354, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, - 1722, 1722, 1722, 1297, 1722, 1722, 1722, 1722, 1722, 1722, - 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, 1722, -354, - -354, 13, 1382, 1722, 1722, 1722, 1722, 1722, -354, -354, - 226, 275, 226, 122, -354, -354, 1722, -39, -354, 226, - 1722, 1722, 1722, 1722, 282, 390, -354, -354, 1722, -354, - -354, 306, 360, 206, 1722, 162, 1467, 1552, -354, 289, - -354, -354, 322, 278, -354, 1722, 293, -354, 377, -354, - 377, 377, 377, 377, 377, 235, 235, -354, 1896, 33, - 69, -354, 351, 1974, 908, 717, 201, 279, 1896, 1857, - 461, 461, 547, 631, 861, 378, 133, 133, 1722, 1722, - -354, 1637, 233, -354, -354, 459, 121, 77, 135, 112, - 168, 310, 78, 1722, 78, -354, 241, -354, 1722, 116, - 248, 377, 256, 258, 377, -354, 265, 266, -354, -354, - -354, 269, 344, 389, 1722, 1722, 276, -354, -354, -354, - 521, -354, 606, -354, 632, -354, -354, -354, 174, 1722, - 361, -354, -354, 1722, 212, 205, -354, 691, 1722, -354, - 371, -354, 374, -354, 386, -354, -354, -354, -354, 367, - -354, -354, -354, -354, -354, -354, 415, 415, 1722, 415, - 1722, 304, 363, 415, -354, -354, -354, -354, 208, -354, - 1935, 428, -354, -354, 369, -354, -354, -354, -354, 415, - 415, -354, 81, 81, 370, 177, 435, 415, 415, -354, - -354, -354, -354, 177, 177, -354, 415, 375, -354, -354, - 415, -354, -354, 177, -354, -354, -354, 199, -354, 1722, - 177, 473, -354, -354, 379, -354, 383, 415, 415, 81, - -354, -354 + -344, 39, -344, -344, 47, -344, -344, -344, 28, -344, + -344, -344, -344, -344, -344, 295, -344, -344, -344, -344, + -344, -344, -344, 34, 59, 65, -344, 59, -344, -344, + 877, 1723, 1723, 351, 351, 351, 351, 351, -344, -344, + 351, 351, -344, -5, -344, 1723, -344, -344, 3, 7, + 22, 52, 35, 81, 88, 226, 1723, -344, 96, 121, + 148, 646, 561, 351, 731, 960, 223, 1723, 19, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1043, 100, 242, -344, + -344, 1004, 199, -344, 14, -344, -344, -344, -344, 1897, + -344, 179, 135, 200, -344, -344, 266, -344, 226, -344, + 255, 260, 264, 255, -344, -344, 80, 507, 507, -344, + -344, -344, -344, -344, -344, -344, -344, -344, 1723, 192, + 1723, 422, 226, 255, -344, -344, -344, -344, -344, -344, + 197, -344, -344, -344, 1897, 203, 1128, 561, -344, 422, + 1784, 199, -344, 793, 1723, -344, 205, -344, 422, 21, + 288, -6, 1723, 422, 1213, 234, -344, -344, -344, 422, + 199, 507, 507, 507, 131, 131, 292, -28, 226, -344, + -344, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1298, 1723, 1723, 1723, 1723, 1723, 1723, + 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, 1723, -344, + -344, 11, 1383, 1723, 1723, 1723, 1723, 1723, -344, -344, + 238, -344, 286, 238, 90, -344, -344, 1723, -42, -344, + 238, 1723, 1723, 1723, 1723, 311, 391, -344, -344, 1723, + -344, -344, -10, 119, 233, 1723, 199, 1468, 1553, -344, + 319, -344, -344, 133, 312, -344, 1723, 324, -344, 220, + -344, 220, 220, 220, 220, 220, 272, 272, -344, 1897, + 26, 89, -344, 323, 1975, 909, 718, 678, 280, 1897, + 1858, 462, 462, 548, 632, 862, 379, 507, 507, 1723, + 1723, -344, 1638, 256, -344, -344, 352, 69, 163, 194, + 170, 225, 326, 42, 1723, 42, -344, 259, -344, 1723, + 226, 268, 220, 270, 271, 220, -344, 277, 283, -344, + -344, -344, 289, 362, 390, 1723, 1723, 290, -344, -344, + -344, 460, -344, 522, -344, 607, -344, -344, -344, 198, + 1723, 375, -344, -344, 1723, 305, 207, -344, 633, 1723, + -344, 378, -344, 381, -344, 385, -344, -344, -344, -344, + 369, -344, -344, -344, -344, -344, -344, 388, 388, 1723, + 388, 1723, 306, 307, 388, -344, -344, -344, -344, 213, + -344, 1936, 389, -344, -344, 331, -344, -344, -344, -344, + 388, 388, -344, 182, 182, 336, 100, 411, 388, 388, + -344, -344, -344, -344, 100, 100, -344, 388, 337, -344, + -344, 388, -344, -344, 100, -344, -344, -344, 122, -344, + 1723, 100, 474, -344, -344, 340, -344, 345, 388, 388, + 182, -344, -344 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -354, -354, -13, -72, -354, -354, 1505, -354, -103, -354, - 444, -353, -354, -354, -26, -354, -354, -335, -354, 103, - -116, -215, 76, -354, -354, -354, -354, -354, -354, -354, - -354, 128, 419, -354, 466, -19, -181, -354, 207, -354, - -354, -354, -15, -38, -354, -354, -354, -354, -354, -354, - -354, -354, 56, -354, -354, -115, -202, -354, -354, -29, - 431, 434, -354, -354, 28 + -344, -344, -13, -62, -344, -344, 1505, -344, -103, -344, + 426, -343, -344, -344, 147, -344, -344, -335, -344, 82, + 8, -217, 30, -344, -344, -344, -344, -344, -344, -344, + -344, 215, 403, -344, 425, -21, -116, -344, 164, -344, + -344, -344, -15, -39, -344, -344, -344, -344, -344, -344, + -344, -344, 56, -344, -344, -100, -204, -344, -344, -30, + 392, 396, -344, -344, 138 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -425,424 +425,424 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -187 static const yytype_int16 yytable[] = { - 81, 213, 77, 215, 112, 112, 112, 112, 112, 33, - 311, 112, 112, 316, 296, 106, 278, 181, 279, 182, - 380, 239, 33, 130, 141, 203, 3, 204, 180, 280, - 399, 294, 160, 143, 112, 149, 214, 240, 299, 156, - 25, 203, 133, 204, 33, 34, 35, 330, 138, 297, - 151, 147, 220, 221, 222, 223, 224, 225, 128, 227, - 228, 167, 114, 115, 116, 117, 421, 411, 118, 119, - 177, 178, 179, -187, -187, 331, 205, 201, 206, 97, - 141, 29, 217, 341, 212, 208, 99, 107, 108, 129, - 144, 145, 346, 177, 178, 179, 177, 178, 179, 361, - 362, 121, 281, 183, 219, 302, 235, 305, 143, 218, - 101, 237, 134, 120, 141, 396, 397, 139, 343, 29, - 148, 231, 232, 153, 154, 159, 295, 161, 162, 163, - 164, 165, 177, 178, 179, 340, 374, 26, 27, 242, - 177, 178, 179, 384, 124, -2, 5, 6, 7, 342, - 8, 9, 125, 152, 314, 247, 248, 250, 251, 252, - 253, 254, 255, 256, 257, 234, 259, 260, 262, 5, - 6, 7, 283, 8, 9, 177, 178, 179, 349, 126, - 367, 10, 344, 352, 177, 178, 179, 285, 286, 287, - 288, 289, 290, 127, 414, 308, 131, 132, 177, 178, - 179, 232, 135, 413, 10, 301, 250, 136, 250, 137, - 313, 372, 11, 168, 390, 198, 199, 200, 170, 320, - 201, 322, 324, 5, 6, 7, 371, 8, 9, 180, - 328, 177, 178, 179, 207, 11, 258, 177, 178, 179, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 141, 202, 209, 10, 211, - 141, 216, 226, 334, 335, 236, 337, 229, 177, 178, - 179, 177, 178, 179, 238, 177, 178, 179, 197, 347, - 243, 347, 245, 198, 199, 200, 353, 291, 201, 11, - 293, 33, 407, 325, 319, 28, 327, 29, 329, 30, - 179, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 368, 44, 45, 46, 177, 178, - 179, 47, 338, 232, 48, 49, 50, 51, 345, 351, - 187, 52, 53, 54, 55, 56, 354, 57, 58, 59, - 60, 61, 62, 246, 355, 301, 356, 63, 64, 65, - 66, 67, 68, 357, 69, 358, 197, 359, 360, 401, - 70, 198, 199, 200, 363, 369, 201, 405, 406, 177, - 178, 179, 71, 72, 73, 375, 29, 412, 376, 74, - 75, 378, 33, 76, 415, 177, 178, 179, 109, 370, - 377, 28, 387, 110, 317, 30, 81, 31, 32, 33, - 34, 35, 36, 37, -44, 39, 40, 41, 42, 43, - 326, 44, 45, 46, 177, 178, 179, 47, 381, 171, - 172, 173, 174, 177, 178, 179, 175, 318, 176, 187, - 188, 56, 391, 57, 58, 59, 60, 61, 62, 332, - 177, 178, 179, 63, 64, 65, 66, 67, 68, 402, - 69, 388, 177, 178, 179, 197, 70, 392, 400, 78, - 198, 199, 200, 386, 409, 201, 123, 417, 71, 72, - 73, 418, 187, 188, 28, 74, 75, -49, 30, 76, - 31, 32, 33, 34, 35, 36, 37, 416, 39, 40, - 41, 42, 43, 103, 44, 45, 46, 196, 197, 157, - 47, 350, 158, 198, 199, 200, 0, 0, 201, 0, - 185, 186, 187, 188, 56, 0, 57, 58, 59, 60, - 61, 62, 177, 178, 179, 0, 63, 64, 65, 66, - 67, 68, 0, 69, 193, 194, 195, 196, 197, 70, - 0, 0, 0, 198, 199, 200, 0, 339, 201, 0, - 0, 71, 72, 73, 0, 0, 0, 0, 74, 75, - 0, -44, 76, 29, 0, 30, 0, 31, 32, 33, - 34, 35, 36, 37, 0, 140, 40, 41, 42, 43, - 110, 44, 45, 46, 177, 178, 179, 47, 0, 0, - 0, 0, 0, 0, 0, 0, 185, 186, 187, 188, - 0, 56, 0, 57, 58, 59, 60, 61, 62, 364, - 0, 0, 0, 63, 64, 65, 66, 67, 68, 0, - 69, 194, 195, 196, 197, 0, 70, 0, 0, 198, - 199, 200, 0, 0, 201, 0, 0, 0, 71, 72, - 73, 0, 0, 0, 0, 74, 75, 0, 29, 76, - 30, 0, 31, 32, 33, 34, 35, 36, 37, 0, - 39, 40, 41, 42, 43, 0, 44, 45, 46, 177, - 178, 179, 47, 0, 0, 0, 0, 0, 0, 0, - 185, 186, 187, 188, 0, 0, 56, 0, 57, 58, - 59, 60, 61, 62, 365, 177, 178, 179, 63, 64, - 65, 66, 67, 68, 0, 69, 195, 196, 197, 0, - 0, 70, 0, 198, 199, 200, 0, 0, 201, 0, - 366, 0, 0, 71, 72, 73, 0, 0, 0, 0, - 74, 75, 0, 29, 76, 30, 0, 31, 32, 33, - 34, 35, 36, 37, 0, 146, 40, 41, 42, 43, - 0, 44, 45, 46, 177, 178, 179, 47, 0, 0, - 0, 0, 0, 0, 0, 0, 185, -187, 187, 188, - 0, 56, 0, 57, 58, 59, 60, 61, 62, 373, - 0, 0, 0, 63, 64, 65, 66, 67, 68, 0, - 69, 0, 0, 196, 197, 203, 70, 204, -157, 198, - 199, 200, 0, 0, 201, 0, -157, 0, 71, 72, - 73, 0, 0, 0, 0, 74, 75, 0, 0, 76, - 0, 0, -157, -157, -157, -157, 0, 0, 0, -157, - 0, -157, 0, 0, -157, 0, 0, 0, 0, 0, - 0, -157, -157, -157, -157, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -157, -157, -157, 0, -157, - -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, - 0, 0, 0, 0, -157, -157, -157, 0, 0, -157, - -157, 30, 105, 31, 32, 33, 34, 35, 36, 37, + 81, 214, 77, 112, 112, 112, 112, 112, 240, 312, + 112, 112, 317, 297, 279, 106, 280, 181, 216, 182, + 33, 381, 130, 141, 203, 180, 204, 281, 33, 34, + 35, 160, 143, 112, 149, 177, 178, 179, 156, 3, + 331, 400, 133, 25, 33, 29, 298, -2, 138, 97, + 151, 147, 241, 177, 178, 179, 347, 177, 178, 179, + 247, 167, 221, 222, 223, 224, 225, 226, 412, 228, + 229, 5, 6, 7, 99, 8, 9, 422, 318, 141, + 101, 218, 213, 341, 120, 208, 215, 107, 108, 177, + 178, 179, 124, 128, 296, 332, 125, 295, 362, 363, + 282, 121, 220, 183, 300, 236, 10, 143, 154, 219, + 238, 126, 134, 141, 5, 6, 7, 139, 8, 9, + 148, 232, 233, 153, 129, 159, 414, 161, 162, 163, + 164, 165, 177, 178, 179, 375, 168, 11, 203, 243, + 204, 127, 385, 177, 178, 179, 5, 6, 7, 10, + 8, 9, 177, 178, 179, 248, 249, 251, 252, 253, + 254, 255, 256, 257, 258, 315, 260, 261, 263, 342, + 131, 284, 114, 115, 116, 117, 344, 132, 118, 119, + 11, 10, 177, 178, 179, 135, 319, 286, 287, 288, + 289, 290, 291, 415, 350, 309, 177, 178, 179, 353, + 144, 145, 233, 205, 368, 206, 302, 251, 343, 251, + 136, 314, 11, 373, -187, -187, 397, 398, 201, 391, + 321, 327, 323, 325, 26, 27, 177, 178, 179, 29, + 303, 329, 306, 177, 178, 179, 259, 137, 152, 345, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 141, 170, 177, 178, 179, + 141, 177, 178, 179, 335, 336, 180, 338, 202, 207, + 177, 178, 179, 209, 211, 235, 177, 178, 179, 212, + 348, 217, 348, 177, 178, 179, 227, 354, 177, 178, + 179, 230, 239, 408, 237, 244, 28, 246, 29, 292, + 30, 294, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 369, 44, 45, 46, 372, + 33, 320, 47, 326, 233, 48, 49, 50, 51, 330, + 328, 187, 52, 53, 54, 55, 56, 179, 57, 58, + 59, 60, 61, 62, 346, 339, 302, 352, 63, 64, + 65, 66, 67, 68, 29, 69, 355, 197, 356, 357, + 33, 70, 198, 199, 200, 358, 109, 201, 177, 178, + 179, 110, 359, 71, 72, 73, 361, 360, 364, 370, + 74, 75, 376, 379, 76, 377, 177, 178, 179, 378, + 371, 382, 28, 392, 388, 389, 30, 81, 31, 32, + 33, 34, 35, 36, 37, -44, 39, 40, 41, 42, + 43, 333, 44, 45, 46, 177, 178, 179, 47, 393, + 171, 172, 173, 174, 401, 403, 410, 175, 418, 176, + 187, 188, 56, 419, 57, 58, 59, 60, 61, 62, + 340, 78, 417, 387, 63, 64, 65, 66, 67, 68, + 123, 69, 103, 177, 178, 179, 197, 70, 0, 351, + 157, 198, 199, 200, 158, 0, 201, 0, 0, 71, + 72, 73, 0, 187, 188, 28, 74, 75, -49, 30, + 76, 31, 32, 33, 34, 35, 36, 37, 0, 39, + 40, 41, 42, 43, 0, 44, 45, 46, 196, 197, + 0, 47, 0, 0, 198, 199, 200, 0, 0, 201, + 0, 185, 186, 187, 188, 56, 0, 57, 58, 59, + 60, 61, 62, 177, 178, 179, 0, 63, 64, 65, + 66, 67, 68, 402, 69, 193, 194, 195, 196, 197, + 70, 406, 407, 0, 198, 199, 200, 0, 365, 201, + 0, 413, 71, 72, 73, 0, 0, 0, 416, 74, + 75, 0, -44, 76, 29, 0, 30, 0, 31, 32, + 33, 34, 35, 36, 37, 0, 140, 40, 41, 42, + 43, 110, 44, 45, 46, 177, 178, 179, 47, 198, + 199, 200, 0, 0, 201, 0, 0, 185, 186, 187, + 188, 0, 56, 0, 57, 58, 59, 60, 61, 62, + 366, 0, 0, 0, 63, 64, 65, 66, 67, 68, + 0, 69, 194, 195, 196, 197, 0, 70, 0, 0, + 198, 199, 200, 0, 0, 201, 0, 0, 0, 71, + 72, 73, 0, 0, 0, 0, 74, 75, 0, 29, + 76, 30, 0, 31, 32, 33, 34, 35, 36, 37, 0, 39, 40, 41, 42, 43, 0, 44, 45, 46, - 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, - 185, 186, 187, 188, 0, 0, 0, 56, 0, 57, - 58, 59, 60, 61, 62, 0, 0, 0, 0, 63, - 64, 65, 66, 67, 68, 0, 69, 196, 197, 0, - 0, 0, 70, 198, 199, 200, 0, 0, 201, 0, - 0, 0, 0, 0, 71, 72, 73, -187, 0, 187, - 188, 74, 75, 0, 30, 76, 31, 32, 33, 34, - 35, 36, 37, 150, 39, 40, 41, 42, 43, 0, - 44, 45, 46, 0, 196, 197, 47, 0, 0, 0, - 198, 199, 200, 0, 0, 201, 0, 0, 0, 0, - 56, 0, 57, 58, 59, 60, 61, 62, 0, 0, - 0, 0, 63, 64, 65, 66, 67, 68, 0, 69, - 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, - 0, 0, 0, 171, 172, 173, 174, 71, 72, 73, - 175, 0, 176, 0, 74, 75, 0, 30, 76, 31, - 32, 33, 34, 35, 36, 37, 0, 39, 40, 41, - 42, 43, 0, 44, 45, 46, 177, 178, 179, 47, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, - 62, 0, 0, 0, 0, 63, 64, 65, 66, 67, - 68, 0, 69, 0, 0, 0, 0, 0, 70, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 72, 73, 0, 0, 0, 0, 74, 75, 0, - 166, 76, 30, 0, 31, 32, 33, 34, 35, 36, - 37, 0, 39, 40, 41, 42, 43, 0, 44, 45, - 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, - 57, 58, 59, 60, 61, 62, 0, 0, 0, 0, - 63, 64, 65, 66, 67, 68, 0, 69, 0, 0, - 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 72, 73, 0, 0, - 0, 0, 74, 75, 0, 230, 76, 30, 0, 31, - 32, 33, 34, 35, 36, 37, 0, 39, 40, 41, - 42, 43, 0, 44, 45, 46, 0, 0, 0, 47, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, - 62, 0, 0, 0, 0, 63, 64, 65, 66, 67, - 68, 0, 69, 0, 0, 0, 0, 0, 70, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 72, 73, 0, 0, 0, 0, 74, 75, 0, - 241, 76, 30, 0, 31, 32, 33, 34, 35, 36, + 177, 178, 179, 47, 0, 0, 0, 0, 0, 0, + 0, 185, 186, 187, 188, 0, 0, 56, 0, 57, + 58, 59, 60, 61, 62, 367, 177, 178, 179, 63, + 64, 65, 66, 67, 68, 0, 69, 195, 196, 197, + 0, 0, 70, 0, 198, 199, 200, 0, 0, 201, + 0, 374, 0, 0, 71, 72, 73, 0, 0, 0, + 0, 74, 75, 0, 29, 76, 30, 0, 31, 32, + 33, 34, 35, 36, 37, 0, 146, 40, 41, 42, + 43, 0, 44, 45, 46, 197, 0, 0, 47, 0, + 198, 199, 200, 0, 0, 201, 0, 185, -187, 187, + 188, 0, 56, 0, 57, 58, 59, 60, 61, 62, + 0, 0, 0, 0, 63, 64, 65, 66, 67, 68, + 0, 69, 0, 0, 196, 197, 203, 70, 204, -157, + 198, 199, 200, 0, 0, 201, 0, -157, 0, 71, + 72, 73, 0, 0, 0, 0, 74, 75, 0, 0, + 76, 0, 0, -157, -157, -157, -157, 0, 0, 0, + -157, 0, -157, 0, 0, -157, 0, 0, 0, 0, + 0, 0, -157, -157, -157, -157, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -157, -157, -157, 0, + -157, -157, -157, -157, -157, -157, -157, -157, -157, -157, + -157, 0, 0, 0, 0, -157, -157, -157, 0, 0, + -157, -157, 30, 105, 31, 32, 33, 34, 35, 36, 37, 0, 39, 40, 41, 42, 43, 0, 44, 45, 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, + 0, 185, 186, 187, 188, 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, 62, 0, 0, 0, 0, - 63, 64, 65, 66, 67, 68, 0, 69, 0, 0, - 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 72, 73, 0, 0, - 0, 0, 74, 75, 0, 261, 76, 30, 0, 31, - 32, 33, 34, 35, 36, 37, 0, 39, 40, 41, - 42, 43, 0, 44, 45, 46, 0, 0, 0, 47, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, - 62, 0, 0, 0, 0, 63, 64, 65, 66, 67, - 68, 0, 69, 0, 0, 0, 0, 0, 70, 0, + 63, 64, 65, 66, 67, 68, 0, 69, 196, 197, + 0, 0, 0, 70, 198, 199, 200, 0, 0, 201, + 0, 0, 0, 0, 0, 71, 72, 73, -187, 0, + 187, 188, 74, 75, 0, 30, 76, 31, 32, 33, + 34, 35, 36, 37, 150, 39, 40, 41, 42, 43, + 0, 44, 45, 46, 0, 196, 197, 47, 0, 0, + 0, 198, 199, 200, 0, 0, 201, 0, 0, 0, + 0, 56, 0, 57, 58, 59, 60, 61, 62, 0, + 0, 0, 0, 63, 64, 65, 66, 67, 68, 0, + 69, 0, 0, 0, 0, 0, 70, 0, 0, 0, + 0, 0, 0, 0, 171, 172, 173, 174, 71, 72, + 73, 175, 0, 176, 0, 74, 75, 0, 30, 76, + 31, 32, 33, 34, 35, 36, 37, 0, 39, 40, + 41, 42, 43, 0, 44, 45, 46, 177, 178, 179, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, + 61, 62, 0, 0, 0, 0, 63, 64, 65, 66, + 67, 68, 0, 69, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 72, 73, 0, 0, 0, 0, 74, 75, 0, - 284, 76, 30, 0, 31, 32, 33, 34, 35, 36, - 37, 0, 39, 40, 41, 42, 43, 0, 44, 45, - 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, - 57, 58, 59, 60, 61, 62, 0, 0, 0, 0, - 63, 64, 65, 66, 67, 68, 0, 69, 0, 0, - 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 72, 73, 0, 0, - 0, 0, 74, 75, 0, 321, 76, 30, 0, 31, - 32, 33, 34, 35, 36, 37, 0, 39, 40, 41, - 42, 43, 0, 44, 45, 46, 0, 0, 0, 47, + 0, 71, 72, 73, 0, 0, 0, 0, 74, 75, + 0, 166, 76, 30, 0, 31, 32, 33, 34, 35, + 36, 37, 0, 39, 40, 41, 42, 43, 0, 44, + 45, 46, 0, 0, 0, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, + 0, 57, 58, 59, 60, 61, 62, 0, 0, 0, + 0, 63, 64, 65, 66, 67, 68, 0, 69, 0, + 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 71, 72, 73, 0, + 0, 0, 0, 74, 75, 0, 231, 76, 30, 0, + 31, 32, 33, 34, 35, 36, 37, 0, 39, 40, + 41, 42, 43, 0, 44, 45, 46, 0, 0, 0, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, + 61, 62, 0, 0, 0, 0, 63, 64, 65, 66, + 67, 68, 0, 69, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, - 62, 0, 0, 0, 0, 63, 64, 65, 66, 67, - 68, 0, 69, 0, 0, 0, 0, 0, 70, 0, + 0, 71, 72, 73, 0, 0, 0, 0, 74, 75, + 0, 242, 76, 30, 0, 31, 32, 33, 34, 35, + 36, 37, 0, 39, 40, 41, 42, 43, 0, 44, + 45, 46, 0, 0, 0, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, + 0, 57, 58, 59, 60, 61, 62, 0, 0, 0, + 0, 63, 64, 65, 66, 67, 68, 0, 69, 0, + 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 71, 72, 73, 0, + 0, 0, 0, 74, 75, 0, 262, 76, 30, 0, + 31, 32, 33, 34, 35, 36, 37, 0, 39, 40, + 41, 42, 43, 0, 44, 45, 46, 0, 0, 0, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, + 61, 62, 0, 0, 0, 0, 63, 64, 65, 66, + 67, 68, 0, 69, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 71, 72, 73, 0, 0, 0, 0, 74, 75, 0, - 323, 76, 30, 0, 31, 32, 33, 34, 35, 36, - 37, 0, 39, 40, 41, 42, 43, 0, 44, 45, - 46, 0, 0, 0, 47, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 56, 0, - 57, 58, 59, 60, 61, 62, 0, 0, 0, 0, - 63, 64, 65, 66, 67, 68, 0, 69, 0, 0, - 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 71, 72, 73, 0, 0, - 0, 0, 74, 75, 0, 336, 76, 30, 0, 31, - 32, 33, 34, 35, 36, 37, 0, 39, 40, 41, - 42, 43, 0, 44, 45, 46, 0, 0, 0, 47, + 0, 71, 72, 73, 0, 0, 0, 0, 74, 75, + 0, 285, 76, 30, 0, 31, 32, 33, 34, 35, + 36, 37, 0, 39, 40, 41, 42, 43, 0, 44, + 45, 46, 0, 0, 0, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, + 0, 57, 58, 59, 60, 61, 62, 0, 0, 0, + 0, 63, 64, 65, 66, 67, 68, 0, 69, 0, + 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 71, 72, 73, 0, + 0, 0, 0, 74, 75, 0, 322, 76, 30, 0, + 31, 32, 33, 34, 35, 36, 37, 0, 39, 40, + 41, 42, 43, 0, 44, 45, 46, 0, 0, 0, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, + 61, 62, 0, 0, 0, 0, 63, 64, 65, 66, + 67, 68, 0, 69, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 0, 57, 58, 59, 60, 61, - 62, 0, 0, 0, 0, 63, 64, 65, 66, 67, - 68, 0, 69, 0, 0, 0, 0, 0, 70, -186, - 0, 0, 0, 0, 0, 0, 0, -186, 0, 0, - 71, 72, 73, 0, 0, 0, 0, 74, 75, 0, - 0, 76, 0, -186, -186, -186, -186, 0, 0, 0, - -186, 0, -186, 0, 0, -186, 0, 0, 0, 0, - 0, 0, -186, -186, -186, -186, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, -186, -186, -186, 0, - -186, -186, -186, -186, -186, -186, -186, -186, -186, -186, - -186, 0, 383, 0, 385, -186, -186, -186, 389, 0, - -186, -186, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 393, 394, 0, 0, 0, 0, - 0, 0, 403, 404, 0, 0, 0, 0, 0, 184, - 0, 408, 0, 0, 0, 410, 185, 186, 187, 188, + 0, 71, 72, 73, 0, 0, 0, 0, 74, 75, + 0, 324, 76, 30, 0, 31, 32, 33, 34, 35, + 36, 37, 0, 39, 40, 41, 42, 43, 0, 44, + 45, 46, 0, 0, 0, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, + 0, 57, 58, 59, 60, 61, 62, 0, 0, 0, + 0, 63, 64, 65, 66, 67, 68, 0, 69, 0, + 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 71, 72, 73, 0, + 0, 0, 0, 74, 75, 0, 337, 76, 30, 0, + 31, 32, 33, 34, 35, 36, 37, 0, 39, 40, + 41, 42, 43, 0, 44, 45, 46, 0, 0, 0, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 56, 0, 57, 58, 59, 60, + 61, 62, 0, 0, 0, 0, 63, 64, 65, 66, + 67, 68, 0, 69, 0, 0, 0, 0, 0, 70, + -186, 0, 0, 0, 0, 0, 0, 0, -186, 0, + 0, 71, 72, 73, 0, 0, 0, 0, 74, 75, + 0, 0, 76, 0, -186, -186, -186, -186, 0, 0, + 0, -186, 0, -186, 0, 0, -186, 0, 0, 0, + 0, 0, 0, -186, -186, -186, -186, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -186, -186, -186, + 0, -186, -186, -186, -186, -186, -186, -186, -186, -186, + -186, -186, 0, 384, 0, 386, -186, -186, -186, 390, + 0, -186, -186, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 394, 395, 0, 0, 0, + 0, 0, 0, 404, 405, 0, 0, 0, 0, 0, + 184, 0, 409, 0, 0, 0, 411, 185, 186, 187, + 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 420, 421, 0, 189, 190, 334, 191, + 192, 193, 194, 195, 196, 197, 0, 0, 0, 184, + 198, 199, 200, 0, 0, 201, 185, 186, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 419, 420, 0, 189, 190, 333, 191, 192, + 0, 0, 0, 0, 0, 189, 190, 0, 191, 192, 193, 194, 195, 196, 197, 0, 0, 0, 184, 198, 199, 200, 0, 0, 201, 185, 186, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 189, 190, 0, 191, 192, 193, - 194, 195, 196, 197, 0, 0, 0, 184, 198, 199, + 0, 0, 0, 0, 0, 190, 0, 191, 192, 193, + 194, 195, 196, 197, 0, 0, 0, -187, 198, 199, 200, 0, 0, 201, 185, 186, 187, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 190, 0, 191, 192, 193, 194, - 195, 196, 197, 0, 0, 0, -187, 198, 199, 200, - 0, 0, 201, 185, 186, 187, 188, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, - 196, 197, 0, 0, 0, 0, 198, 199, 200, 0, - 0, 201 + 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, + 195, 196, 197, 0, 0, 0, 0, 198, 199, 200, + 0, 0, 201 }; static const yytype_int16 yycheck[] = { - 15, 104, 15, 118, 33, 34, 35, 36, 37, 9, - 225, 40, 41, 228, 216, 30, 3, 3, 5, 5, - 355, 14, 9, 52, 62, 3, 0, 5, 67, 16, - 383, 212, 70, 62, 63, 64, 6, 152, 219, 68, - 15, 3, 55, 5, 9, 10, 11, 14, 61, 88, - 65, 64, 124, 125, 126, 127, 128, 129, 58, 131, - 132, 76, 34, 35, 36, 37, 419, 402, 40, 41, - 63, 64, 65, 83, 84, 6, 3, 87, 5, 15, - 118, 3, 120, 6, 103, 98, 15, 31, 32, 89, - 62, 63, 14, 63, 64, 65, 63, 64, 65, 314, - 315, 45, 89, 89, 123, 221, 144, 223, 137, 122, - 14, 89, 56, 89, 152, 34, 35, 61, 6, 3, + 15, 104, 15, 33, 34, 35, 36, 37, 14, 226, + 40, 41, 229, 217, 3, 30, 5, 3, 118, 5, + 9, 356, 52, 62, 3, 67, 5, 16, 9, 10, + 11, 70, 62, 63, 64, 63, 64, 65, 68, 0, + 14, 384, 55, 15, 9, 3, 88, 0, 61, 15, + 65, 64, 152, 63, 64, 65, 14, 63, 64, 65, + 88, 76, 124, 125, 126, 127, 128, 129, 403, 131, + 132, 24, 25, 26, 15, 28, 29, 420, 88, 118, + 15, 120, 103, 14, 89, 98, 6, 31, 32, 63, + 64, 65, 89, 58, 4, 6, 89, 213, 315, 316, + 89, 45, 123, 89, 220, 144, 59, 137, 89, 122, + 89, 89, 56, 152, 24, 25, 26, 61, 28, 29, 64, 136, 137, 67, 89, 69, 4, 71, 72, 73, - 74, 75, 63, 64, 65, 14, 338, 9, 10, 154, - 63, 64, 65, 358, 89, 0, 24, 25, 26, 14, - 28, 29, 89, 15, 226, 168, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 137, 181, 182, 183, 24, - 25, 26, 201, 28, 29, 63, 64, 65, 293, 89, - 6, 59, 14, 298, 63, 64, 65, 202, 203, 204, - 205, 206, 207, 89, 409, 224, 89, 89, 63, 64, - 65, 216, 89, 4, 59, 220, 221, 89, 223, 89, - 225, 6, 90, 36, 6, 82, 83, 84, 14, 234, - 87, 236, 237, 24, 25, 26, 14, 28, 29, 67, - 245, 63, 64, 65, 3, 90, 180, 63, 64, 65, + 74, 75, 63, 64, 65, 339, 36, 90, 3, 154, + 5, 89, 359, 63, 64, 65, 24, 25, 26, 59, + 28, 29, 63, 64, 65, 168, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 227, 181, 182, 183, 6, + 89, 201, 34, 35, 36, 37, 6, 89, 40, 41, + 90, 59, 63, 64, 65, 89, 67, 202, 203, 204, + 205, 206, 207, 410, 294, 225, 63, 64, 65, 299, + 62, 63, 217, 3, 6, 5, 221, 222, 14, 224, + 89, 226, 90, 6, 83, 84, 34, 35, 87, 6, + 235, 88, 237, 238, 9, 10, 63, 64, 65, 3, + 222, 246, 224, 63, 64, 65, 180, 89, 15, 14, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 293, 89, 18, 59, 15, - 298, 89, 89, 278, 279, 89, 281, 88, 63, 64, - 65, 63, 64, 65, 4, 63, 64, 65, 77, 292, - 61, 294, 5, 82, 83, 84, 299, 61, 87, 90, - 15, 9, 395, 4, 88, 1, 18, 3, 5, 5, - 65, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 329, 21, 22, 23, 63, 64, - 65, 27, 89, 338, 30, 31, 32, 33, 18, 88, - 51, 37, 38, 39, 40, 41, 88, 43, 44, 45, - 46, 47, 48, 88, 88, 360, 88, 53, 54, 55, - 56, 57, 58, 88, 60, 89, 77, 88, 14, 385, - 66, 82, 83, 84, 88, 4, 87, 393, 394, 63, - 64, 65, 78, 79, 80, 4, 3, 403, 4, 85, - 86, 14, 9, 89, 410, 63, 64, 65, 15, 333, - 4, 1, 88, 20, 88, 5, 411, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 88, 21, 22, 23, 63, 64, 65, 27, 3, 30, - 31, 32, 33, 63, 64, 65, 37, 67, 39, 51, - 52, 41, 4, 43, 44, 45, 46, 47, 48, 88, - 63, 64, 65, 53, 54, 55, 56, 57, 58, 14, - 60, 88, 63, 64, 65, 77, 66, 88, 88, 15, - 82, 83, 84, 360, 89, 87, 47, 88, 78, 79, - 80, 88, 51, 52, 1, 85, 86, 88, 5, 89, - 7, 8, 9, 10, 11, 12, 13, 411, 15, 16, - 17, 18, 19, 27, 21, 22, 23, 76, 77, 68, - 27, 294, 68, 82, 83, 84, -1, -1, 87, -1, - 49, 50, 51, 52, 41, -1, 43, 44, 45, 46, - 47, 48, 63, 64, 65, -1, 53, 54, 55, 56, - 57, 58, -1, 60, 73, 74, 75, 76, 77, 66, - -1, -1, -1, 82, 83, 84, -1, 88, 87, -1, - -1, 78, 79, 80, -1, -1, -1, -1, 85, 86, - -1, 88, 89, 3, -1, 5, -1, 7, 8, 9, - 10, 11, 12, 13, -1, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 63, 64, 65, 27, -1, -1, - -1, -1, -1, -1, -1, -1, 49, 50, 51, 52, - -1, 41, -1, 43, 44, 45, 46, 47, 48, 88, - -1, -1, -1, 53, 54, 55, 56, 57, 58, -1, - 60, 74, 75, 76, 77, -1, 66, -1, -1, 82, - 83, 84, -1, -1, 87, -1, -1, -1, 78, 79, - 80, -1, -1, -1, -1, 85, 86, -1, 3, 89, - 5, -1, 7, 8, 9, 10, 11, 12, 13, -1, - 15, 16, 17, 18, 19, -1, 21, 22, 23, 63, - 64, 65, 27, -1, -1, -1, -1, -1, -1, -1, - 49, 50, 51, 52, -1, -1, 41, -1, 43, 44, - 45, 46, 47, 48, 88, 63, 64, 65, 53, 54, - 55, 56, 57, 58, -1, 60, 75, 76, 77, -1, - -1, 66, -1, 82, 83, 84, -1, -1, 87, -1, - 88, -1, -1, 78, 79, 80, -1, -1, -1, -1, - 85, 86, -1, 3, 89, 5, -1, 7, 8, 9, - 10, 11, 12, 13, -1, 15, 16, 17, 18, 19, - -1, 21, 22, 23, 63, 64, 65, 27, -1, -1, - -1, -1, -1, -1, -1, -1, 49, 50, 51, 52, - -1, 41, -1, 43, 44, 45, 46, 47, 48, 88, - -1, -1, -1, 53, 54, 55, 56, 57, 58, -1, - 60, -1, -1, 76, 77, 3, 66, 5, 6, 82, - 83, 84, -1, -1, 87, -1, 14, -1, 78, 79, - 80, -1, -1, -1, -1, 85, 86, -1, -1, 89, - -1, -1, 30, 31, 32, 33, -1, -1, -1, 37, - -1, 39, -1, -1, 42, -1, -1, -1, -1, -1, - -1, 49, 50, 51, 52, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 63, 64, 65, -1, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - -1, -1, -1, -1, 82, 83, 84, -1, -1, 87, - 88, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 194, 195, 196, 197, 198, 294, 14, 63, 64, 65, + 299, 63, 64, 65, 279, 280, 67, 282, 89, 3, + 63, 64, 65, 18, 14, 137, 63, 64, 65, 15, + 293, 89, 295, 63, 64, 65, 89, 300, 63, 64, + 65, 88, 4, 396, 89, 61, 1, 5, 3, 61, + 5, 15, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 330, 21, 22, 23, 14, + 9, 88, 27, 4, 339, 30, 31, 32, 33, 5, + 18, 51, 37, 38, 39, 40, 41, 65, 43, 44, + 45, 46, 47, 48, 18, 89, 361, 88, 53, 54, + 55, 56, 57, 58, 3, 60, 88, 77, 88, 88, + 9, 66, 82, 83, 84, 88, 15, 87, 63, 64, + 65, 20, 89, 78, 79, 80, 14, 88, 88, 4, + 85, 86, 4, 14, 89, 4, 63, 64, 65, 4, + 334, 3, 1, 4, 88, 88, 5, 412, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 88, 21, 22, 23, 63, 64, 65, 27, 88, + 30, 31, 32, 33, 88, 14, 89, 37, 88, 39, + 51, 52, 41, 88, 43, 44, 45, 46, 47, 48, + 88, 15, 412, 361, 53, 54, 55, 56, 57, 58, + 47, 60, 27, 63, 64, 65, 77, 66, -1, 295, + 68, 82, 83, 84, 68, -1, 87, -1, -1, 78, + 79, 80, -1, 51, 52, 1, 85, 86, 88, 5, + 89, 7, 8, 9, 10, 11, 12, 13, -1, 15, + 16, 17, 18, 19, -1, 21, 22, 23, 76, 77, + -1, 27, -1, -1, 82, 83, 84, -1, -1, 87, + -1, 49, 50, 51, 52, 41, -1, 43, 44, 45, + 46, 47, 48, 63, 64, 65, -1, 53, 54, 55, + 56, 57, 58, 386, 60, 73, 74, 75, 76, 77, + 66, 394, 395, -1, 82, 83, 84, -1, 88, 87, + -1, 404, 78, 79, 80, -1, -1, -1, 411, 85, + 86, -1, 88, 89, 3, -1, 5, -1, 7, 8, + 9, 10, 11, 12, 13, -1, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 63, 64, 65, 27, 82, + 83, 84, -1, -1, 87, -1, -1, 49, 50, 51, + 52, -1, 41, -1, 43, 44, 45, 46, 47, 48, + 88, -1, -1, -1, 53, 54, 55, 56, 57, 58, + -1, 60, 74, 75, 76, 77, -1, 66, -1, -1, + 82, 83, 84, -1, -1, 87, -1, -1, -1, 78, + 79, 80, -1, -1, -1, -1, 85, 86, -1, 3, + 89, 5, -1, 7, 8, 9, 10, 11, 12, 13, -1, 15, 16, 17, 18, 19, -1, 21, 22, 23, - -1, -1, -1, 27, -1, -1, -1, -1, -1, -1, - 49, 50, 51, 52, -1, -1, -1, 41, -1, 43, - 44, 45, 46, 47, 48, -1, -1, -1, -1, 53, - 54, 55, 56, 57, 58, -1, 60, 76, 77, -1, - -1, -1, 66, 82, 83, 84, -1, -1, 87, -1, - -1, -1, -1, -1, 78, 79, 80, 49, -1, 51, - 52, 85, 86, -1, 5, 89, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, - 21, 22, 23, -1, 76, 77, 27, -1, -1, -1, - 82, 83, 84, -1, -1, 87, -1, -1, -1, -1, - 41, -1, 43, 44, 45, 46, 47, 48, -1, -1, - -1, -1, 53, 54, 55, 56, 57, 58, -1, 60, - -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, - -1, -1, -1, 30, 31, 32, 33, 78, 79, 80, - 37, -1, 39, -1, 85, 86, -1, 5, 89, 7, - 8, 9, 10, 11, 12, 13, -1, 15, 16, 17, - 18, 19, -1, 21, 22, 23, 63, 64, 65, 27, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 41, -1, 43, 44, 45, 46, 47, - 48, -1, -1, -1, -1, 53, 54, 55, 56, 57, - 58, -1, 60, -1, -1, -1, -1, -1, 66, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 78, 79, 80, -1, -1, -1, -1, 85, 86, -1, - 88, 89, 5, -1, 7, 8, 9, 10, 11, 12, - 13, -1, 15, 16, 17, 18, 19, -1, 21, 22, - 23, -1, -1, -1, 27, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, - 43, 44, 45, 46, 47, 48, -1, -1, -1, -1, - 53, 54, 55, 56, 57, 58, -1, 60, -1, -1, - -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, - -1, -1, 85, 86, -1, 88, 89, 5, -1, 7, - 8, 9, 10, 11, 12, 13, -1, 15, 16, 17, - 18, 19, -1, 21, 22, 23, -1, -1, -1, 27, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 41, -1, 43, 44, 45, 46, 47, - 48, -1, -1, -1, -1, 53, 54, 55, 56, 57, - 58, -1, 60, -1, -1, -1, -1, -1, 66, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 78, 79, 80, -1, -1, -1, -1, 85, 86, -1, - 88, 89, 5, -1, 7, 8, 9, 10, 11, 12, + 63, 64, 65, 27, -1, -1, -1, -1, -1, -1, + -1, 49, 50, 51, 52, -1, -1, 41, -1, 43, + 44, 45, 46, 47, 48, 88, 63, 64, 65, 53, + 54, 55, 56, 57, 58, -1, 60, 75, 76, 77, + -1, -1, 66, -1, 82, 83, 84, -1, -1, 87, + -1, 88, -1, -1, 78, 79, 80, -1, -1, -1, + -1, 85, 86, -1, 3, 89, 5, -1, 7, 8, + 9, 10, 11, 12, 13, -1, 15, 16, 17, 18, + 19, -1, 21, 22, 23, 77, -1, -1, 27, -1, + 82, 83, 84, -1, -1, 87, -1, 49, 50, 51, + 52, -1, 41, -1, 43, 44, 45, 46, 47, 48, + -1, -1, -1, -1, 53, 54, 55, 56, 57, 58, + -1, 60, -1, -1, 76, 77, 3, 66, 5, 6, + 82, 83, 84, -1, -1, 87, -1, 14, -1, 78, + 79, 80, -1, -1, -1, -1, 85, 86, -1, -1, + 89, -1, -1, 30, 31, 32, 33, -1, -1, -1, + 37, -1, 39, -1, -1, 42, -1, -1, -1, -1, + -1, -1, 49, 50, 51, 52, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 63, 64, 65, -1, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, -1, -1, -1, -1, 82, 83, 84, -1, -1, + 87, 88, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, 15, 16, 17, 18, 19, -1, 21, 22, 23, -1, -1, -1, 27, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, + -1, 49, 50, 51, 52, -1, -1, -1, 41, -1, 43, 44, 45, 46, 47, 48, -1, -1, -1, -1, - 53, 54, 55, 56, 57, 58, -1, 60, -1, -1, - -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, - -1, -1, 85, 86, -1, 88, 89, 5, -1, 7, - 8, 9, 10, 11, 12, 13, -1, 15, 16, 17, - 18, 19, -1, 21, 22, 23, -1, -1, -1, 27, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 41, -1, 43, 44, 45, 46, 47, - 48, -1, -1, -1, -1, 53, 54, 55, 56, 57, - 58, -1, 60, -1, -1, -1, -1, -1, 66, -1, + 53, 54, 55, 56, 57, 58, -1, 60, 76, 77, + -1, -1, -1, 66, 82, 83, 84, -1, -1, 87, + -1, -1, -1, -1, -1, 78, 79, 80, 49, -1, + 51, 52, 85, 86, -1, 5, 89, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + -1, 21, 22, 23, -1, 76, 77, 27, -1, -1, + -1, 82, 83, 84, -1, -1, 87, -1, -1, -1, + -1, 41, -1, 43, 44, 45, 46, 47, 48, -1, + -1, -1, -1, 53, 54, 55, 56, 57, 58, -1, + 60, -1, -1, -1, -1, -1, 66, -1, -1, -1, + -1, -1, -1, -1, 30, 31, 32, 33, 78, 79, + 80, 37, -1, 39, -1, 85, 86, -1, 5, 89, + 7, 8, 9, 10, 11, 12, 13, -1, 15, 16, + 17, 18, 19, -1, 21, 22, 23, 63, 64, 65, + 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 41, -1, 43, 44, 45, 46, + 47, 48, -1, -1, -1, -1, 53, 54, 55, 56, + 57, 58, -1, 60, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 78, 79, 80, -1, -1, -1, -1, 85, 86, -1, - 88, 89, 5, -1, 7, 8, 9, 10, 11, 12, - 13, -1, 15, 16, 17, 18, 19, -1, 21, 22, - 23, -1, -1, -1, 27, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, - 43, 44, 45, 46, 47, 48, -1, -1, -1, -1, - 53, 54, 55, 56, 57, 58, -1, 60, -1, -1, - -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, - -1, -1, 85, 86, -1, 88, 89, 5, -1, 7, - 8, 9, 10, 11, 12, 13, -1, 15, 16, 17, - 18, 19, -1, 21, 22, 23, -1, -1, -1, 27, + -1, 78, 79, 80, -1, -1, -1, -1, 85, 86, + -1, 88, 89, 5, -1, 7, 8, 9, 10, 11, + 12, 13, -1, 15, 16, 17, 18, 19, -1, 21, + 22, 23, -1, -1, -1, 27, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, + -1, 43, 44, 45, 46, 47, 48, -1, -1, -1, + -1, 53, 54, 55, 56, 57, 58, -1, 60, -1, + -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, + -1, -1, -1, 85, 86, -1, 88, 89, 5, -1, + 7, 8, 9, 10, 11, 12, 13, -1, 15, 16, + 17, 18, 19, -1, 21, 22, 23, -1, -1, -1, + 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 41, -1, 43, 44, 45, 46, + 47, 48, -1, -1, -1, -1, 53, 54, 55, 56, + 57, 58, -1, 60, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 41, -1, 43, 44, 45, 46, 47, - 48, -1, -1, -1, -1, 53, 54, 55, 56, 57, - 58, -1, 60, -1, -1, -1, -1, -1, 66, -1, + -1, 78, 79, 80, -1, -1, -1, -1, 85, 86, + -1, 88, 89, 5, -1, 7, 8, 9, 10, 11, + 12, 13, -1, 15, 16, 17, 18, 19, -1, 21, + 22, 23, -1, -1, -1, 27, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, + -1, 43, 44, 45, 46, 47, 48, -1, -1, -1, + -1, 53, 54, 55, 56, 57, 58, -1, 60, -1, + -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, + -1, -1, -1, 85, 86, -1, 88, 89, 5, -1, + 7, 8, 9, 10, 11, 12, 13, -1, 15, 16, + 17, 18, 19, -1, 21, 22, 23, -1, -1, -1, + 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 41, -1, 43, 44, 45, 46, + 47, 48, -1, -1, -1, -1, 53, 54, 55, 56, + 57, 58, -1, 60, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 78, 79, 80, -1, -1, -1, -1, 85, 86, -1, - 88, 89, 5, -1, 7, 8, 9, 10, 11, 12, - 13, -1, 15, 16, 17, 18, 19, -1, 21, 22, - 23, -1, -1, -1, 27, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 41, -1, - 43, 44, 45, 46, 47, 48, -1, -1, -1, -1, - 53, 54, 55, 56, 57, 58, -1, 60, -1, -1, - -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 78, 79, 80, -1, -1, - -1, -1, 85, 86, -1, 88, 89, 5, -1, 7, - 8, 9, 10, 11, 12, 13, -1, 15, 16, 17, - 18, 19, -1, 21, 22, 23, -1, -1, -1, 27, + -1, 78, 79, 80, -1, -1, -1, -1, 85, 86, + -1, 88, 89, 5, -1, 7, 8, 9, 10, 11, + 12, 13, -1, 15, 16, 17, 18, 19, -1, 21, + 22, 23, -1, -1, -1, 27, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, + -1, 43, 44, 45, 46, 47, 48, -1, -1, -1, + -1, 53, 54, 55, 56, 57, 58, -1, 60, -1, + -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, + -1, -1, -1, 85, 86, -1, 88, 89, 5, -1, + 7, 8, 9, 10, 11, 12, 13, -1, 15, 16, + 17, 18, 19, -1, 21, 22, 23, -1, -1, -1, + 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 41, -1, 43, 44, 45, 46, + 47, 48, -1, -1, -1, -1, 53, 54, 55, 56, + 57, 58, -1, 60, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 41, -1, 43, 44, 45, 46, 47, - 48, -1, -1, -1, -1, 53, 54, 55, 56, 57, - 58, -1, 60, -1, -1, -1, -1, -1, 66, 6, - -1, -1, -1, -1, -1, -1, -1, 14, -1, -1, - 78, 79, 80, -1, -1, -1, -1, 85, 86, -1, - -1, 89, -1, 30, 31, 32, 33, -1, -1, -1, - 37, -1, 39, -1, -1, 42, -1, -1, -1, -1, - -1, -1, 49, 50, 51, 52, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 63, 64, 65, -1, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, -1, 357, -1, 359, 82, 83, 84, 363, -1, - 87, 88, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 379, 380, -1, -1, -1, -1, - -1, -1, 387, 388, -1, -1, -1, -1, -1, 42, - -1, 396, -1, -1, -1, 400, 49, 50, 51, 52, + -1, 78, 79, 80, -1, -1, -1, -1, 85, 86, + -1, 88, 89, 5, -1, 7, 8, 9, 10, 11, + 12, 13, -1, 15, 16, 17, 18, 19, -1, 21, + 22, 23, -1, -1, -1, 27, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 41, + -1, 43, 44, 45, 46, 47, 48, -1, -1, -1, + -1, 53, 54, 55, 56, 57, 58, -1, 60, -1, + -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 78, 79, 80, -1, + -1, -1, -1, 85, 86, -1, 88, 89, 5, -1, + 7, 8, 9, 10, 11, 12, 13, -1, 15, 16, + 17, 18, 19, -1, 21, 22, 23, -1, -1, -1, + 27, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 41, -1, 43, 44, 45, 46, + 47, 48, -1, -1, -1, -1, 53, 54, 55, 56, + 57, 58, -1, 60, -1, -1, -1, -1, -1, 66, + 6, -1, -1, -1, -1, -1, -1, -1, 14, -1, + -1, 78, 79, 80, -1, -1, -1, -1, 85, 86, + -1, -1, 89, -1, 30, 31, 32, 33, -1, -1, + -1, 37, -1, 39, -1, -1, 42, -1, -1, -1, + -1, -1, -1, 49, 50, 51, 52, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 63, 64, 65, + -1, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, -1, 358, -1, 360, 82, 83, 84, 364, + -1, 87, 88, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 380, 381, -1, -1, -1, + -1, -1, -1, 388, 389, -1, -1, -1, -1, -1, + 42, -1, 397, -1, -1, -1, 401, 49, 50, 51, + 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 418, 419, -1, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, -1, -1, -1, 42, + 82, 83, 84, -1, -1, 87, 49, 50, 51, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 417, 418, -1, 68, 69, 70, 71, 72, + -1, -1, -1, -1, -1, 68, 69, -1, 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, 42, 82, 83, 84, -1, -1, 87, 49, 50, 51, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 68, 69, -1, 71, 72, 73, + -1, -1, -1, -1, -1, 69, -1, 71, 72, 73, 74, 75, 76, 77, -1, -1, -1, 42, 82, 83, 84, -1, -1, 87, 49, 50, 51, 52, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 69, -1, 71, 72, 73, 74, - 75, 76, 77, -1, -1, -1, 42, 82, 83, 84, - -1, -1, 87, 49, 50, 51, 52, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 71, 72, 73, 74, 75, - 76, 77, -1, -1, -1, -1, 82, 83, 84, -1, - -1, 87 + -1, -1, -1, -1, -1, -1, 71, 72, 73, 74, + 75, 76, 77, -1, -1, -1, -1, 82, 83, 84, + -1, -1, 87 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -859,7 +859,7 @@ static const yytype_uint8 yystos[] = 66, 78, 79, 80, 85, 86, 89, 93, 101, 103, 104, 133, 134, 135, 138, 139, 140, 141, 142, 143, 144, 149, 150, 151, 152, 153, 154, 15, 119, 15, - 125, 14, 132, 125, 94, 6, 133, 143, 143, 15, + 125, 15, 132, 125, 94, 6, 133, 143, 143, 15, 20, 93, 150, 155, 155, 155, 155, 155, 155, 155, 89, 143, 123, 123, 89, 89, 89, 89, 58, 89, 150, 89, 89, 93, 143, 89, 89, 89, 93, 143, @@ -870,28 +870,28 @@ static const yytype_uint8 yystos[] = 67, 3, 5, 89, 42, 49, 50, 51, 52, 68, 69, 71, 72, 73, 74, 75, 76, 77, 82, 83, 84, 87, 89, 3, 5, 3, 5, 3, 93, 18, - 126, 15, 126, 99, 6, 146, 89, 134, 93, 126, - 94, 94, 94, 94, 94, 94, 89, 94, 94, 88, - 88, 133, 133, 147, 155, 134, 89, 89, 4, 14, - 146, 88, 133, 61, 128, 5, 88, 93, 133, 111, - 133, 133, 133, 133, 133, 133, 133, 133, 143, 133, - 133, 88, 133, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 3, 5, - 16, 89, 137, 150, 88, 133, 133, 133, 133, 133, - 133, 61, 127, 15, 127, 4, 147, 88, 136, 127, - 110, 133, 111, 112, 133, 111, 114, 148, 150, 101, - 109, 112, 113, 133, 94, 95, 112, 88, 67, 88, - 133, 88, 133, 88, 133, 4, 88, 18, 133, 5, - 14, 6, 88, 70, 133, 133, 88, 133, 89, 88, - 14, 6, 14, 6, 14, 18, 14, 93, 129, 146, - 129, 88, 146, 93, 88, 88, 88, 88, 89, 88, - 14, 112, 112, 88, 88, 88, 88, 6, 133, 4, - 143, 14, 6, 88, 147, 4, 4, 4, 14, 108, - 108, 3, 97, 97, 112, 97, 110, 88, 88, 97, - 6, 4, 88, 97, 97, 98, 34, 35, 102, 102, - 88, 105, 14, 97, 97, 105, 105, 99, 97, 89, - 97, 108, 105, 4, 112, 105, 113, 88, 88, 97, - 97, 102 + 126, 14, 15, 126, 99, 6, 146, 89, 134, 93, + 126, 94, 94, 94, 94, 94, 94, 89, 94, 94, + 88, 88, 133, 133, 147, 155, 134, 89, 89, 4, + 14, 146, 88, 133, 61, 128, 5, 88, 93, 133, + 111, 133, 133, 133, 133, 133, 133, 133, 133, 143, + 133, 133, 88, 133, 143, 143, 143, 143, 143, 143, + 143, 143, 143, 143, 143, 143, 143, 143, 143, 3, + 5, 16, 89, 137, 150, 88, 133, 133, 133, 133, + 133, 133, 61, 127, 15, 127, 4, 147, 88, 136, + 127, 110, 133, 111, 112, 133, 111, 114, 148, 150, + 101, 109, 112, 113, 133, 94, 95, 112, 88, 67, + 88, 133, 88, 133, 88, 133, 4, 88, 18, 133, + 5, 14, 6, 88, 70, 133, 133, 88, 133, 89, + 88, 14, 6, 14, 6, 14, 18, 14, 93, 129, + 146, 129, 88, 146, 93, 88, 88, 88, 88, 89, + 88, 14, 112, 112, 88, 88, 88, 88, 6, 133, + 4, 143, 14, 6, 88, 147, 4, 4, 4, 14, + 108, 108, 3, 97, 97, 112, 97, 110, 88, 88, + 97, 6, 4, 88, 97, 97, 98, 34, 35, 102, + 102, 88, 105, 14, 97, 97, 105, 105, 99, 97, + 89, 97, 108, 105, 4, 112, 105, 113, 88, 88, + 97, 97, 102 }; typedef enum { @@ -633,16 +633,22 @@ subbody : block { $$ = $1; } } ; -package : PACKAGE WORD ';' +package : PACKAGE WORD WORD ';' { +/* Since no one seem to understand or use the MAD stuff, but Larry implies + * it shouldn't be removed, it's just commented out, and someone who + * understands it can come along later and fix it up. #ifdef MAD - $$ = package($2); - token_getmad($1,$$,'o'); - token_getmad($3,$$,';'); + (yyval.opval) = package((ps[(2) - (3)].val.opval)); + token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o'); + token_getmad((ps[(3) - (3)].val.i_tkval),(yyval.opval),';'); #else - package($2); +*/ + package($3); + if ($2) { + package_version($2); + } $$ = (OP*)NULL; -#endif } ; diff --git a/pod/perlfunc.pod b/pod/perlfunc.pod index bcf2b78009..fd8aa88669 100644 --- a/pod/perlfunc.pod +++ b/pod/perlfunc.pod @@ -4080,8 +4080,10 @@ Examples: The same template may generally also be used in unpack(). +=item package NAMESPACE VERSION +X<package> X<module> X<namespace> X<version> + =item package NAMESPACE -X<package> X<module> X<namespace> Declares the compilation unit as being in the given namespace. The scope of the package declaration is from the declaration itself through the end @@ -4099,6 +4101,11 @@ If the package name is null, the C<main> package as assumed. That is, C<$::sail> is equivalent to C<$main::sail> (as well as to C<$main'sail>, still seen in older code). +If VERSION is provided, C<package> also sets the C<$VERSION> variable in the +given namespace. VERSION must be be a numeric literal or v-string; it is +parsed exactly the same way as a VERSION argument to C<use MODULE VERSION>. +C<$VERSION> should only be set once per package. + See L<perlmod/"Packages"> for more information about packages, modules, and classes. See L<perlsub> for other scoping issues. @@ -2329,6 +2329,11 @@ PERL_CALLCONV void Perl_package(pTHX_ OP* o) assert(o) #endif +PERL_CALLCONV void Perl_package_version(pTHX_ OP* v) + __attribute__nonnull__(pTHX_1); +#define PERL_ARGS_ASSERT_PACKAGE_VERSION \ + assert(v) + PERL_CALLCONV PADOFFSET Perl_pad_alloc(pTHX_ I32 optype, U32 tmptype); PERL_CALLCONV PADOFFSET Perl_allocmy(pTHX_ const char *const name) __attribute__nonnull__(pTHX_1); diff --git a/t/comp/package.t b/t/comp/package.t index 35cd40ccb5..fb07f13bd8 100644 --- a/t/comp/package.t +++ b/t/comp/package.t @@ -1,6 +1,6 @@ #!./perl -print "1..14\n"; +print "1..18\n"; $blurfl = 123; $foo = 3; @@ -71,3 +71,22 @@ package bug32562; print __PACKAGE__ eq 'bug32562' ? "ok 13\n" : "not ok 13\n"; print eval '__PACKAGE__' eq 'bug32562' ? "ok 14\n" : "not ok 14\n"; + +# test: package NAME VERSION + +my @variations = ( + '1.00', + '1.00_01', + 'v1.2.3', + 'v1.2_3', +); + +my $test_count = 15; + +for my $v ( @variations ) { + my $ok = eval "package withversion $v; $v eq \$withversion::VERSION"; + print $ok ? "ok $test_count\n" : "not ok $test_count\n"; + $test_count++; +} + + @@ -6410,6 +6410,7 @@ Perl_yylex(pTHX) case KEY_package: s = force_word(s,WORD,FALSE,TRUE,FALSE); + s = force_version(s, FALSE); OPERATOR(PACKAGE); case KEY_pipe: |