diff options
-rw-r--r-- | perly.act | 650 | ||||
-rw-r--r-- | perly.h | 2 | ||||
-rw-r--r-- | perly.tab | 1480 | ||||
-rw-r--r-- | perly.y | 12 | ||||
-rw-r--r-- | pod/perldelta.pod | 16 | ||||
-rw-r--r-- | pod/perlsyn.pod | 33 | ||||
-rw-r--r-- | t/op/yadayada.t | 35 | ||||
-rw-r--r-- | toke.c | 2 |
8 files changed, 1121 insertions, 1109 deletions
@@ -563,14 +563,23 @@ case 2: case 56: #line 485 "perly.y" /* yacc.c:1646 */ { + (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), + newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); + } + + break; + + case 57: +#line 490 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = NULL; parser->copline = NOLINE; } break; - case 57: -#line 493 "perly.y" /* yacc.c:1646 */ + case 58: +#line 498 "perly.y" /* yacc.c:1646 */ { OP *list; if ((ps[0].val.opval)) { OP *term = (ps[0].val.opval); @@ -588,75 +597,75 @@ case 2: break; - case 58: -#line 510 "perly.y" /* yacc.c:1646 */ + case 59: +#line 515 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = NULL; } break; - case 59: -#line 512 "perly.y" /* yacc.c:1646 */ + case 60: +#line 517 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_unscope((ps[-1].val.opval)); } break; - case 60: -#line 517 "perly.y" /* yacc.c:1646 */ + case 61: +#line 522 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = NULL; } break; - case 61: -#line 519 "perly.y" /* yacc.c:1646 */ + case 62: +#line 524 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (ps[0].val.opval); } break; - case 62: -#line 521 "perly.y" /* yacc.c:1646 */ + case 63: +#line 526 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[0].val.opval), (ps[-2].val.opval)); } break; - case 63: -#line 523 "perly.y" /* yacc.c:1646 */ + case 64: +#line 528 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[0].val.opval), (ps[-2].val.opval)); } break; - case 64: -#line 525 "perly.y" /* yacc.c:1646 */ + case 65: +#line 530 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[0].val.opval)), (ps[-2].val.opval)); } break; - case 65: -#line 527 "perly.y" /* yacc.c:1646 */ + case 66: +#line 532 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[0].val.opval), (ps[-2].val.opval)); } break; - case 66: -#line 529 "perly.y" /* yacc.c:1646 */ + case 67: +#line 534 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newFOROP(0, NULL, (ps[0].val.opval), (ps[-2].val.opval), NULL); parser->copline = (line_t)(ps[-1].val.ival); } break; - case 67: -#line 532 "perly.y" /* yacc.c:1646 */ + case 68: +#line 537 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newWHENOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); } break; - case 68: -#line 537 "perly.y" /* yacc.c:1646 */ + case 69: +#line 542 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = NULL; } break; - case 69: -#line 539 "perly.y" /* yacc.c:1646 */ + case 70: +#line 544 "perly.y" /* yacc.c:1646 */ { ((ps[0].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = op_scope((ps[0].val.opval)); @@ -664,8 +673,8 @@ case 2: break; - case 70: -#line 544 "perly.y" /* yacc.c:1646 */ + case 71: +#line 549 "perly.y" /* yacc.c:1646 */ { parser->copline = (line_t)(ps[-5].val.ival); (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[-3].val.opval)), @@ -675,153 +684,153 @@ case 2: break; - case 71: -#line 554 "perly.y" /* yacc.c:1646 */ + case 72: +#line 559 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = NULL; } break; - case 72: -#line 556 "perly.y" /* yacc.c:1646 */ + case 73: +#line 561 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_scope((ps[0].val.opval)); } break; - case 73: -#line 561 "perly.y" /* yacc.c:1646 */ + case 74: +#line 566 "perly.y" /* yacc.c:1646 */ { (yyval.ival) = (PL_min_intro_pending && PL_max_intro_pending >= PL_min_intro_pending); intro_my(); } break; - case 74: -#line 567 "perly.y" /* yacc.c:1646 */ + case 75: +#line 572 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = NULL; } break; - case 76: -#line 573 "perly.y" /* yacc.c:1646 */ + case 77: +#line 578 "perly.y" /* yacc.c:1646 */ { YYSTYPE tmplval; (void)scan_num("1", &tmplval); (yyval.opval) = tmplval.opval; } break; - case 78: -#line 581 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = invert(scalar((ps[0].val.opval))); } - - break; - case 79: #line 586 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = (ps[0].val.opval); intro_my(); } + { (yyval.opval) = invert(scalar((ps[0].val.opval))); } break; case 80: -#line 590 "perly.y" /* yacc.c:1646 */ +#line 591 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (ps[0].val.opval); intro_my(); } break; case 81: -#line 593 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = (ps[0].val.opval); } +#line 595 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); intro_my(); } break; case 82: -#line 594 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = NULL; } +#line 598 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } break; case 83: -#line 598 "perly.y" /* yacc.c:1646 */ - { (yyval.ival) = start_subparse(FALSE, 0); - SAVEFREESV(PL_compcv); } +#line 599 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = NULL; } break; case 84: -#line 604 "perly.y" /* yacc.c:1646 */ - { (yyval.ival) = start_subparse(FALSE, CVf_ANON); +#line 603 "perly.y" /* yacc.c:1646 */ + { (yyval.ival) = start_subparse(FALSE, 0); SAVEFREESV(PL_compcv); } break; case 85: #line 609 "perly.y" /* yacc.c:1646 */ - { (yyval.ival) = start_subparse(TRUE, 0); + { (yyval.ival) = start_subparse(FALSE, CVf_ANON); SAVEFREESV(PL_compcv); } break; - case 88: -#line 620 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = NULL; } + case 86: +#line 614 "perly.y" /* yacc.c:1646 */ + { (yyval.ival) = start_subparse(TRUE, 0); + SAVEFREESV(PL_compcv); } break; - case 90: -#line 626 "perly.y" /* yacc.c:1646 */ + case 89: +#line 625 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = NULL; } break; case 91: -#line 628 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = (ps[0].val.opval); } +#line 631 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = NULL; } break; case 92: -#line 630 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = NULL; } +#line 633 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } break; case 93: #line 635 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = (ps[0].val.opval); } + { (yyval.opval) = NULL; } break; case 94: -#line 637 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = NULL; } +#line 640 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } break; case 95: -#line 648 "perly.y" /* yacc.c:1646 */ - { parser->in_my = 0; (yyval.opval) = NULL; } +#line 642 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = NULL; } break; case 96: -#line 650 "perly.y" /* yacc.c:1646 */ - { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); } +#line 653 "perly.y" /* yacc.c:1646 */ + { parser->in_my = 0; (yyval.opval) = NULL; } break; case 97: #line 655 "perly.y" /* yacc.c:1646 */ - { (yyval.ival) = '@'; } + { parser->in_my = 0; (yyval.opval) = (ps[0].val.opval); } break; case 98: -#line 657 "perly.y" /* yacc.c:1646 */ - { (yyval.ival) = '%'; } +#line 660 "perly.y" /* yacc.c:1646 */ + { (yyval.ival) = '@'; } break; case 99: -#line 661 "perly.y" /* yacc.c:1646 */ +#line 662 "perly.y" /* yacc.c:1646 */ + { (yyval.ival) = '%'; } + + break; + + case 100: +#line 666 "perly.y" /* yacc.c:1646 */ { I32 sigil = (ps[-2].val.ival); OP *var = (ps[-1].val.opval); @@ -840,26 +849,26 @@ case 2: break; - case 100: -#line 680 "perly.y" /* yacc.c:1646 */ + case 101: +#line 685 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = NULL; } break; - case 101: -#line 682 "perly.y" /* yacc.c:1646 */ + case 102: +#line 687 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newOP(OP_NULL, 0); } break; - case 102: -#line 684 "perly.y" /* yacc.c:1646 */ + case 103: +#line 689 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (ps[0].val.opval); } break; - case 103: -#line 690 "perly.y" /* yacc.c:1646 */ + case 104: +#line 695 "perly.y" /* yacc.c:1646 */ { OP *var = (ps[-1].val.opval); OP *defexpr = (ps[0].val.opval); @@ -923,52 +932,52 @@ case 2: break; - case 104: -#line 755 "perly.y" /* yacc.c:1646 */ + case 105: +#line 760 "perly.y" /* yacc.c:1646 */ { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } break; - case 105: -#line 757 "perly.y" /* yacc.c:1646 */ + case 106: +#line 762 "perly.y" /* yacc.c:1646 */ { parser->in_my = KEY_sigvar; (yyval.opval) = (ps[0].val.opval); } break; - case 106: -#line 763 "perly.y" /* yacc.c:1646 */ + case 107: +#line 768 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (ps[-1].val.opval); } break; - case 107: -#line 765 "perly.y" /* yacc.c:1646 */ + case 108: +#line 770 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 108: -#line 769 "perly.y" /* yacc.c:1646 */ + case 109: +#line 774 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (ps[0].val.opval); } break; - case 109: -#line 774 "perly.y" /* yacc.c:1646 */ + case 110: +#line 779 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = NULL; } break; - case 110: -#line 776 "perly.y" /* yacc.c:1646 */ + case 111: +#line 781 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (ps[0].val.opval); } break; - case 111: -#line 780 "perly.y" /* yacc.c:1646 */ + case 112: +#line 785 "perly.y" /* yacc.c:1646 */ { ENTER; SAVEIV(parser->sig_elems); @@ -982,8 +991,8 @@ case 2: break; - case 112: -#line 792 "perly.y" /* yacc.c:1646 */ + case 113: +#line 797 "perly.y" /* yacc.c:1646 */ { OP *sigops = (ps[-1].val.opval); UNOP_AUX_item *aux; @@ -1021,38 +1030,38 @@ case 2: break; - case 114: -#line 832 "perly.y" /* yacc.c:1646 */ + case 115: +#line 837 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = NULL; } break; - case 115: -#line 837 "perly.y" /* yacc.c:1646 */ + case 116: +#line 842 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 116: -#line 839 "perly.y" /* yacc.c:1646 */ + case 117: +#line 844 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 117: -#line 841 "perly.y" /* yacc.c:1646 */ + case 118: +#line 846 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; - case 119: -#line 847 "perly.y" /* yacc.c:1646 */ + case 120: +#line 852 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (ps[-1].val.opval); } break; - case 120: -#line 849 "perly.y" /* yacc.c:1646 */ + case 121: +#line 854 "perly.y" /* yacc.c:1646 */ { OP* term = (ps[0].val.opval); (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term); @@ -1060,24 +1069,24 @@ case 2: break; - case 122: -#line 858 "perly.y" /* yacc.c:1646 */ + case 123: +#line 863 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) ); } break; - case 123: -#line 862 "perly.y" /* yacc.c:1646 */ + case 124: +#line 867 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) ); } break; - case 124: -#line 866 "perly.y" /* yacc.c:1646 */ + case 125: +#line 871 "perly.y" /* yacc.c:1646 */ { (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)), @@ -1086,8 +1095,8 @@ case 2: break; - case 125: -#line 872 "perly.y" /* yacc.c:1646 */ + case 126: +#line 877 "perly.y" /* yacc.c:1646 */ { (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)))); @@ -1095,8 +1104,8 @@ case 2: break; - case 126: -#line 877 "perly.y" /* yacc.c:1646 */ + case 127: +#line 882 "perly.y" /* yacc.c:1646 */ { (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)), @@ -1105,8 +1114,8 @@ case 2: break; - case 127: -#line 883 "perly.y" /* yacc.c:1646 */ + case 128: +#line 888 "perly.y" /* yacc.c:1646 */ { (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)), @@ -1115,27 +1124,27 @@ case 2: break; - case 128: -#line 889 "perly.y" /* yacc.c:1646 */ + case 129: +#line 894 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 129: -#line 891 "perly.y" /* yacc.c:1646 */ + case 130: +#line 896 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 130: -#line 893 "perly.y" /* yacc.c:1646 */ + case 131: +#line 898 "perly.y" /* yacc.c:1646 */ { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[-1].val.ival), 0, NULL, (ps[0].val.opval)); } break; - case 131: -#line 896 "perly.y" /* yacc.c:1646 */ + case 132: +#line 901 "perly.y" /* yacc.c:1646 */ { (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))); @@ -1143,21 +1152,21 @@ case 2: break; - case 134: -#line 911 "perly.y" /* yacc.c:1646 */ + case 135: +#line 916 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); } break; - case 135: -#line 913 "perly.y" /* yacc.c:1646 */ + case 136: +#line 918 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval))); } break; - case 136: -#line 916 "perly.y" /* yacc.c:1646 */ + case 137: +#line 921 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[-4].val.opval)),OP_RV2AV), scalar((ps[-1].val.opval))); @@ -1165,8 +1174,8 @@ case 2: break; - case 137: -#line 921 "perly.y" /* yacc.c:1646 */ + case 138: +#line 926 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[-3].val.opval)),OP_RV2AV), scalar((ps[-1].val.opval))); @@ -1174,91 +1183,91 @@ case 2: break; - case 138: -#line 926 "perly.y" /* yacc.c:1646 */ + case 139: +#line 931 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval))); } break; - case 139: -#line 929 "perly.y" /* yacc.c:1646 */ + case 140: +#line 934 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-5].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } break; - case 140: -#line 933 "perly.y" /* yacc.c:1646 */ + case 141: +#line 938 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[-4].val.opval)),OP_RV2HV), jmaybe((ps[-2].val.opval))); } break; - case 141: -#line 937 "perly.y" /* yacc.c:1646 */ + case 142: +#line 942 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[-3].val.opval)))); } break; - case 142: -#line 940 "perly.y" /* yacc.c:1646 */ + case 143: +#line 945 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), newCVREF(0, scalar((ps[-4].val.opval))))); } break; - case 143: -#line 945 "perly.y" /* yacc.c:1646 */ + case 144: +#line 950 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), newCVREF(0, scalar((ps[-3].val.opval))))); } break; - case 144: -#line 949 "perly.y" /* yacc.c:1646 */ + case 145: +#line 954 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[-2].val.opval)))); } break; - case 145: -#line 952 "perly.y" /* yacc.c:1646 */ + case 146: +#line 957 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); } break; - case 146: -#line 954 "perly.y" /* yacc.c:1646 */ + case 147: +#line 959 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); } break; - case 147: -#line 956 "perly.y" /* yacc.c:1646 */ + case 148: +#line 961 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), NULL); } break; - case 148: -#line 961 "perly.y" /* yacc.c:1646 */ + case 149: +#line 966 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); } break; - case 149: -#line 963 "perly.y" /* yacc.c:1646 */ + case 150: +#line 968 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; - case 150: -#line 965 "perly.y" /* yacc.c:1646 */ + case 151: +#line 970 "perly.y" /* yacc.c:1646 */ { 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))); @@ -1266,112 +1275,112 @@ case 2: break; - case 151: -#line 970 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } - - break; - case 152: -#line 972 "perly.y" /* yacc.c:1646 */ +#line 975 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 153: -#line 974 "perly.y" /* yacc.c:1646 */ +#line 977 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 154: -#line 976 "perly.y" /* yacc.c:1646 */ +#line 979 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 155: -#line 978 "perly.y" /* yacc.c:1646 */ +#line 981 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 156: -#line 980 "perly.y" /* yacc.c:1646 */ +#line 983 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 157: -#line 982 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } +#line 985 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 158: -#line 984 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } +#line 987 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } break; case 159: -#line 986 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } +#line 989 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 160: -#line 988 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } +#line 991 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 161: -#line 990 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } +#line 993 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } break; case 162: #line 995 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); } + { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 163: -#line 997 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = (ps[0].val.opval); } +#line 1000 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); } break; case 164: -#line 1000 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } +#line 1002 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } break; case 165: -#line 1002 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); } +#line 1005 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; case 166: -#line 1004 "perly.y" /* yacc.c:1646 */ +#line 1007 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); } + + break; + + case 167: +#line 1009 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_POSTINC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); } break; - case 167: -#line 1007 "perly.y" /* yacc.c:1646 */ + case 168: +#line 1012 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_POSTDEC, 0, op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));} break; - case 168: -#line 1010 "perly.y" /* yacc.c:1646 */ + case 169: +#line 1015 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_convert_list(OP_JOIN, 0, op_append_elem( OP_LIST, @@ -1385,53 +1394,53 @@ case 2: break; - case 169: -#line 1021 "perly.y" /* yacc.c:1646 */ + case 170: +#line 1026 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_PREINC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); } break; - case 170: -#line 1024 "perly.y" /* yacc.c:1646 */ + case 171: +#line 1029 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_PREDEC, 0, op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); } break; - case 171: -#line 1031 "perly.y" /* yacc.c:1646 */ + case 172: +#line 1036 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newANONLIST((ps[-1].val.opval)); } break; - case 172: -#line 1033 "perly.y" /* yacc.c:1646 */ + case 173: +#line 1038 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newANONLIST(NULL);} break; - case 173: -#line 1035 "perly.y" /* yacc.c:1646 */ + case 174: +#line 1040 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newANONHASH((ps[-2].val.opval)); } break; - case 174: -#line 1037 "perly.y" /* yacc.c:1646 */ + case 175: +#line 1042 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newANONHASH(NULL); } break; - case 175: -#line 1039 "perly.y" /* yacc.c:1646 */ + case 176: +#line 1044 "perly.y" /* yacc.c:1646 */ { 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 176: -#line 1042 "perly.y" /* yacc.c:1646 */ + case 177: +#line 1047 "perly.y" /* yacc.c:1646 */ { OP *body; if (parser->copline > (line_t)(ps[-2].val.ival)) @@ -1444,104 +1453,104 @@ case 2: break; - case 177: -#line 1056 "perly.y" /* yacc.c:1646 */ + case 178: +#line 1061 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));} break; - case 178: -#line 1058 "perly.y" /* yacc.c:1646 */ + case 179: +#line 1063 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));} break; - case 183: -#line 1066 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } - - break; - case 184: -#line 1068 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } +#line 1071 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } break; case 185: -#line 1070 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } +#line 1073 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } break; case 186: -#line 1072 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = (ps[0].val.opval); } +#line 1075 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_REFGEN, 0, localize((ps[0].val.opval),1)); } break; case 187: -#line 1074 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = localize((ps[0].val.opval),0); } +#line 1077 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } break; case 188: -#line 1076 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = sawparens((ps[-1].val.opval)); } +#line 1079 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = localize((ps[0].val.opval),0); } break; case 189: -#line 1078 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = (ps[0].val.opval); } +#line 1081 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = sawparens((ps[-1].val.opval)); } break; case 190: -#line 1080 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = sawparens(newNULLLIST()); } +#line 1083 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } break; case 191: -#line 1082 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = (ps[0].val.opval); } +#line 1085 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = sawparens(newNULLLIST()); } break; case 192: -#line 1084 "perly.y" /* yacc.c:1646 */ +#line 1087 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (ps[0].val.opval); } break; case 193: -#line 1086 "perly.y" /* yacc.c:1646 */ +#line 1089 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (ps[0].val.opval); } break; case 194: -#line 1088 "perly.y" /* yacc.c:1646 */ +#line 1091 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (ps[0].val.opval); } break; case 195: -#line 1090 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} +#line 1093 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } break; case 196: -#line 1092 "perly.y" /* yacc.c:1646 */ - { (yyval.opval) = (ps[0].val.opval); } +#line 1095 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} break; case 197: -#line 1094 "perly.y" /* yacc.c:1646 */ +#line 1097 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + + break; + + case 198: +#line 1099 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -1554,8 +1563,8 @@ case 2: break; - case 198: -#line 1104 "perly.y" /* yacc.c:1646 */ + case 199: +#line 1109 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_prepend_elem(OP_KVASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVASLICE, 0, @@ -1568,8 +1577,8 @@ case 2: break; - case 199: -#line 1114 "perly.y" /* yacc.c:1646 */ + case 200: +#line 1119 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -1582,8 +1591,8 @@ case 2: break; - case 200: -#line 1124 "perly.y" /* yacc.c:1646 */ + case 201: +#line 1129 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVHSLICE, 0, @@ -1596,27 +1605,27 @@ case 2: break; - case 201: -#line 1134 "perly.y" /* yacc.c:1646 */ + case 202: +#line 1139 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (ps[0].val.opval); } break; - case 202: -#line 1136 "perly.y" /* yacc.c:1646 */ + case 203: +#line 1141 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); } break; - case 203: -#line 1138 "perly.y" /* yacc.c:1646 */ + case 204: +#line 1143 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval))); } break; - case 204: -#line 1141 "perly.y" /* yacc.c:1646 */ + case 205: +#line 1146 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval)))); @@ -1624,153 +1633,153 @@ case 2: break; - case 205: -#line 1146 "perly.y" /* yacc.c:1646 */ + case 206: +#line 1151 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; - case 206: -#line 1150 "perly.y" /* yacc.c:1646 */ + case 207: +#line 1155 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newSVREF((ps[-3].val.opval)); } break; - case 207: -#line 1152 "perly.y" /* yacc.c:1646 */ + case 208: +#line 1157 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newAVREF((ps[-3].val.opval)); } break; - case 208: -#line 1154 "perly.y" /* yacc.c:1646 */ + case 209: +#line 1159 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newHVREF((ps[-3].val.opval)); } break; - case 209: -#line 1156 "perly.y" /* yacc.c:1646 */ + case 210: +#line 1161 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } break; - case 210: -#line 1159 "perly.y" /* yacc.c:1646 */ + case 211: +#line 1164 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } break; - case 211: -#line 1161 "perly.y" /* yacc.c:1646 */ + case 212: +#line 1166 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); PL_hints |= HINT_BLOCK_SCOPE; } break; - case 212: -#line 1164 "perly.y" /* yacc.c:1646 */ + case 213: +#line 1169 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } break; - case 213: -#line 1166 "perly.y" /* yacc.c:1646 */ + case 214: +#line 1171 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } break; - case 214: -#line 1168 "perly.y" /* yacc.c:1646 */ + case 215: +#line 1173 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 215: -#line 1170 "perly.y" /* yacc.c:1646 */ + case 216: +#line 1175 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 216: -#line 1172 "perly.y" /* yacc.c:1646 */ + case 217: +#line 1177 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } break; - case 217: -#line 1174 "perly.y" /* yacc.c:1646 */ + case 218: +#line 1179 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } break; - case 218: -#line 1176 "perly.y" /* yacc.c:1646 */ + case 219: +#line 1181 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } break; - case 219: -#line 1178 "perly.y" /* yacc.c:1646 */ + case 220: +#line 1183 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 220: -#line 1180 "perly.y" /* yacc.c:1646 */ + case 221: +#line 1185 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } break; - case 221: -#line 1183 "perly.y" /* yacc.c:1646 */ + case 222: +#line 1188 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newOP((ps[0].val.ival), 0); } break; - case 222: -#line 1185 "perly.y" /* yacc.c:1646 */ + case 223: +#line 1190 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newOP((ps[-2].val.ival), 0);} break; - case 223: -#line 1187 "perly.y" /* yacc.c:1646 */ + case 224: +#line 1192 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (ps[0].val.opval); } break; - case 224: -#line 1189 "perly.y" /* yacc.c:1646 */ + case 225: +#line 1194 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (ps[-2].val.opval); } break; - case 225: -#line 1191 "perly.y" /* yacc.c:1646 */ + case 226: +#line 1196 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } break; - case 226: -#line 1193 "perly.y" /* yacc.c:1646 */ + case 227: +#line 1198 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT) ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0))) : newOP((ps[-2].val.ival), OPf_SPECIAL); } break; - case 227: -#line 1197 "perly.y" /* yacc.c:1646 */ + case 228: +#line 1202 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); } break; - case 228: -#line 1199 "perly.y" /* yacc.c:1646 */ + case 229: +#line 1204 "perly.y" /* yacc.c:1646 */ { if ( (ps[0].val.opval)->op_type != OP_TRANS && (ps[0].val.opval)->op_type != OP_TRANSR @@ -1784,21 +1793,12 @@ case 2: break; - case 229: -#line 1210 "perly.y" /* yacc.c:1646 */ + case 230: +#line 1215 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); } break; - case 232: -#line 1214 "perly.y" /* yacc.c:1646 */ - { - (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), - newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); - } - - break; - case 234: #line 1223 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } @@ -1983,6 +1983,6 @@ case 2: /* Generated from: - * 68a62998f7c607d7a1fa0fdf2d16ec19074c256dde18dfc475daff70d378e025 perly.y + * 4667736d3c31a5169bab73c89d70a27dbce5ea4fe7e3c332a236f8a210aafdc2 perly.y * 153cba5d215c1a083a0459c43f4d55c45fd0a7093c197d7247a456dcde21ea53 regen_perly.pl * ex: set ro: */ @@ -181,6 +181,6 @@ int yyparse (void); /* Generated from: - * 68a62998f7c607d7a1fa0fdf2d16ec19074c256dde18dfc475daff70d378e025 perly.y + * 4667736d3c31a5169bab73c89d70a27dbce5ea4fe7e3c332a236f8a210aafdc2 perly.y * 153cba5d215c1a083a0459c43f4d55c45fd0a7093c197d7247a456dcde21ea53 regen_perly.pl * ex: set ro: */ @@ -6,7 +6,7 @@ #define YYFINAL 14 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3085 +#define YYLAST 3096 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 105 @@ -15,7 +15,7 @@ /* YYNRULES -- Number of rules. */ #define YYNRULES 272 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 539 +#define YYNSTATES 540 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ @@ -74,25 +74,25 @@ static const yytype_uint16 yyrline[] = 225, 235, 236, 245, 249, 253, 257, 264, 266, 277, 276, 310, 309, 348, 356, 355, 364, 370, 376, 381, 383, 385, 392, 400, 402, 399, 419, 424, 431, 430, - 445, 453, 459, 466, 465, 480, 484, 492, 510, 511, - 516, 518, 520, 522, 524, 526, 528, 531, 537, 538, - 543, 554, 555, 561, 567, 568, 573, 576, 580, 585, - 589, 593, 594, 598, 604, 609, 614, 615, 620, 621, - 626, 627, 629, 634, 636, 648, 649, 654, 656, 660, - 680, 681, 683, 689, 754, 756, 762, 764, 768, 774, - 775, 780, 779, 831, 832, 836, 838, 840, 842, 846, - 848, 853, 857, 861, 865, 871, 876, 882, 888, 890, - 893, 892, 903, 904, 908, 912, 915, 920, 925, 928, - 932, 936, 939, 944, 948, 951, 953, 955, 960, 962, - 964, 969, 971, 973, 975, 977, 979, 981, 983, 985, - 987, 989, 994, 996, 999, 1001, 1003, 1006, 1009, 1020, - 1023, 1030, 1032, 1034, 1036, 1038, 1041, 1055, 1057, 1061, - 1062, 1063, 1064, 1065, 1067, 1069, 1071, 1073, 1075, 1077, - 1079, 1081, 1083, 1085, 1087, 1089, 1091, 1093, 1103, 1113, - 1123, 1133, 1135, 1137, 1140, 1145, 1149, 1151, 1153, 1155, - 1158, 1160, 1163, 1165, 1167, 1169, 1171, 1173, 1175, 1177, - 1179, 1182, 1184, 1186, 1188, 1190, 1192, 1196, 1199, 1198, - 1211, 1212, 1213, 1218, 1222, 1224, 1226, 1231, 1233, 1236, + 445, 453, 459, 466, 465, 480, 484, 489, 497, 515, + 516, 521, 523, 525, 527, 529, 531, 533, 536, 542, + 543, 548, 559, 560, 566, 572, 573, 578, 581, 585, + 590, 594, 598, 599, 603, 609, 614, 619, 620, 625, + 626, 631, 632, 634, 639, 641, 653, 654, 659, 661, + 665, 685, 686, 688, 694, 759, 761, 767, 769, 773, + 779, 780, 785, 784, 836, 837, 841, 843, 845, 847, + 851, 853, 858, 862, 866, 870, 876, 881, 887, 893, + 895, 898, 897, 908, 909, 913, 917, 920, 925, 930, + 933, 937, 941, 944, 949, 953, 956, 958, 960, 965, + 967, 969, 974, 976, 978, 980, 982, 984, 986, 988, + 990, 992, 994, 999, 1001, 1004, 1006, 1008, 1011, 1014, + 1025, 1028, 1035, 1037, 1039, 1041, 1043, 1046, 1060, 1062, + 1066, 1067, 1068, 1069, 1070, 1072, 1074, 1076, 1078, 1080, + 1082, 1084, 1086, 1088, 1090, 1092, 1094, 1096, 1098, 1108, + 1118, 1128, 1138, 1140, 1142, 1145, 1150, 1154, 1156, 1158, + 1160, 1163, 1165, 1168, 1170, 1172, 1174, 1176, 1178, 1180, + 1182, 1184, 1187, 1189, 1191, 1193, 1195, 1197, 1201, 1204, + 1203, 1216, 1217, 1218, 1222, 1224, 1226, 1231, 1233, 1236, 1238, 1240, 1245, 1247, 1252, 1253, 1258, 1259, 1265, 1269, 1270, 1271, 1274, 1275, 1278, 1279, 1282, 1286, 1290, 1296, 1302, 1304, 1308, 1312, 1313, 1317, 1318, 1322, 1323, 1328, @@ -156,10 +156,10 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -440 +#define YYPACT_NINF -455 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-440))) + (!!((Yystate) == (-455))) #define YYTABLE_NINF -268 @@ -170,60 +170,60 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - 824, -440, -440, -440, -440, -440, -440, 21, -440, 2826, - 44, 1518, 1423, -440, -440, -440, 1989, 2826, 2826, 60, - 60, 60, -440, 60, 60, -440, -440, 8, -68, -440, - 2826, -440, -440, -440, 2826, -440, -46, -29, -18, 1896, - 1801, 60, 1896, 2082, 16, 2826, 137, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2175, 60, 60, 170, 36, -440, - 7, -440, -440, -440, -440, 2945, -440, -440, 17, 126, - 209, 221, -440, 89, 239, 266, 113, -440, -440, -440, - -440, -440, 16, 106, -440, 29, 32, 57, 61, 149, - 66, 70, 44, -440, 102, -440, 116, 325, 1423, -440, - -440, -440, 663, 758, -440, 195, 442, 442, -440, -440, - -440, -440, -440, -440, -440, 2826, 73, 122, 2826, 127, - 318, 44, -8, 2945, 142, 2268, 1801, -440, 318, 561, - 36, -440, 485, 2826, -440, -440, 318, 215, 90, -440, - -440, 2826, 318, 2919, 2361, 186, -440, -440, -440, 318, - 36, 442, 442, 442, 535, 535, 252, 256, -440, -440, - 2826, 2826, 2826, 2826, 2826, 2826, 2454, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, 2826, - 2826, 2826, -440, -440, -440, 72, 2547, 2826, 2826, 2826, - 2826, 2826, 2826, 2826, -440, 244, -440, 260, -440, -440, - -440, -440, -440, 190, 23, -440, -440, 184, -440, -440, - -440, 44, -440, -440, 2826, 2826, 2826, 2826, 2826, 2826, - -440, -440, -440, -440, -440, 2826, 2826, 217, -440, -440, - -440, 194, 227, -440, -440, 295, 187, 2826, 36, -440, - 296, -440, 2640, 442, 186, 47, 52, 75, -440, 309, - 284, -440, 2826, 301, 251, 251, -440, 2945, 160, 230, - -440, 455, 1600, 518, 1879, 498, 646, 2945, 369, 1692, - 1692, 419, 1786, 1972, 531, 442, 442, 2826, 2826, 224, - 229, 231, -440, 232, 2733, 48, 243, 274, -440, -440, - 475, 192, 235, 370, 246, 399, 250, 408, 853, -440, - 338, 290, -2, 355, 2826, 2826, 2826, 2826, -440, 299, - -440, -440, 297, -440, -440, -440, -440, 1612, 31, -440, - 2826, 2826, -440, 170, -440, 170, 170, 170, 170, 170, - 303, 19, -440, 2826, -440, 227, 380, 44, -440, -440, - 576, -440, 98, 648, -440, -440, -440, 264, 2826, 402, - -440, -440, 2826, 418, 270, -440, -440, -440, -440, -440, - 661, -440, -440, 2826, -440, 409, -440, 412, -440, 415, - -440, 416, -440, -440, -440, 386, -440, -440, -440, 411, - 333, 170, 336, 337, 170, 339, 341, -440, -440, -440, - -440, 340, 345, 312, -440, 2826, 358, 359, -440, 2826, - 363, -440, 112, 459, -440, -440, -440, 107, -440, 275, - -440, 2987, 465, -440, -440, 377, -440, -440, -440, -440, - 368, 227, 194, -440, 2826, -440, -440, 477, 477, 2826, - 2826, 477, -440, 384, 389, 477, 477, 170, -440, -440, - -440, 464, 464, -440, -440, -440, 413, 396, -440, -440, - -440, -440, 427, 5, 227, -440, 398, 477, 477, -440, - 134, 134, 414, 421, 102, 2826, 2826, 477, -440, -440, - -440, 423, 423, 112, -440, 948, -440, -440, -440, -440, - 499, 1043, -440, 102, 102, -440, 477, 407, -440, -440, - 477, 477, -440, 422, 433, 102, 2826, -440, -440, -440, - -440, 3, -440, -440, -440, -440, 1138, -440, 2826, 102, - 102, -440, 477, -440, 2945, 452, 493, -440, 1233, -440, - 436, -440, -440, -440, 102, -440, -440, -440, -440, 477, - 1706, -440, 1328, 134, 448, -440, -440, 477, -440 + 805, -455, -455, -455, -455, -455, -455, 18, -455, 2795, + 19, 1487, 1392, -455, -455, -455, 1958, 2795, 2795, 32, + 32, 32, -455, 32, 32, -455, -455, 35, -47, -455, + 2795, -455, -455, -455, 2795, -42, -28, -7, 1865, 1770, + 32, 1865, 2051, 58, 2795, 133, 2795, 2795, 2795, 2795, + 2795, 2795, 2795, 2144, 32, 32, 394, 8, -455, 5, + -455, -455, -455, -455, 2956, -455, -455, -3, 45, 51, + 59, -455, 85, 126, 269, 108, -455, -455, -455, -455, + -455, 58, 98, -455, 26, 44, 50, 57, 337, 62, + 75, 19, 31, -455, 82, -455, 88, 2049, 1392, -455, + -455, -455, 632, 727, -455, 33, 412, 412, -455, -455, + -455, -455, -455, -455, -455, 2795, 90, 115, 2795, 46, + 500, 19, 16, 2956, 117, 2237, 1770, -455, 500, 530, + 8, -455, 454, 2795, -455, -455, 500, 213, 184, -455, + -455, 2795, 500, 2888, 2330, 162, -455, -455, -455, 500, + 8, 412, 412, 412, 504, 504, 223, 214, -455, -455, + 2795, 2795, 2795, 2795, 2795, 2795, 2423, 2795, 2795, 2795, + 2795, 2795, 2795, 2795, 2795, 2795, 2795, 2795, 2795, 2795, + 2795, 2795, -455, -455, -455, 312, 2516, 2795, 2795, 2795, + 2795, 2795, 2795, 2795, -455, 221, -455, 224, -455, -455, + -455, -455, -455, 158, 72, -455, -455, 168, -455, -455, + -455, -455, 19, -455, -455, 2795, 2795, 2795, 2795, 2795, + 2795, -455, -455, -455, -455, -455, 2795, 2795, 49, -455, + -455, -455, 174, 212, -455, -455, 424, 166, 2795, 8, + -455, 265, -455, 2609, 412, 162, 167, 208, 239, -455, + 445, 267, -455, 2795, 282, 220, 220, -455, 2956, 292, + 55, -455, 545, 1569, 487, 1848, 709, 290, 2956, 2914, + 389, 389, 1660, 1755, 1941, 311, 412, 412, 2795, 2795, + 194, 200, 204, -455, 215, 2702, 12, 227, 209, -455, + -455, 602, 356, 67, 369, 78, 378, 165, 416, 822, + -455, 308, 235, -2, 319, 2795, 2795, 2795, 2795, -455, + 229, -455, -455, 240, -455, -455, -455, -455, 1581, 7, + -455, 2795, 2795, -455, 394, -455, 394, 394, 394, 394, + 394, 245, -60, -455, 2795, -455, 212, 329, 19, -455, + -455, 617, -455, 15, 630, -455, -455, -455, 179, 2795, + 335, -455, -455, 2795, 492, 196, -455, -455, -455, -455, + -455, 638, -455, -455, 2795, -455, 344, -455, 345, -455, + 347, -455, 349, -455, -455, -455, 350, -455, -455, -455, + 340, 277, 394, 284, 285, 394, 293, 281, -455, -455, + -455, -455, 300, 288, 322, -455, 2795, 301, 303, -455, + 2795, 314, -455, 9, 402, -455, -455, -455, 27, -455, + 231, -455, 2998, 406, -455, -455, 318, -455, -455, -455, + -455, 321, 212, 174, -455, 2795, -455, -455, 410, 410, + 2795, 2795, 410, -455, 320, 324, 410, 410, 394, -455, + -455, -455, 407, 407, -455, -455, -455, 358, 328, -455, + -455, -455, -455, 362, 2, 212, -455, 339, 410, 410, + -455, 38, 38, 346, 357, 82, 2795, 2795, 410, -455, + -455, -455, 360, 360, 9, -455, 917, -455, -455, -455, + -455, 427, 1012, -455, 82, 82, -455, 410, 355, -455, + -455, 410, 410, -455, 361, 359, 82, 2795, -455, -455, + -455, -455, -10, -455, -455, -455, -455, 1107, -455, 2795, + 82, 82, -455, 410, -455, 2956, 376, 440, -455, 1202, + -455, 379, -455, -455, -455, 82, -455, -455, -455, -455, + 410, 1675, -455, 1297, 38, 381, -455, -455, 410, -455 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -233,86 +233,86 @@ static const yytype_uint16 yydefact[] = { 0, 2, 4, 6, 8, 10, 12, 0, 16, 244, 0, 0, 0, 19, 1, 19, 0, 0, 0, 0, - 0, 0, 230, 0, 0, 201, 228, 189, 223, 225, - 219, 84, 233, 84, 211, 232, 221, 0, 0, 214, - 242, 0, 0, 0, 0, 0, 0, 217, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 245, 118, 231, - 196, 179, 180, 181, 182, 121, 186, 5, 202, 191, - 194, 193, 195, 192, 0, 0, 0, 16, 7, 60, - 27, 85, 0, 0, 83, 0, 0, 0, 0, 0, - 0, 0, 0, 56, 71, 9, 0, 61, 0, 11, - 24, 23, 0, 0, 172, 0, 162, 163, 269, 272, + 0, 0, 231, 0, 0, 202, 229, 190, 224, 226, + 220, 85, 233, 85, 212, 222, 0, 0, 215, 242, + 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 245, 119, 232, 197, + 180, 181, 182, 183, 122, 187, 5, 203, 192, 195, + 194, 196, 193, 0, 0, 0, 16, 7, 61, 27, + 86, 0, 0, 84, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 57, 72, 9, 0, 62, 0, 11, + 24, 23, 0, 0, 173, 0, 163, 164, 269, 272, 271, 270, 258, 259, 256, 242, 0, 0, 0, 0, - 220, 0, 88, 212, 0, 0, 244, 215, 216, 269, - 243, 128, 270, 0, 260, 178, 177, 0, 0, 86, - 87, 242, 187, 0, 0, 235, 239, 241, 240, 218, - 213, 164, 165, 184, 169, 170, 190, 0, 257, 262, - 0, 0, 0, 119, 0, 0, 0, 0, 0, 0, + 221, 0, 89, 213, 0, 0, 244, 216, 217, 269, + 243, 129, 270, 0, 260, 179, 178, 0, 0, 87, + 88, 242, 188, 0, 0, 235, 239, 241, 240, 219, + 214, 165, 166, 185, 170, 171, 191, 0, 257, 262, + 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 166, 167, 168, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 19, 82, 83, 0, 34, 16, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 19, 83, 84, 0, 34, 16, 16, 16, 16, 16, 0, 16, 16, 0, 16, 16, - 40, 0, 52, 55, 0, 0, 0, 0, 0, 0, - 26, 25, 20, 171, 126, 244, 0, 0, 224, 130, - 89, 0, 90, 222, 226, 0, 0, 0, 122, 174, - 0, 205, 0, 185, 0, 191, 194, 193, 238, 0, - 94, 234, 0, 188, 116, 117, 115, 120, 0, 0, - 144, 0, 157, 153, 154, 150, 151, 148, 0, 159, - 160, 158, 156, 155, 152, 161, 149, 0, 0, 264, - 266, 0, 132, 0, 0, 0, 268, 125, 133, 203, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, - 0, 29, 0, 0, 76, 0, 0, 0, 254, 0, - 255, 252, 0, 253, 249, 250, 251, 0, 0, 16, - 0, 0, 72, 64, 65, 78, 62, 63, 66, 67, - 0, 246, 146, 242, 111, 90, 92, 0, 227, 129, - 0, 173, 190, 0, 236, 237, 93, 0, 0, 0, - 137, 143, 0, 0, 0, 207, 208, 209, 261, 141, - 0, 206, 210, 244, 204, 0, 135, 0, 197, 0, - 198, 0, 14, 16, 28, 88, 16, 16, 33, 0, - 0, 77, 0, 0, 79, 0, 0, 248, 16, 75, - 80, 0, 0, 61, 48, 0, 0, 0, 127, 0, - 0, 131, 109, 0, 91, 175, 123, 188, 147, 0, - 140, 183, 0, 136, 142, 0, 138, 199, 200, 134, - 0, 90, 0, 53, 242, 73, 73, 0, 0, 0, - 0, 0, 43, 0, 0, 0, 0, 247, 229, 97, - 98, 95, 95, 105, 104, 108, 110, 0, 19, 145, - 139, 124, 0, 0, 90, 19, 0, 0, 0, 18, - 68, 68, 0, 0, 71, 76, 0, 0, 38, 39, - 96, 100, 100, 106, 112, 0, 21, 114, 113, 30, - 0, 0, 35, 71, 71, 19, 0, 0, 36, 37, - 0, 0, 51, 0, 0, 71, 101, 103, 99, 107, - 176, 0, 19, 54, 41, 42, 0, 69, 0, 71, - 71, 44, 0, 47, 102, 58, 0, 22, 0, 17, - 0, 46, 50, 73, 71, 19, 57, 15, 32, 0, - 0, 49, 0, 68, 0, 59, 70, 0, 45 + 40, 56, 0, 52, 55, 0, 0, 0, 0, 0, + 0, 26, 25, 20, 172, 127, 244, 0, 0, 225, + 131, 90, 0, 91, 223, 227, 0, 0, 0, 123, + 175, 0, 206, 0, 186, 0, 192, 195, 194, 238, + 0, 95, 234, 0, 189, 117, 118, 116, 121, 0, + 0, 145, 0, 158, 154, 155, 151, 152, 149, 0, + 160, 161, 159, 157, 156, 153, 162, 150, 0, 0, + 264, 266, 0, 133, 0, 0, 0, 268, 126, 134, + 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 0, 29, 0, 0, 77, 0, 0, 0, 254, + 0, 255, 252, 0, 253, 249, 250, 251, 0, 0, + 16, 0, 0, 73, 65, 66, 79, 63, 64, 67, + 68, 0, 246, 147, 242, 112, 91, 93, 0, 228, + 130, 0, 174, 191, 0, 236, 237, 94, 0, 0, + 0, 138, 144, 0, 0, 0, 208, 209, 210, 261, + 142, 0, 207, 211, 244, 205, 0, 136, 0, 198, + 0, 199, 0, 14, 16, 28, 89, 16, 16, 33, + 0, 0, 78, 0, 0, 80, 0, 0, 248, 16, + 76, 81, 0, 0, 62, 48, 0, 0, 0, 128, + 0, 0, 132, 110, 0, 92, 176, 124, 189, 148, + 0, 141, 184, 0, 137, 143, 0, 139, 200, 201, + 135, 0, 91, 0, 53, 242, 74, 74, 0, 0, + 0, 0, 0, 43, 0, 0, 0, 0, 247, 230, + 98, 99, 96, 96, 106, 105, 109, 111, 0, 19, + 146, 140, 125, 0, 0, 91, 19, 0, 0, 0, + 18, 69, 69, 0, 0, 72, 77, 0, 0, 38, + 39, 97, 101, 101, 107, 113, 0, 21, 115, 114, + 30, 0, 0, 35, 72, 72, 19, 0, 0, 36, + 37, 0, 0, 51, 0, 0, 72, 102, 104, 100, + 108, 177, 0, 19, 54, 41, 42, 0, 70, 0, + 72, 72, 44, 0, 47, 103, 59, 0, 22, 0, + 17, 0, 46, 50, 74, 72, 19, 58, 15, 32, + 0, 0, 49, 0, 69, 0, 60, 71, 0, 45 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -440, -440, -440, -440, -440, -440, -440, -440, 10, -440, - -60, -95, -440, -15, -440, 529, 454, -3, -440, -440, - -440, -440, -440, -440, -440, -440, -440, -315, -439, -103, - -420, -440, 88, 282, -206, 26, -440, 361, 522, -440, - 506, 200, -330, 353, 156, -440, -440, 136, -440, 133, - -440, -440, 177, -440, -440, -6, -36, -440, -440, -440, - -440, -440, -440, -440, -440, 25, -440, -440, 468, -106, - -125, -440, -440, 306, -440, -440, 450, 233, -35, -33, - -440, -440, -440, -440, -440, 4 + -455, -455, -455, -455, -455, -455, -455, -455, 10, -455, + -36, -112, -455, -15, -455, 465, 384, 4, -455, -455, + -455, -455, -455, -455, -455, -455, -455, -313, -454, -174, + -426, -455, 17, 195, -175, -25, -455, 325, 491, -455, + 462, 150, -330, 309, 113, -455, -455, 84, -455, 89, + -455, -455, 136, -455, -455, -6, -20, -455, -455, -455, + -455, -455, -455, -455, -455, 25, -455, -455, 419, -106, + -122, -455, -455, 249, -455, -455, 371, 206, -43, -33, + -455, -455, -455, -455, -455, 243 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 7, 8, 9, 10, 11, 12, 13, 94, 374, - 15, 460, 485, 102, 501, 222, 100, 101, 375, 376, - 303, 465, 523, 433, 455, 517, 526, 96, 488, 212, - 457, 390, 380, 324, 383, 392, 300, 198, 121, 195, - 141, 232, 337, 251, 471, 442, 443, 497, 444, 445, - 446, 447, 335, 402, 479, 97, 58, 59, 333, 287, - 60, 61, 62, 63, 64, 65, 117, 66, 145, 131, - 67, 400, 386, 311, 312, 206, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 158 + -1, 7, 8, 9, 10, 11, 12, 13, 94, 375, + 15, 461, 486, 102, 502, 223, 100, 101, 376, 377, + 304, 466, 524, 434, 456, 518, 527, 96, 489, 213, + 458, 391, 381, 325, 384, 393, 301, 198, 121, 195, + 141, 233, 338, 252, 472, 443, 444, 498, 445, 446, + 447, 448, 336, 403, 480, 97, 57, 58, 334, 288, + 59, 60, 61, 62, 63, 64, 117, 65, 145, 131, + 66, 401, 387, 312, 313, 206, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 158 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -320,570 +320,540 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 103, 236, 389, 57, 130, 403, 458, 377, 95, 224, - 105, 147, 150, 148, 77, 230, 164, 194, 165, 118, - 78, 14, 489, 112, 113, 114, 515, 115, 116, 110, - 110, 110, 119, 110, 110, 241, 139, 138, 19, 20, - 21, 140, 106, 107, 133, 134, 19, 20, 157, 127, - 110, 110, 135, 77, 124, 120, 187, 77, 188, 123, - 159, -263, 231, -263, 128, 110, 110, 136, 108, 77, - 142, 125, 149, 109, 151, 152, 153, 154, 155, 130, - 108, 277, 126, 278, -265, 109, -265, 279, 280, 281, - 310, 453, -16, 282, 536, 221, 163, 238, -267, 378, - 330, 385, 210, 530, 516, 130, 477, 166, 246, 252, - 247, 391, 227, 163, 396, 397, -239, 186, 348, 235, - 57, -241, 193, 399, 480, 55, 197, 439, 440, 199, - 237, 229, 200, 55, 283, 187, 110, 188, 249, 304, - 305, 306, 307, 309, -240, 317, 318, 211, 320, 321, - 55, 361, 19, 20, 254, 255, 256, 201, 258, 259, - 261, 202, 55, 160, 161, 162, 208, -238, 243, 315, - 209, 316, 284, 225, 285, 286, -237, 486, 487, 298, - 290, 291, 292, 293, 294, 295, 296, 297, 257, 434, - 331, 240, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 223, 323, 325, - 326, 327, 328, 329, 441, 389, 203, 213, -263, 57, - -263, 322, 226, 462, 463, 239, 228, 401, 143, 332, - -265, 340, -265, 160, 161, 162, 343, 144, 415, 55, - 204, 233, 350, 160, 161, 162, 347, 366, 189, 205, - 190, 55, 111, 111, 111, 250, 111, 111, 368, 395, - 494, 349, 370, 252, 299, 160, 161, 162, 160, 161, - 162, 353, 354, 132, 111, 191, 408, 192, 360, 146, - 302, 308, 413, 315, 319, 316, 339, 449, 111, 111, - 160, 161, 162, 365, 334, 110, 336, 130, 381, 325, - 384, 384, 520, 160, 161, 162, 341, 346, 160, 161, - 162, 393, 348, 420, 384, 384, 422, 423, 456, 160, - 161, 162, 207, 160, 161, 162, 162, 355, 430, 160, - 161, 162, 356, 461, 357, 358, 464, 160, 161, 162, - 468, 469, 409, 160, 161, 162, 362, 405, 160, 161, - 162, 214, 215, 216, 217, 253, 373, 57, 218, 132, - 219, 492, 483, 484, 214, 215, 216, 217, 160, 161, - 162, 218, 495, 219, 363, 379, 245, 411, 170, 171, - 504, 505, 160, 161, 162, 160, 161, 162, 130, 384, - -31, 507, 513, 437, 338, 509, 510, 388, 160, 161, - 162, 55, 398, 404, 179, 180, 521, 522, 345, 230, - 181, -79, 410, 182, 183, 184, 185, 524, 288, 416, - 167, 531, 417, 384, 384, 418, 419, 168, 169, 170, - 171, 424, 425, 475, 533, 426, 427, 314, 428, 431, - 481, 429, 538, 160, 161, 162, 432, 172, 173, 352, - 174, 175, 176, 177, 178, 179, 180, 435, 436, 381, - 384, 181, 438, 478, 182, 183, 184, 185, 448, 452, - 506, 367, 160, 161, 162, 450, 451, 168, 169, 170, - 171, 160, 161, 162, 466, -191, 459, 518, 467, 470, - 473, 160, 161, 162, 187, 474, 188, -191, 476, 482, - 369, 496, 384, 177, 178, 179, 180, 508, 502, 371, - 532, 181, 527, 490, 182, 183, 184, 185, 111, 412, - 491, 514, 525, 511, -191, -191, -191, -191, 160, 161, - 162, -191, 512, -191, 181, 529, -191, 182, 183, 184, - 185, 99, 387, -191, -191, -191, -191, 537, 160, 161, - 162, 314, 220, 493, 351, 122, 534, 301, -191, -191, - -191, -230, -191, -191, -191, -191, -191, -191, -191, -191, - -191, -191, -191, -230, 364, 421, -268, -191, 170, 171, - -191, -191, -191, -191, -191, 180, -191, 382, 196, -191, - 181, 170, 171, 182, 183, 184, 185, 344, 472, 454, - -230, -230, -230, -230, 179, 180, 499, -230, 498, -230, - 181, 244, -230, 182, 183, 184, 185, 0, 180, -230, - -230, -230, -230, 181, 394, 0, 182, 183, 184, 185, - -268, -268, -268, 185, -230, -230, -230, 0, -230, -230, - -230, -230, -230, -230, -230, -230, -230, -230, -230, 160, - 161, 162, 0, -230, 313, 0, -230, -230, -230, -230, - -230, 0, -230, -13, 79, -230, 0, 0, 0, 0, - 0, 0, 77, 0, 16, 406, 17, 18, 19, 20, - 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, - 28, 29, 30, 31, 32, 80, 98, 81, 82, 33, - 83, 84, 85, 86, 87, 88, 170, 0, 0, 89, - 90, 91, 92, 34, 0, 35, 36, 37, 38, 39, - 40, 160, 161, 162, 0, 41, 42, 43, 44, 45, - 46, 47, 0, 180, 160, 161, 162, 0, 181, 48, - 0, 182, 183, 184, 185, 0, 0, 407, 0, 0, - 0, 49, 50, 0, 51, 0, 52, 53, -3, 79, - 414, 0, 0, 54, 93, 55, 56, 77, 0, 16, - 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, - 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, - 80, 98, 81, 82, 33, 83, 84, 85, 86, 87, - 88, 0, 0, 0, 89, 90, 91, 92, 34, 0, - 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, - 41, 42, 43, 44, 45, 46, 47, 1, 2, 3, - 4, 5, 6, 0, 48, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 50, 0, 51, - 0, 52, 53, 0, 79, 0, 0, 0, 54, 93, - 55, 56, 77, 372, 16, 0, 17, 18, 19, 20, - 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, - 28, 29, 30, 31, 32, 80, 98, 81, 82, 33, - 83, 84, 85, 86, 87, 88, 0, 0, 0, 89, - 90, 91, 92, 34, 0, 35, 36, 37, 38, 39, - 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, - 46, 47, 0, 0, 0, 0, 0, 0, 0, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 50, 0, 51, 0, 52, 53, 0, 79, - 0, 0, 0, 54, 93, 55, 56, 77, 500, 16, - 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, - 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, - 80, 98, 81, 82, 33, 83, 84, 85, 86, 87, - 88, 0, 0, 0, 89, 90, 91, 92, 34, 0, - 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, - 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, - 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 50, 0, 51, - 0, 52, 53, 0, 79, 0, 0, 0, 54, 93, - 55, 56, 77, 503, 16, 0, 17, 18, 19, 20, - 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, - 28, 29, 30, 31, 32, 80, 98, 81, 82, 33, - 83, 84, 85, 86, 87, 88, 0, 0, 0, 89, - 90, 91, 92, 34, 0, 35, 36, 37, 38, 39, - 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, - 46, 47, 0, 0, 0, 0, 0, 0, 0, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 50, 0, 51, 0, 52, 53, 0, 79, - 0, 0, 0, 54, 93, 55, 56, 77, 519, 16, - 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, - 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, - 80, 98, 81, 82, 33, 83, 84, 85, 86, 87, - 88, 0, 0, 0, 89, 90, 91, 92, 34, 0, - 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, - 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, - 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 50, 0, 51, - 0, 52, 53, 0, 79, 0, 0, 0, 54, 93, - 55, 56, 77, 528, 16, 0, 17, 18, 19, 20, - 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, - 28, 29, 30, 31, 32, 80, 98, 81, 82, 33, - 83, 84, 85, 86, 87, 88, 0, 0, 0, 89, - 90, 91, 92, 34, 0, 35, 36, 37, 38, 39, - 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, - 46, 47, 0, 0, 0, 0, 0, 0, 0, 48, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 50, 0, 51, 0, 52, 53, 0, 79, - 0, 0, 0, 54, 93, 55, 56, 77, 0, 16, - 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, - 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, - 80, 98, 81, 82, 33, 83, 84, 85, 86, 87, - 88, 0, 0, 0, 89, 90, 91, 92, 34, 0, - 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, - 41, 42, 43, 44, 45, 46, 47, 0, 0, 535, - 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 50, 0, 51, - 0, 52, 53, 0, 79, 0, 0, 0, 54, 93, - 55, 56, 77, 0, 16, 0, 17, 18, 19, 20, - 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, - 28, 29, 30, 31, 32, 80, 98, 81, 82, 33, - 83, 84, 85, 86, 87, 88, 0, 0, 0, 89, - 90, 91, 92, 34, 0, 35, 36, 37, 38, 39, - 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, - 46, 47, 0, 0, 0, 0, 0, 0, 0, 48, + 103, 459, 147, 56, 237, 390, 404, 378, 490, 225, + 105, 76, 148, 516, 164, 95, 165, 163, 14, 130, + 77, 76, 19, 20, 440, 441, 253, 150, 76, 110, + 110, 110, 108, 110, 110, 242, 138, 109, 349, 231, + 194, 76, 106, 107, 400, 224, 118, 157, 127, 110, + 110, 135, 108, 119, 187, 120, 188, 109, 124, 123, + -263, 333, -263, 128, 110, 110, 136, 351, -265, 142, + -265, 149, 125, 151, 152, 153, 154, 155, 139, 367, + 537, 487, 488, 140, -238, 163, 232, 19, 20, 21, + 369, 517, 454, 126, -267, 130, -237, 186, 531, 379, + 247, 210, 222, 478, 331, 166, 160, 161, 162, 54, + 248, 442, 228, 239, 54, 362, -16, 193, 197, 236, + 56, 130, 160, 161, 162, 481, 199, 212, 160, 161, + 162, 230, 211, 386, 54, 189, 110, 190, 250, 311, + 160, 161, 162, 392, 200, 229, 397, 398, 19, 20, + 201, 160, 161, 162, 255, 256, 257, 202, 259, 260, + 262, 316, 208, 305, 306, 307, 308, 310, 244, 318, + 319, 317, 321, 322, 54, 209, 187, 371, 188, 299, + 291, 292, 293, 294, 295, 296, 297, 298, 258, 214, + 226, 409, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 332, 414, 324, + 326, 327, 328, 329, 330, 227, 234, -263, 390, -263, + 56, 435, 323, 240, 143, 111, 111, 111, 402, 111, + 111, 251, 341, 144, 253, 54, -239, 344, 160, 161, + 162, 300, 416, 450, 303, 132, 111, 348, -265, 309, + -265, 146, 160, 161, 162, 463, 464, 160, 161, 162, + 111, 111, 112, 113, 114, 340, 115, 116, 320, 160, + 161, 162, 354, 355, 335, 342, 316, -241, 191, 361, + 192, 337, 133, 134, 396, 241, 317, 160, 161, 162, + 347, 493, 495, 349, 207, 162, 110, 356, 159, 382, + 326, 385, 385, 357, 160, 161, 162, 358, -240, 364, + 505, 506, 394, 254, 130, 385, 385, 462, 359, 457, + 465, 278, 514, 279, 469, 470, 374, 280, 281, 282, + 363, 54, 132, 283, 521, -31, 522, 523, 421, 380, + 389, 423, 424, 410, 399, 411, 484, 485, 406, 246, + 170, 532, 405, 431, 417, 418, 496, 419, 56, 420, + 425, 215, 216, 217, 218, 160, 161, 162, 219, 238, + 220, 170, 171, 231, 284, 508, 426, 180, 412, 510, + 511, 430, 181, 427, 428, 182, 183, 184, 185, 433, + 385, 289, 429, 350, 438, 160, 161, 162, 180, 432, + 436, 525, 437, 181, 203, 130, 182, 183, 184, 185, + 315, 449, 285, 439, 286, 287, 451, 452, 534, 460, + 467, -80, 453, 468, 385, 385, 539, 475, 204, 160, + 161, 162, 471, 477, 476, 474, 503, 205, 497, 54, + 483, 482, 160, 161, 162, 491, 526, 168, 169, 170, + 171, 160, 161, 162, -192, 509, 492, 366, 513, 528, + 382, 385, 512, 187, 479, 188, -192, 160, 161, 162, + 368, 507, 176, 177, 178, 179, 180, 99, 530, 370, + 538, 181, 221, 494, 182, 183, 184, 185, 519, 160, + 161, 162, 111, -192, -192, -192, -192, 160, 161, 162, + -192, 383, -192, 385, 181, -192, 535, 182, 183, 184, + 185, 533, -192, -192, -192, -192, 388, 372, 160, 161, + 162, 302, 515, 339, 122, 315, 422, -192, -192, -192, + -231, -192, -192, -192, -192, -192, -192, -192, -192, -192, + -192, -192, -231, 196, 346, -268, -192, 170, 171, -192, + -192, -192, -192, -192, 345, -192, 473, 499, -192, 455, + 170, 171, 245, 500, 0, 160, 161, 162, 395, -231, + -231, -231, -231, 179, 180, 314, -231, 0, -231, 181, + 0, -231, 182, 183, 184, 185, 179, 180, -231, -231, + -231, -231, 181, 413, 0, 182, 183, 184, 185, -268, + -268, -268, 185, -231, -231, -231, 0, -231, -231, -231, + -231, -231, -231, -231, -231, -231, -231, -231, 160, 161, + 162, 0, -231, 0, 0, -231, -231, -231, -231, -231, + 0, -231, -13, 78, -231, 0, 0, 0, 0, 0, + 0, 76, 0, 16, 352, 17, 18, 19, 20, 21, + 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, + 29, 30, 31, 32, 79, 98, 80, 81, 33, 82, + 83, 84, 85, 86, 87, 160, 161, 162, 88, 89, + 90, 91, 34, 0, 92, 35, 36, 37, 38, 39, + 160, 161, 162, 0, 40, 41, 42, 43, 44, 45, + 46, 365, 0, 160, 161, 162, 0, 0, 47, 0, + 0, 160, 161, 162, 0, 0, 407, 0, 0, 0, + 48, 49, 0, 50, 0, 51, 52, -3, 78, 408, + 0, 0, 53, 93, 54, 55, 76, 415, 16, 0, + 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, + 25, 26, 0, 27, 28, 29, 30, 31, 32, 79, + 98, 80, 81, 33, 82, 83, 84, 85, 86, 87, + 0, 0, 0, 88, 89, 90, 91, 34, 0, 92, + 35, 36, 37, 38, 39, 0, 0, 0, 0, 40, + 41, 42, 43, 44, 45, 46, 180, 0, 0, 0, + 0, 181, 0, 47, 182, 183, 184, 185, 1, 2, + 3, 4, 5, 6, 0, 48, 49, 0, 50, 0, + 51, 52, 0, 78, 0, 0, 0, 53, 93, 54, + 55, 76, 373, 16, 0, 17, 18, 19, 20, 21, + 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, + 29, 30, 31, 32, 79, 98, 80, 81, 33, 82, + 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, + 90, 91, 34, 0, 92, 35, 36, 37, 38, 39, + 0, 0, 0, 0, 40, 41, 42, 43, 44, 45, + 46, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 50, 0, 51, 0, 52, 53, 0, 79, - 0, 0, 0, 54, 93, 55, 56, 77, 0, 16, - 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, - 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, - 80, 0, 81, 82, 33, 83, 84, 85, 86, 87, - 88, 0, 0, 0, 89, 90, 91, 92, 34, 0, - 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, - 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, - 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 50, 0, 51, - 0, 52, 53, 79, 0, 0, 0, 0, 54, 93, - 55, 56, 0, 16, 0, 17, 18, 19, 20, 21, + 48, 49, 0, 50, 0, 51, 52, 0, 78, 0, + 0, 0, 53, 93, 54, 55, 76, 501, 16, 0, + 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, + 25, 26, 0, 27, 28, 29, 30, 31, 32, 79, + 98, 80, 81, 33, 82, 83, 84, 85, 86, 87, + 0, 0, 0, 88, 89, 90, 91, 34, 0, 92, + 35, 36, 37, 38, 39, 0, 0, 0, 0, 40, + 41, 42, 43, 44, 45, 46, 0, 0, 0, 0, + 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 0, 50, 0, + 51, 52, 0, 78, 0, 0, 0, 53, 93, 54, + 55, 76, 504, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, - 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, - 0, -268, 0, 0, 0, 0, 0, 0, 168, 169, - 170, 171, 34, 0, 35, 36, 37, 38, 39, 40, - 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, - 47, 174, 175, 176, 177, 178, 179, 180, 48, 0, - 0, 0, 181, 0, 0, 182, 183, 184, 185, 0, - 49, 50, 0, 51, 0, 52, 53, 79, 0, 0, - 0, 0, 54, -74, 55, 56, 0, 16, 0, 17, - 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, - 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, - 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, - 168, 169, 170, 171, 0, 0, 34, 0, 35, 36, - 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, - 43, 44, 45, 46, 47, 176, 177, 178, 179, 180, - 0, 0, 48, 0, 181, 0, 0, 182, 183, 184, - 185, 0, 0, 0, 49, 50, 0, 51, 0, 52, - 53, 0, 0, 0, 0, -74, 54, 0, 55, 56, - 77, 0, 16, 0, 17, 18, 19, 20, 21, 0, - 0, 129, 23, 24, 25, 26, 109, 27, 28, 29, - 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, - 0, 0, 0, 0, 168, 169, 170, 171, 0, 0, - 0, 34, 0, 35, 36, 37, 38, 39, 40, 0, - 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, - 0, 178, 179, 180, 0, 0, 0, 48, 181, 0, - 0, 182, 183, 184, 185, 0, 0, 0, 0, 49, - 50, 0, 51, 0, 52, 53, 0, 0, 0, 0, - 0, 54, 0, 55, 56, 77, 0, 16, 0, 17, - 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, - 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, - 0, 0, 33, 0, 0, 0, 0, 168, -268, 170, - 171, 0, 0, 0, 0, 0, 34, 0, 35, 36, - 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, - 43, 44, 45, 46, 47, 179, 180, 0, 0, 0, - 0, 181, 48, 0, 182, 183, 184, 185, 0, 0, - 0, 0, 0, 0, 49, 50, 0, 51, 0, 52, - 53, 0, 0, 0, 0, 0, 54, 0, 55, 56, - 16, 104, 17, 18, 19, 20, 21, 0, 0, 22, - 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, - 32, 0, 0, 0, 0, 33, 0, 0, 0, 0, - 168, 169, 170, 171, 0, 0, 0, 0, 0, 34, - 0, 35, 36, 37, 38, 39, 40, 0, 0, 0, - 0, 41, 42, 43, 44, 45, 46, 47, 179, 180, - 0, 0, 0, 0, 181, 48, 0, 182, 183, 184, - 185, 0, 0, 0, 0, 0, 0, 49, 50, 0, - 51, 0, 52, 53, 0, 0, 0, 0, 0, 54, - 0, 55, 56, 16, 0, 17, 18, 19, 20, 21, + 29, 30, 31, 32, 79, 98, 80, 81, 33, 82, + 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, + 90, 91, 34, 0, 92, 35, 36, 37, 38, 39, + 0, 0, 0, 0, 40, 41, 42, 43, 44, 45, + 46, 0, 0, 0, 0, 0, 0, 0, 47, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 49, 0, 50, 0, 51, 52, 0, 78, 0, + 0, 0, 53, 93, 54, 55, 76, 520, 16, 0, + 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, + 25, 26, 0, 27, 28, 29, 30, 31, 32, 79, + 98, 80, 81, 33, 82, 83, 84, 85, 86, 87, + 0, 0, 0, 88, 89, 90, 91, 34, 0, 92, + 35, 36, 37, 38, 39, 0, 0, 0, 0, 40, + 41, 42, 43, 44, 45, 46, 0, 0, 0, 0, + 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 0, 50, 0, + 51, 52, 0, 78, 0, 0, 0, 53, 93, 54, + 55, 76, 529, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, - 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, + 29, 30, 31, 32, 79, 98, 80, 81, 33, 82, + 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, + 90, 91, 34, 0, 92, 35, 36, 37, 38, 39, + 0, 0, 0, 0, 40, 41, 42, 43, 44, 45, + 46, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 0, 35, 36, 37, 38, 39, 40, - 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, - 47, 0, 0, 0, 0, 0, 0, 0, 48, 0, + 48, 49, 0, 50, 0, 51, 52, 0, 78, 0, + 0, 0, 53, 93, 54, 55, 76, 0, 16, 0, + 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, + 25, 26, 0, 27, 28, 29, 30, 31, 32, 79, + 98, 80, 81, 33, 82, 83, 84, 85, 86, 87, + 0, 0, 0, 88, 89, 90, 91, 34, 0, 92, + 35, 36, 37, 38, 39, 0, 0, 0, 0, 40, + 41, 42, 43, 44, 45, 46, 0, 0, 536, 0, + 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 0, 50, 0, + 51, 52, 0, 78, 0, 0, 0, 53, 93, 54, + 55, 76, 0, 16, 0, 17, 18, 19, 20, 21, + 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, + 29, 30, 31, 32, 79, 98, 80, 81, 33, 82, + 83, 84, 85, 86, 87, 0, 0, 0, 88, 89, + 90, 91, 34, 0, 92, 35, 36, 37, 38, 39, + 0, 0, 0, 0, 40, 41, 42, 43, 44, 45, + 46, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 50, 0, 51, 0, 52, 53, 0, 0, 0, - 0, 0, 54, 137, 55, 56, 16, 0, 17, 18, + 48, 49, 0, 50, 0, 51, 52, 0, 78, 0, + 0, 0, 53, 93, 54, 55, 76, 0, 16, 0, + 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, + 25, 26, 0, 27, 28, 29, 30, 31, 32, 79, + 0, 80, 81, 33, 82, 83, 84, 85, 86, 87, + 0, 0, 0, 88, 89, 90, 91, 34, 0, 92, + 35, 36, 37, 38, 39, 0, 0, 0, 0, 40, + 41, 42, 43, 44, 45, 46, 0, 0, 0, 0, + 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 0, 50, 0, + 51, 52, 78, 0, 0, 0, 0, 53, 93, 54, + 55, 0, 16, 0, 17, 18, 19, 20, 21, 0, + 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, + 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, + -268, 0, 0, 0, 0, 0, 0, 168, 169, 170, + 171, 34, 0, 0, 35, 36, 37, 38, 39, 0, + 0, 0, 0, 40, 41, 42, 43, 44, 45, 46, + 174, 175, 176, 177, 178, 179, 180, 47, 0, 0, + 0, 181, 0, 0, 182, 183, 184, 185, 0, 48, + 49, 0, 50, 0, 51, 52, 78, 0, 0, 0, + 0, 53, -75, 54, 55, 0, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, - 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 34, 0, 35, 36, 37, - 38, 39, 40, 0, 0, 0, 0, 41, 42, 43, - 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, - 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 49, 50, 0, 51, 0, 52, 53, - 0, 0, 0, 0, 156, 54, 0, 55, 56, 16, - 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, + 0, 33, 0, 0, 0, 0, 0, 0, 168, 169, + 170, 171, 0, 0, 0, 34, 0, 0, 35, 36, + 37, 38, 39, 0, 0, 0, 0, 40, 41, 42, + 43, 44, 45, 46, 177, 178, 179, 180, 0, 0, + 0, 47, 181, 0, 0, 182, 183, 184, 185, 0, + 0, 0, 0, 48, 49, 0, 50, 0, 51, 52, + 0, 0, 0, 0, -75, 53, 0, 54, 55, 76, + 0, 16, 0, 17, 18, 19, 20, 21, 0, 0, + 129, 23, 24, 25, 26, 109, 27, 28, 29, 30, + 31, 32, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 0, 168, 169, 170, 171, 0, 0, 0, + 34, 0, 0, 35, 36, 37, 38, 39, 0, 0, + 0, 0, 40, 41, 42, 43, 44, 45, 46, 0, + 178, 179, 180, 0, 0, 0, 47, 181, 0, 0, + 182, 183, 184, 185, 0, 0, 0, 0, 48, 49, + 0, 50, 0, 51, 52, 0, 0, 0, 0, 0, + 53, 0, 54, 55, 76, 0, 16, 0, 17, 18, + 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, + 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 168, -268, 170, 171, + 0, 0, 0, 0, 0, 34, 0, 0, 35, 36, + 37, 38, 39, 0, 0, 0, 0, 40, 41, 42, + 43, 44, 45, 46, 179, 180, 0, 0, 0, 0, + 181, 47, 0, 182, 183, 184, 185, 0, 0, 0, + 0, 0, 0, 48, 49, 0, 50, 0, 51, 52, + 0, 0, 0, 0, 0, 53, 0, 54, 55, 16, + 104, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, - 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, - 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, - 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, - 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 50, 0, 51, - 0, 52, 53, 0, 0, 0, 0, 234, 54, 0, - 55, 56, 16, 0, 17, 18, 19, 20, 21, 0, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 168, + 169, 170, 171, 0, 0, 0, 0, 0, 34, 0, + 0, 35, 36, 37, 38, 39, 0, 0, 0, 0, + 40, 41, 42, 43, 44, 45, 46, 179, 180, 0, + 0, 0, 0, 181, 47, 0, 182, 183, 184, 185, + 0, 0, 0, 0, 0, 0, 48, 49, 0, 50, + 0, 51, 52, 0, 0, 0, 0, 0, 53, 0, + 54, 55, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, - 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 0, 35, 36, 37, 38, 39, 40, 0, - 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, - 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, - 50, 0, 51, 0, 52, 53, 0, 0, 0, 0, - 248, 54, 0, 55, 56, 16, 0, 17, 18, 19, + 30, 31, 32, 0, 0, 0, 0, 33, 215, 216, + 217, 218, 0, 0, 0, 219, 0, 220, 0, 0, + 0, 34, 0, 0, 35, 36, 37, 38, 39, 0, + 0, 0, 0, 40, 41, 42, 43, 44, 45, 46, + 0, 0, 160, 161, 162, 0, 0, 47, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 0, 50, 0, 51, 52, 0, 0, 0, 0, + 0, 53, 137, 54, 55, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 34, 0, 35, 36, 37, 38, - 39, 40, 0, 0, 0, 0, 41, 42, 43, 44, - 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 49, 50, 0, 51, 0, 52, 53, 0, - 0, 0, 0, 260, 54, 0, 55, 56, 16, 0, + 0, 0, 0, 0, 34, 0, 0, 35, 36, 37, + 38, 39, 0, 0, 0, 0, 40, 41, 42, 43, + 44, 45, 46, 0, 0, 0, 0, 0, 0, 0, + 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 48, 49, 0, 50, 0, 51, 52, 0, + 0, 0, 0, 156, 53, 0, 54, 55, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, - 36, 37, 38, 39, 40, 0, 0, 0, 0, 41, - 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, - 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 49, 50, 0, 51, 0, - 52, 53, 0, 0, 0, 0, 289, 54, 0, 55, - 56, 16, 0, 17, 18, 19, 20, 21, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, + 35, 36, 37, 38, 39, 0, 0, 0, 0, 40, + 41, 42, 43, 44, 45, 46, 0, 0, 0, 0, + 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 0, 50, 0, + 51, 52, 0, 0, 0, 0, 235, 53, 0, 54, + 55, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34, 0, 35, 36, 37, 38, 39, 40, 0, 0, - 0, 0, 41, 42, 43, 44, 45, 46, 47, 0, - 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 49, 50, - 0, 51, 0, 52, 53, 0, 0, 0, 0, 342, - 54, 0, 55, 56, 16, 0, 17, 18, 19, 20, + 34, 0, 0, 35, 36, 37, 38, 39, 0, 0, + 0, 0, 40, 41, 42, 43, 44, 45, 46, 0, + 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 48, 49, + 0, 50, 0, 51, 52, 0, 0, 0, 0, 249, + 53, 0, 54, 55, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 34, 0, 35, 36, 37, 38, 39, - 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, - 46, 47, 0, 0, 0, 0, 0, 0, 0, 48, + 0, 0, 0, 34, 0, 0, 35, 36, 37, 38, + 39, 0, 0, 0, 0, 40, 41, 42, 43, 44, + 45, 46, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 50, 0, 51, 0, 52, 53, 0, 0, - 0, 0, 359, 54, 0, 55, 56, 16, 0, 17, + 0, 48, 49, 0, 50, 0, 51, 52, 0, 0, + 0, 0, 261, 53, 0, 54, 55, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 34, 0, 35, 36, - 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, - 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, - 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 50, 0, 51, 0, 52, - 53, 0, 0, 0, 0, 0, 54, 0, 55, 56, + 0, 0, 0, 0, 0, 0, 34, 0, 0, 35, + 36, 37, 38, 39, 0, 0, 0, 0, 40, 41, + 42, 43, 44, 45, 46, 0, 0, 0, 0, 0, + 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 49, 0, 50, 0, 51, + 52, 0, 0, 0, 0, 290, 53, 0, 54, 55, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, - 0, 35, 36, 37, 38, 39, 40, 0, 0, 0, - 0, 41, 42, 43, 44, 45, 46, 47, 0, 0, - 0, 0, 0, 0, 0, 48, 167, 0, 0, 0, - 0, 0, 0, 168, 169, 170, 171, 49, 50, 0, - 51, 0, 52, 53, 0, 0, 0, 0, 0, 242, - 0, 55, 56, 172, 173, 0, 174, 175, 176, 177, - 178, 179, 180, 0, 0, 0, 0, 181, 167, 0, - 182, 183, 184, 185, 0, 168, 169, 170, 171, 0, + 0, 0, 35, 36, 37, 38, 39, 0, 0, 0, + 0, 40, 41, 42, 43, 44, 45, 46, 0, 0, + 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 49, 0, + 50, 0, 51, 52, 0, 0, 0, 0, 343, 53, + 0, 54, 55, 16, 0, 17, 18, 19, 20, 21, + 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, + 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 34, 0, 0, 35, 36, 37, 38, 39, + 0, 0, 0, 0, 40, 41, 42, 43, 44, 45, + 46, 0, 0, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 173, 0, 174, 175, - 176, 177, 178, 179, 180, 0, 0, 0, 0, 181, - 0, 0, 182, 183, 184, 185 + 48, 49, 0, 50, 0, 51, 52, 0, 0, 0, + 0, 360, 53, 0, 54, 55, 16, 0, 17, 18, + 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, + 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 34, 0, 0, 35, 36, + 37, 38, 39, 0, 0, 0, 0, 40, 41, 42, + 43, 44, 45, 46, 0, 0, 0, 0, 0, 0, + 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 48, 49, 0, 50, 0, 51, 52, + 0, 0, 0, 0, 0, 53, 0, 54, 55, 16, + 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, + 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, + 0, 35, 36, 37, 38, 39, 0, 0, 0, 0, + 40, 41, 42, 43, 44, 45, 46, 0, 0, 0, + 0, 0, 0, 0, 47, 167, 0, 0, 0, 0, + 0, 0, 168, 169, 170, 171, 48, 49, 0, 50, + 0, 51, 52, 0, 0, 0, 0, 0, 243, 0, + 54, 55, 172, 173, 353, 174, 175, 176, 177, 178, + 179, 180, 0, 0, 0, 0, 181, 167, 0, 182, + 183, 184, 185, 0, 168, 169, 170, 171, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 0, 174, 175, 176, + 177, 178, 179, 180, 0, 0, 0, 0, 181, 167, + 0, 182, 183, 184, 185, 0, 168, 169, 170, 171, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 173, 0, 174, + 175, 176, 177, 178, 179, 180, 0, 0, 0, 0, + 181, 0, 0, 182, 183, 184, 185 }; static const yytype_int16 yycheck[] = { - 15, 126, 317, 9, 40, 335, 426, 9, 11, 115, - 16, 46, 48, 46, 9, 23, 9, 77, 11, 11, - 10, 0, 461, 19, 20, 21, 23, 23, 24, 19, - 20, 21, 100, 23, 24, 141, 20, 43, 15, 16, - 17, 25, 17, 18, 40, 41, 15, 16, 54, 39, - 40, 41, 42, 9, 100, 30, 9, 9, 11, 34, - 56, 9, 122, 11, 39, 55, 56, 42, 20, 9, - 45, 100, 47, 25, 49, 50, 51, 52, 53, 115, - 20, 9, 100, 11, 9, 25, 11, 15, 16, 17, - 67, 421, 100, 21, 533, 98, 77, 133, 9, 101, - 225, 307, 92, 523, 101, 141, 101, 100, 143, 11, - 143, 317, 118, 77, 320, 321, 69, 100, 11, 125, - 126, 69, 9, 104, 454, 102, 20, 15, 16, 100, - 126, 121, 100, 102, 62, 9, 126, 11, 144, 199, - 200, 201, 202, 203, 69, 205, 206, 45, 208, 209, - 102, 103, 15, 16, 160, 161, 162, 100, 164, 165, - 166, 100, 102, 73, 74, 75, 100, 69, 143, 204, - 100, 204, 100, 100, 102, 103, 69, 43, 44, 194, - 186, 187, 188, 189, 190, 191, 192, 193, 163, 395, - 226, 101, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 12, 214, 215, - 216, 217, 218, 219, 102, 530, 67, 101, 9, 225, - 11, 211, 100, 429, 430, 10, 99, 333, 91, 12, - 9, 237, 11, 73, 74, 75, 242, 100, 363, 102, - 91, 99, 12, 73, 74, 75, 252, 12, 9, 100, - 11, 102, 19, 20, 21, 69, 23, 24, 12, 319, - 466, 101, 12, 11, 20, 73, 74, 75, 73, 74, - 75, 277, 278, 40, 41, 9, 12, 11, 284, 46, - 20, 91, 12, 318, 100, 318, 99, 12, 55, 56, - 73, 74, 75, 101, 100, 285, 69, 333, 304, 305, - 306, 307, 508, 73, 74, 75, 10, 23, 73, 74, - 75, 317, 11, 373, 320, 321, 376, 377, 424, 73, - 74, 75, 89, 73, 74, 75, 75, 103, 388, 73, - 74, 75, 103, 428, 103, 103, 431, 73, 74, 75, - 435, 436, 348, 73, 74, 75, 103, 337, 73, 74, - 75, 39, 40, 41, 42, 99, 18, 363, 46, 126, - 48, 464, 457, 458, 39, 40, 41, 42, 73, 74, - 75, 46, 467, 48, 100, 20, 143, 352, 60, 61, - 483, 484, 73, 74, 75, 73, 74, 75, 424, 395, - 100, 486, 495, 399, 99, 490, 491, 100, 73, 74, - 75, 102, 99, 23, 86, 87, 509, 510, 99, 23, - 92, 99, 10, 95, 96, 97, 98, 512, 185, 10, - 51, 524, 10, 429, 430, 10, 10, 58, 59, 60, - 61, 20, 99, 448, 529, 99, 99, 204, 99, 99, - 455, 100, 537, 73, 74, 75, 101, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 99, 99, 465, - 466, 92, 99, 453, 95, 96, 97, 98, 9, 101, - 485, 101, 73, 74, 75, 10, 99, 58, 59, 60, - 61, 73, 74, 75, 100, 0, 9, 502, 99, 25, - 77, 73, 74, 75, 9, 99, 11, 12, 71, 101, - 101, 78, 508, 84, 85, 86, 87, 100, 9, 101, - 525, 92, 19, 99, 95, 96, 97, 98, 285, 101, - 99, 496, 70, 101, 39, 40, 41, 42, 73, 74, - 75, 46, 99, 48, 92, 99, 51, 95, 96, 97, - 98, 12, 309, 58, 59, 60, 61, 99, 73, 74, - 75, 318, 98, 465, 99, 33, 530, 196, 73, 74, - 75, 0, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 12, 99, 375, 58, 92, 60, 61, - 95, 96, 97, 98, 99, 87, 101, 305, 82, 104, - 92, 60, 61, 95, 96, 97, 98, 244, 442, 422, - 39, 40, 41, 42, 86, 87, 473, 46, 472, 48, - 92, 143, 51, 95, 96, 97, 98, -1, 87, 58, - 59, 60, 61, 92, 318, -1, 95, 96, 97, 98, - 95, 96, 97, 98, 73, 74, 75, -1, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 73, - 74, 75, -1, 92, 204, -1, 95, 96, 97, 98, - 99, -1, 101, 0, 1, 104, -1, -1, -1, -1, - -1, -1, 9, -1, 11, 99, 13, 14, 15, 16, - 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 60, -1, -1, 46, - 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, - 57, 73, 74, 75, -1, 62, 63, 64, 65, 66, - 67, 68, -1, 87, 73, 74, 75, -1, 92, 76, - -1, 95, 96, 97, 98, -1, -1, 99, -1, -1, - -1, 88, 89, -1, 91, -1, 93, 94, 0, 1, - 99, -1, -1, 100, 101, 102, 103, 9, -1, 11, - -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, - 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, -1, -1, -1, 46, 47, 48, 49, 50, -1, - 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, - 62, 63, 64, 65, 66, 67, 68, 3, 4, 5, - 6, 7, 8, -1, 76, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 88, 89, -1, 91, - -1, 93, 94, -1, 1, -1, -1, -1, 100, 101, - 102, 103, 9, 10, 11, -1, 13, 14, 15, 16, - 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, -1, -1, -1, 46, - 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, - 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, - 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 88, 89, -1, 91, -1, 93, 94, -1, 1, - -1, -1, -1, 100, 101, 102, 103, 9, 10, 11, - -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, - 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, -1, -1, -1, 46, 47, 48, 49, 50, -1, - 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, - 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, - -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 88, 89, -1, 91, - -1, 93, 94, -1, 1, -1, -1, -1, 100, 101, - 102, 103, 9, 10, 11, -1, 13, 14, 15, 16, - 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, -1, -1, -1, 46, - 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, - 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, - 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 88, 89, -1, 91, -1, 93, 94, -1, 1, - -1, -1, -1, 100, 101, 102, 103, 9, 10, 11, - -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, - 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, -1, -1, -1, 46, 47, 48, 49, 50, -1, - 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, - 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, - -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 88, 89, -1, 91, - -1, 93, 94, -1, 1, -1, -1, -1, 100, 101, - 102, 103, 9, 10, 11, -1, 13, 14, 15, 16, - 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, -1, -1, -1, 46, - 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, - 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, - 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 88, 89, -1, 91, -1, 93, 94, -1, 1, - -1, -1, -1, 100, 101, 102, 103, 9, -1, 11, - -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, - 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, -1, -1, -1, 46, 47, 48, 49, 50, -1, - 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, - 62, 63, 64, 65, 66, 67, 68, -1, -1, 71, - -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 88, 89, -1, 91, - -1, 93, 94, -1, 1, -1, -1, -1, 100, 101, - 102, 103, 9, -1, 11, -1, 13, 14, 15, 16, - 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, -1, -1, -1, 46, - 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, - 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, - 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, + 15, 427, 45, 9, 126, 318, 336, 9, 462, 115, + 16, 9, 45, 23, 9, 11, 11, 77, 0, 39, + 10, 9, 15, 16, 15, 16, 11, 47, 9, 19, + 20, 21, 20, 23, 24, 141, 42, 25, 11, 23, + 76, 9, 17, 18, 104, 12, 11, 53, 38, 39, + 40, 41, 20, 100, 9, 30, 11, 25, 100, 34, + 9, 12, 11, 38, 54, 55, 41, 12, 9, 44, + 11, 46, 100, 48, 49, 50, 51, 52, 20, 12, + 534, 43, 44, 25, 69, 77, 122, 15, 16, 17, + 12, 101, 422, 100, 9, 115, 69, 100, 524, 101, + 143, 91, 98, 101, 226, 100, 73, 74, 75, 102, + 143, 102, 118, 133, 102, 103, 100, 9, 20, 125, + 126, 141, 73, 74, 75, 455, 100, 45, 73, 74, + 75, 121, 101, 308, 102, 9, 126, 11, 144, 67, + 73, 74, 75, 318, 100, 99, 321, 322, 15, 16, + 100, 73, 74, 75, 160, 161, 162, 100, 164, 165, + 166, 204, 100, 199, 200, 201, 202, 203, 143, 205, + 206, 204, 208, 209, 102, 100, 9, 12, 11, 194, + 186, 187, 188, 189, 190, 191, 192, 193, 163, 101, + 100, 12, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 227, 12, 215, + 216, 217, 218, 219, 220, 100, 99, 9, 531, 11, + 226, 396, 212, 10, 91, 19, 20, 21, 334, 23, + 24, 69, 238, 100, 11, 102, 69, 243, 73, 74, + 75, 20, 364, 12, 20, 39, 40, 253, 9, 91, + 11, 45, 73, 74, 75, 430, 431, 73, 74, 75, + 54, 55, 19, 20, 21, 99, 23, 24, 100, 73, + 74, 75, 278, 279, 100, 10, 319, 69, 9, 285, + 11, 69, 39, 40, 320, 101, 319, 73, 74, 75, + 23, 465, 467, 11, 88, 75, 286, 103, 55, 305, + 306, 307, 308, 103, 73, 74, 75, 103, 69, 100, + 484, 485, 318, 99, 334, 321, 322, 429, 103, 425, + 432, 9, 496, 11, 436, 437, 18, 15, 16, 17, + 103, 102, 126, 21, 509, 100, 510, 511, 374, 20, + 100, 377, 378, 349, 99, 10, 458, 459, 338, 143, + 60, 525, 23, 389, 10, 10, 468, 10, 364, 10, + 20, 39, 40, 41, 42, 73, 74, 75, 46, 126, + 48, 60, 61, 23, 62, 487, 99, 87, 353, 491, + 492, 100, 92, 99, 99, 95, 96, 97, 98, 101, + 396, 185, 99, 101, 400, 73, 74, 75, 87, 99, + 99, 513, 99, 92, 67, 425, 95, 96, 97, 98, + 204, 9, 100, 99, 102, 103, 10, 99, 530, 9, + 100, 99, 101, 99, 430, 431, 538, 99, 91, 73, + 74, 75, 25, 71, 449, 77, 9, 100, 78, 102, + 101, 456, 73, 74, 75, 99, 70, 58, 59, 60, + 61, 73, 74, 75, 0, 100, 99, 101, 99, 19, + 466, 467, 101, 9, 454, 11, 12, 73, 74, 75, + 101, 486, 83, 84, 85, 86, 87, 12, 99, 101, + 99, 92, 98, 466, 95, 96, 97, 98, 503, 73, + 74, 75, 286, 39, 40, 41, 42, 73, 74, 75, + 46, 306, 48, 509, 92, 51, 531, 95, 96, 97, + 98, 526, 58, 59, 60, 61, 310, 101, 73, 74, + 75, 196, 497, 99, 33, 319, 376, 73, 74, 75, + 0, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 12, 81, 99, 58, 92, 60, 61, 95, + 96, 97, 98, 99, 245, 101, 443, 473, 104, 423, + 60, 61, 143, 474, -1, 73, 74, 75, 319, 39, + 40, 41, 42, 86, 87, 204, 46, -1, 48, 92, + -1, 51, 95, 96, 97, 98, 86, 87, 58, 59, + 60, 61, 92, 101, -1, 95, 96, 97, 98, 95, + 96, 97, 98, 73, 74, 75, -1, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 73, 74, + 75, -1, 92, -1, -1, 95, 96, 97, 98, 99, + -1, 101, 0, 1, 104, -1, -1, -1, -1, -1, + -1, 9, -1, 11, 99, 13, 14, 15, 16, 17, + -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 73, 74, 75, 46, 47, + 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, + 73, 74, 75, -1, 62, 63, 64, 65, 66, 67, + 68, 99, -1, 73, 74, 75, -1, -1, 76, -1, + -1, 73, 74, 75, -1, -1, 99, -1, -1, -1, + 88, 89, -1, 91, -1, 93, 94, 0, 1, 99, + -1, -1, 100, 101, 102, 103, 9, 99, 11, -1, + 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, + 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + -1, -1, -1, 46, 47, 48, 49, 50, -1, 52, + 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, + 63, 64, 65, 66, 67, 68, 87, -1, -1, -1, + -1, 92, -1, 76, 95, 96, 97, 98, 3, 4, + 5, 6, 7, 8, -1, 88, 89, -1, 91, -1, + 93, 94, -1, 1, -1, -1, -1, 100, 101, 102, + 103, 9, 10, 11, -1, 13, 14, 15, 16, 17, + -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, -1, -1, -1, 46, 47, + 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, + -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, + 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 88, 89, -1, 91, -1, 93, 94, -1, 1, - -1, -1, -1, 100, 101, 102, 103, 9, -1, 11, - -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, - 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, - 32, -1, 34, 35, 36, 37, 38, 39, 40, 41, - 42, -1, -1, -1, 46, 47, 48, 49, 50, -1, - 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, - 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, - -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 88, 89, -1, 91, - -1, 93, 94, 1, -1, -1, -1, -1, 100, 101, - 102, 103, -1, 11, -1, 13, 14, 15, 16, 17, + 88, 89, -1, 91, -1, 93, 94, -1, 1, -1, + -1, -1, 100, 101, 102, 103, 9, 10, 11, -1, + 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, + 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + -1, -1, -1, 46, 47, 48, 49, 50, -1, 52, + 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, + 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, + -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 88, 89, -1, 91, -1, + 93, 94, -1, 1, -1, -1, -1, 100, 101, 102, + 103, 9, 10, 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, - 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, - -1, 51, -1, -1, -1, -1, -1, -1, 58, 59, - 60, 61, 50, -1, 52, 53, 54, 55, 56, 57, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, -1, -1, -1, 46, 47, + 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, - 68, 81, 82, 83, 84, 85, 86, 87, 76, -1, - -1, -1, 92, -1, -1, 95, 96, 97, 98, -1, - 88, 89, -1, 91, -1, 93, 94, 1, -1, -1, - -1, -1, 100, 101, 102, 103, -1, 11, -1, 13, - 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, - 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, - -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, - 58, 59, 60, 61, -1, -1, 50, -1, 52, 53, - 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, - 64, 65, 66, 67, 68, 83, 84, 85, 86, 87, - -1, -1, 76, -1, 92, -1, -1, 95, 96, 97, - 98, -1, -1, -1, 88, 89, -1, 91, -1, 93, - 94, -1, -1, -1, -1, 99, 100, -1, 102, 103, - 9, -1, 11, -1, 13, 14, 15, 16, 17, -1, - -1, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, - -1, -1, -1, -1, 58, 59, 60, 61, -1, -1, - -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, - -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, - -1, 85, 86, 87, -1, -1, -1, 76, 92, -1, - -1, 95, 96, 97, 98, -1, -1, -1, -1, 88, - 89, -1, 91, -1, 93, 94, -1, -1, -1, -1, - -1, 100, -1, 102, 103, 9, -1, 11, -1, 13, - 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, - 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, - -1, -1, 36, -1, -1, -1, -1, 58, 59, 60, - 61, -1, -1, -1, -1, -1, 50, -1, 52, 53, - 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, - 64, 65, 66, 67, 68, 86, 87, -1, -1, -1, - -1, 92, 76, -1, 95, 96, 97, 98, -1, -1, - -1, -1, -1, -1, 88, 89, -1, 91, -1, 93, - 94, -1, -1, -1, -1, -1, 100, -1, 102, 103, - 11, 12, 13, 14, 15, 16, 17, -1, -1, 20, - 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, - 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, - 58, 59, 60, 61, -1, -1, -1, -1, -1, 50, - -1, 52, 53, 54, 55, 56, 57, -1, -1, -1, - -1, 62, 63, 64, 65, 66, 67, 68, 86, 87, - -1, -1, -1, -1, 92, 76, -1, 95, 96, 97, - 98, -1, -1, -1, -1, -1, -1, 88, 89, -1, - 91, -1, 93, 94, -1, -1, -1, -1, -1, 100, - -1, 102, 103, 11, -1, 13, 14, 15, 16, 17, + 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 88, 89, -1, 91, -1, 93, 94, -1, 1, -1, + -1, -1, 100, 101, 102, 103, 9, 10, 11, -1, + 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, + 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + -1, -1, -1, 46, 47, 48, 49, 50, -1, 52, + 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, + 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, + -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 88, 89, -1, 91, -1, + 93, 94, -1, 1, -1, -1, -1, 100, 101, 102, + 103, 9, 10, 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, - 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, -1, -1, -1, 46, 47, + 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, + -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, + 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, + 88, 89, -1, 91, -1, 93, 94, -1, 1, -1, + -1, -1, 100, 101, 102, 103, 9, -1, 11, -1, + 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, + 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + -1, -1, -1, 46, 47, 48, 49, 50, -1, 52, + 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, + 63, 64, 65, 66, 67, 68, -1, -1, 71, -1, + -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 88, 89, -1, 91, -1, + 93, 94, -1, 1, -1, -1, -1, 100, 101, 102, + 103, 9, -1, 11, -1, 13, 14, 15, 16, 17, + -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, -1, -1, -1, 46, 47, + 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, -1, 91, -1, 93, 94, -1, -1, -1, - -1, -1, 100, 101, 102, 103, 11, -1, 13, 14, + 88, 89, -1, 91, -1, 93, 94, -1, 1, -1, + -1, -1, 100, 101, 102, 103, 9, -1, 11, -1, + 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, + 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, + -1, 34, 35, 36, 37, 38, 39, 40, 41, 42, + -1, -1, -1, 46, 47, 48, 49, 50, -1, 52, + 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, + 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, + -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 88, 89, -1, 91, -1, + 93, 94, 1, -1, -1, -1, -1, 100, 101, 102, + 103, -1, 11, -1, 13, 14, 15, 16, 17, -1, + -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, + 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, + 51, -1, -1, -1, -1, -1, -1, 58, 59, 60, + 61, 50, -1, -1, 53, 54, 55, 56, 57, -1, + -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, + 81, 82, 83, 84, 85, 86, 87, 76, -1, -1, + -1, 92, -1, -1, 95, 96, 97, 98, -1, 88, + 89, -1, 91, -1, 93, 94, 1, -1, -1, -1, + -1, 100, 101, 102, 103, -1, 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, - -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, + -1, 36, -1, -1, -1, -1, -1, -1, 58, 59, + 60, 61, -1, -1, -1, 50, -1, -1, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, - 65, 66, 67, 68, -1, -1, -1, -1, -1, -1, - -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, + 65, 66, 67, 68, 84, 85, 86, 87, -1, -1, + -1, 76, 92, -1, -1, 95, 96, 97, 98, -1, -1, -1, -1, 88, 89, -1, 91, -1, 93, 94, - -1, -1, -1, -1, 99, 100, -1, 102, 103, 11, - -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, + -1, -1, -1, -1, 99, 100, -1, 102, 103, 9, + -1, 11, -1, 13, 14, 15, 16, 17, -1, -1, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, + -1, -1, -1, 58, 59, 60, 61, -1, -1, -1, + 50, -1, -1, 53, 54, 55, 56, 57, -1, -1, + -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, + 85, 86, 87, -1, -1, -1, 76, 92, -1, -1, + 95, 96, 97, 98, -1, -1, -1, -1, 88, 89, + -1, 91, -1, 93, 94, -1, -1, -1, -1, -1, + 100, -1, 102, 103, 9, -1, 11, -1, 13, 14, + 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, + -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, + -1, 36, -1, -1, -1, -1, 58, 59, 60, 61, + -1, -1, -1, -1, -1, 50, -1, -1, 53, 54, + 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, + 65, 66, 67, 68, 86, 87, -1, -1, -1, -1, + 92, 76, -1, 95, 96, 97, 98, -1, -1, -1, + -1, -1, -1, 88, 89, -1, 91, -1, 93, 94, + -1, -1, -1, -1, -1, 100, -1, 102, 103, 11, + 12, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, - -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, - 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, - 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, - -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 36, -1, -1, -1, -1, 58, + 59, 60, 61, -1, -1, -1, -1, -1, 50, -1, + -1, 53, 54, 55, 56, 57, -1, -1, -1, -1, + 62, 63, 64, 65, 66, 67, 68, 86, 87, -1, + -1, -1, -1, 92, 76, -1, 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, 88, 89, -1, 91, - -1, 93, 94, -1, -1, -1, -1, 99, 100, -1, + -1, 93, 94, -1, -1, -1, -1, -1, 100, -1, 102, 103, 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, - 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, + 29, 30, 31, -1, -1, -1, -1, 36, 39, 40, + 41, 42, -1, -1, -1, 46, -1, 48, -1, -1, + -1, 50, -1, -1, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, - -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, + -1, -1, 73, 74, 75, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, 89, -1, 91, -1, 93, 94, -1, -1, -1, -1, - 99, 100, -1, 102, 103, 11, -1, 13, 14, 15, + -1, 100, 101, 102, 103, 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, + -1, -1, -1, -1, 50, -1, -1, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -892,7 +862,7 @@ static const yytype_int16 yycheck[] = 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 50, -1, 52, + -1, -1, -1, -1, -1, -1, -1, 50, -1, -1, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, @@ -902,7 +872,7 @@ static const yytype_int16 yycheck[] = 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, + 50, -1, -1, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, 89, @@ -911,7 +881,7 @@ static const yytype_int16 yycheck[] = 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, + -1, -1, -1, 50, -1, -1, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -920,28 +890,60 @@ static const yytype_int16 yycheck[] = 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 50, -1, 52, 53, + -1, -1, -1, -1, -1, -1, 50, -1, -1, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, 89, -1, 91, -1, 93, - 94, -1, -1, -1, -1, -1, 100, -1, 102, 103, + 94, -1, -1, -1, -1, 99, 100, -1, 102, 103, 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, - -1, 52, 53, 54, 55, 56, 57, -1, -1, -1, + -1, -1, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, -1, - -1, -1, -1, -1, -1, 76, 51, -1, -1, -1, - -1, -1, -1, 58, 59, 60, 61, 88, 89, -1, - 91, -1, 93, 94, -1, -1, -1, -1, -1, 100, - -1, 102, 103, 78, 79, -1, 81, 82, 83, 84, - 85, 86, 87, -1, -1, -1, -1, 92, 51, -1, - 95, 96, 97, 98, -1, 58, 59, 60, 61, -1, + -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, -1, + 91, -1, 93, 94, -1, -1, -1, -1, 99, 100, + -1, 102, 103, 11, -1, 13, 14, 15, 16, 17, + -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, + 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 50, -1, -1, 53, 54, 55, 56, 57, + -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, + 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 88, 89, -1, 91, -1, 93, 94, -1, -1, -1, + -1, 99, 100, -1, 102, 103, 11, -1, 13, 14, + 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, + -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, + -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 50, -1, -1, 53, 54, + 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, + 65, 66, 67, 68, -1, -1, -1, -1, -1, -1, + -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 88, 89, -1, 91, -1, 93, 94, + -1, -1, -1, -1, -1, 100, -1, 102, 103, 11, + -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, + 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, + -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, + -1, 53, 54, 55, 56, 57, -1, -1, -1, -1, + 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, + -1, -1, -1, -1, 76, 51, -1, -1, -1, -1, + -1, -1, 58, 59, 60, 61, 88, 89, -1, 91, + -1, 93, 94, -1, -1, -1, -1, -1, 100, -1, + 102, 103, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, -1, -1, -1, -1, 92, 51, -1, 95, + 96, 97, 98, -1, 58, 59, 60, 61, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 78, 79, -1, 81, 82, 83, + 84, 85, 86, 87, -1, -1, -1, -1, 92, 51, + -1, 95, 96, 97, 98, -1, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 79, -1, 81, 82, - 83, 84, 85, 86, 87, -1, -1, -1, -1, 92, - -1, -1, 95, 96, 97, 98 + -1, -1, -1, -1, -1, -1, -1, 79, -1, 81, + 82, 83, 84, 85, 86, 87, -1, -1, -1, -1, + 92, -1, -1, 95, 96, 97, 98 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -951,13 +953,13 @@ static const yytype_uint8 yystos[] = 0, 3, 4, 5, 6, 7, 8, 106, 107, 108, 109, 110, 111, 112, 0, 115, 11, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 26, 27, 28, - 29, 30, 31, 36, 50, 52, 53, 54, 55, 56, - 57, 62, 63, 64, 65, 66, 67, 68, 76, 88, - 89, 91, 93, 94, 100, 102, 103, 160, 161, 162, - 165, 166, 167, 168, 169, 170, 172, 175, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 9, 113, 1, - 32, 34, 35, 37, 38, 39, 40, 41, 42, 46, - 47, 48, 49, 101, 113, 122, 132, 160, 33, 120, + 29, 30, 31, 36, 50, 53, 54, 55, 56, 57, + 62, 63, 64, 65, 66, 67, 68, 76, 88, 89, + 91, 93, 94, 100, 102, 103, 160, 161, 162, 165, + 166, 167, 168, 169, 170, 172, 175, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 9, 113, 1, 32, + 34, 35, 37, 38, 39, 40, 41, 42, 46, 47, + 48, 49, 52, 101, 113, 122, 132, 160, 33, 120, 121, 122, 118, 118, 12, 160, 170, 170, 20, 25, 113, 182, 190, 190, 190, 190, 190, 171, 11, 100, 170, 143, 143, 170, 100, 100, 100, 113, 170, 20, @@ -969,39 +971,39 @@ static const yytype_uint8 yystos[] = 87, 92, 95, 96, 97, 98, 100, 9, 11, 9, 11, 9, 11, 9, 115, 144, 145, 20, 142, 100, 100, 100, 100, 67, 91, 100, 180, 182, 100, 100, - 113, 45, 134, 101, 39, 40, 41, 42, 46, 48, - 121, 122, 120, 12, 174, 100, 100, 160, 99, 113, - 23, 115, 146, 99, 99, 160, 175, 190, 161, 10, - 101, 174, 100, 170, 173, 182, 183, 184, 99, 160, - 69, 148, 11, 99, 160, 160, 160, 170, 160, 160, - 99, 160, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 9, 11, 15, - 16, 17, 21, 62, 100, 102, 103, 164, 182, 99, - 160, 160, 160, 160, 160, 160, 160, 160, 118, 20, - 141, 142, 20, 125, 115, 115, 115, 115, 91, 115, - 67, 178, 179, 181, 182, 183, 184, 115, 115, 100, - 115, 115, 113, 160, 138, 160, 160, 160, 160, 160, - 175, 161, 12, 163, 100, 157, 69, 147, 99, 99, - 160, 10, 99, 160, 148, 99, 23, 160, 11, 101, - 12, 99, 80, 160, 160, 103, 103, 103, 103, 99, - 160, 103, 103, 100, 99, 101, 12, 101, 12, 101, - 12, 101, 10, 18, 114, 123, 124, 9, 101, 20, - 137, 160, 138, 139, 160, 139, 177, 182, 100, 132, - 136, 139, 140, 160, 178, 115, 139, 139, 99, 104, - 176, 174, 158, 147, 23, 113, 99, 99, 12, 160, - 10, 170, 101, 12, 99, 175, 10, 10, 10, 10, - 115, 146, 115, 115, 20, 99, 99, 99, 99, 100, - 115, 99, 101, 128, 139, 99, 99, 160, 99, 15, - 16, 102, 150, 151, 153, 154, 155, 156, 9, 12, - 10, 99, 101, 147, 157, 129, 174, 135, 135, 9, - 116, 116, 139, 139, 116, 126, 100, 99, 116, 116, - 25, 149, 149, 77, 99, 118, 71, 101, 113, 159, - 147, 118, 101, 116, 116, 117, 43, 44, 133, 133, - 99, 99, 134, 137, 139, 116, 78, 152, 152, 154, - 10, 119, 9, 10, 134, 134, 118, 116, 100, 116, - 116, 101, 99, 134, 170, 23, 101, 130, 118, 10, - 139, 134, 134, 127, 116, 70, 131, 19, 10, 99, - 135, 134, 118, 116, 140, 71, 133, 99, 116 + 113, 101, 45, 134, 101, 39, 40, 41, 42, 46, + 48, 121, 122, 120, 12, 174, 100, 100, 160, 99, + 113, 23, 115, 146, 99, 99, 160, 175, 190, 161, + 10, 101, 174, 100, 170, 173, 182, 183, 184, 99, + 160, 69, 148, 11, 99, 160, 160, 160, 170, 160, + 160, 99, 160, 170, 170, 170, 170, 170, 170, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 9, 11, + 15, 16, 17, 21, 62, 100, 102, 103, 164, 182, + 99, 160, 160, 160, 160, 160, 160, 160, 160, 118, + 20, 141, 142, 20, 125, 115, 115, 115, 115, 91, + 115, 67, 178, 179, 181, 182, 183, 184, 115, 115, + 100, 115, 115, 113, 160, 138, 160, 160, 160, 160, + 160, 175, 161, 12, 163, 100, 157, 69, 147, 99, + 99, 160, 10, 99, 160, 148, 99, 23, 160, 11, + 101, 12, 99, 80, 160, 160, 103, 103, 103, 103, + 99, 160, 103, 103, 100, 99, 101, 12, 101, 12, + 101, 12, 101, 10, 18, 114, 123, 124, 9, 101, + 20, 137, 160, 138, 139, 160, 139, 177, 182, 100, + 132, 136, 139, 140, 160, 178, 115, 139, 139, 99, + 104, 176, 174, 158, 147, 23, 113, 99, 99, 12, + 160, 10, 170, 101, 12, 99, 175, 10, 10, 10, + 10, 115, 146, 115, 115, 20, 99, 99, 99, 99, + 100, 115, 99, 101, 128, 139, 99, 99, 160, 99, + 15, 16, 102, 150, 151, 153, 154, 155, 156, 9, + 12, 10, 99, 101, 147, 157, 129, 174, 135, 135, + 9, 116, 116, 139, 139, 116, 126, 100, 99, 116, + 116, 25, 149, 149, 77, 99, 118, 71, 101, 113, + 159, 147, 118, 101, 116, 116, 117, 43, 44, 133, + 133, 99, 99, 134, 137, 139, 116, 78, 152, 152, + 154, 10, 119, 9, 10, 134, 134, 118, 116, 100, + 116, 116, 101, 99, 134, 170, 23, 101, 130, 118, + 10, 139, 134, 134, 127, 116, 70, 131, 19, 10, + 99, 135, 134, 118, 116, 140, 71, 133, 99, 116 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -1012,24 +1014,24 @@ static const yytype_uint8 yyr1[] = 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, 122, 124, 122, 122, 125, 122, 122, 122, 122, 122, 122, 122, 122, 126, 127, 122, 122, 122, 128, 122, - 122, 122, 122, 129, 122, 122, 122, 130, 131, 131, - 132, 132, 132, 132, 132, 132, 132, 132, 133, 133, - 133, 134, 134, 135, 136, 136, 137, 137, 138, 139, - 140, 141, 141, 142, 143, 144, 145, 145, 146, 146, - 147, 147, 147, 148, 148, 149, 149, 150, 150, 151, - 152, 152, 152, 153, 154, 154, 155, 155, 155, 156, - 156, 158, 157, 159, 159, 160, 160, 160, 160, 161, - 161, 161, 162, 162, 162, 162, 162, 162, 162, 162, - 163, 162, 164, 164, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, + 122, 122, 122, 129, 122, 122, 122, 122, 130, 131, + 131, 132, 132, 132, 132, 132, 132, 132, 132, 133, + 133, 133, 134, 134, 135, 136, 136, 137, 137, 138, + 139, 140, 141, 141, 142, 143, 144, 145, 145, 146, + 146, 147, 147, 147, 148, 148, 149, 149, 150, 150, + 151, 152, 152, 152, 153, 154, 154, 155, 155, 155, + 156, 156, 158, 157, 159, 159, 160, 160, 160, 160, + 161, 161, 161, 162, 162, 162, 162, 162, 162, 162, + 162, 163, 162, 164, 164, 165, 165, 165, 165, 165, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 168, 168, 168, 168, 168, 168, 169, 169, 170, + 166, 166, 166, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 168, 168, 168, 168, 168, 168, 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, 171, 170, + 170, 170, 170, 170, 170, 170, 170, 170, 170, 171, 170, 170, 170, 170, 172, 172, 172, 173, 173, 173, 173, 173, 174, 174, 175, 175, 176, 176, 177, 178, 178, 178, 179, 179, 180, 180, 181, 182, 183, 184, @@ -1045,25 +1047,25 @@ static const yytype_uint8 yyr2[] = 2, 0, 2, 1, 1, 2, 2, 1, 4, 0, 7, 0, 10, 4, 0, 7, 7, 7, 6, 6, 2, 8, 8, 0, 0, 13, 9, 8, 0, 10, - 9, 7, 2, 0, 8, 2, 1, 2, 0, 3, - 1, 1, 3, 3, 3, 3, 3, 3, 0, 2, - 6, 0, 2, 0, 0, 1, 0, 1, 1, 1, - 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, - 0, 2, 1, 2, 1, 0, 1, 1, 1, 3, - 0, 1, 2, 3, 1, 1, 2, 3, 1, 0, - 1, 0, 4, 1, 1, 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, 4, 3, 6, 4, 5, 3, 3, + 9, 7, 2, 0, 8, 2, 2, 1, 2, 0, + 3, 1, 1, 3, 3, 3, 3, 3, 3, 0, + 2, 6, 0, 2, 0, 0, 1, 0, 1, 1, + 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, + 1, 0, 2, 1, 2, 1, 0, 1, 1, 1, + 3, 0, 1, 2, 3, 1, 1, 2, 3, 1, + 0, 1, 0, 4, 1, 1, 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, 4, 3, 6, 4, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 2, 4, 3, 5, 8, 2, 2, 1, - 1, 1, 1, 5, 2, 3, 1, 2, 3, 1, - 2, 1, 1, 1, 1, 1, 1, 4, 4, 5, - 5, 1, 1, 3, 4, 3, 4, 4, 4, 4, - 4, 1, 2, 2, 1, 2, 2, 1, 2, 1, - 2, 1, 3, 1, 3, 1, 3, 4, 0, 6, - 1, 1, 1, 1, 3, 2, 4, 3, 2, 1, + 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 2, 4, 3, 5, 8, 2, 2, + 1, 1, 1, 1, 5, 2, 3, 1, 2, 3, + 1, 2, 1, 1, 1, 1, 1, 1, 4, 4, + 5, 5, 1, 1, 3, 4, 3, 4, 4, 4, + 4, 4, 1, 2, 2, 1, 2, 2, 1, 2, + 1, 2, 1, 3, 1, 3, 1, 3, 4, 0, + 6, 1, 1, 1, 3, 2, 4, 3, 2, 1, 1, 1, 0, 1, 0, 1, 0, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 2, 1, 3, 1, 3, 1, 3, 1, @@ -1109,6 +1111,6 @@ static const toketypes yy_type_tab[] = }; /* Generated from: - * 68a62998f7c607d7a1fa0fdf2d16ec19074c256dde18dfc475daff70d378e025 perly.y + * 4667736d3c31a5169bab73c89d70a27dbce5ea4fe7e3c332a236f8a210aafdc2 perly.y * 153cba5d215c1a083a0459c43f4d55c45fd0a7093c197d7247a456dcde21ea53 regen_perly.pl * ex: set ro: */ @@ -90,7 +90,7 @@ %left <ival> ',' %right <ival> ASSIGNOP %right <ival> '?' ':' -%nonassoc DOTDOT YADAYADA +%nonassoc DOTDOT %left <ival> OROR DORDOR %left <ival> ANDAND %left <ival> BITOROP @@ -481,6 +481,11 @@ barestmt: PLUGSTMT { $$ = $1; } + | YADAYADA ';' + { + $$ = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), + newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); + } | ';' { $$ = NULL; @@ -1210,11 +1215,6 @@ term : termbinop { $$ = pmruntime($1, $4, $5, 1, $<ival>2); } | BAREWORD | listop - | YADAYADA - { - $$ = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), - newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); - } | PLUGEXPR ; diff --git a/pod/perldelta.pod b/pod/perldelta.pod index e1e608c11a..fb14ed9099 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -51,6 +51,22 @@ XXX For a release on a stable branch, this section aspires to be: [ List each incompatible change as a =head2 entry ] +=head2 Yada-yada is now strictly a statement + +By the time of its initial stable release in Perl 5.12, the C<...> +(yada-yada) operator was explicitly intended to serve as a statement, +not an expression. However, the original implementation was confused +on this point, leading to inconsistent parsing. The operator was +accidentally accepted in a few situations where it did not serve as a +complete statement, such as + + ... . "foo"; + ... if $a < $b; + +The parsing has now been made consistent, permitting yada-yada only as +a statement. Affected code can use C<do{...}> to put a yada-yada into +an arbitrary expression context. + =head1 Deprecations XXX Any deprecated features, syntax, modules etc. should be listed here. diff --git a/pod/perlsyn.pod b/pod/perlsyn.pod index a78c0959ad..e2e9c6a984 100644 --- a/pod/perlsyn.pod +++ b/pod/perlsyn.pod @@ -754,12 +754,7 @@ X<whatever operator> X<triple-dot operator> Beginning in Perl 5.12, Perl accepts an ellipsis, "C<...>", as a -placeholder for code that you haven't implemented yet. This form of -ellipsis, the unimplemented statement, should not be confused with the -binary flip-flop C<...> operator. One is a statement and the other an -operator. (Perl doesn't usually confuse them because usually Perl can tell -whether it wants an operator or a statement, but see below for exceptions.) - +placeholder for code that you haven't implemented yet. When Perl 5.12 or later encounters an ellipsis statement, it parses this without error, but if and when you should actually try to execute it, Perl throws an exception with the text C<Unimplemented>: @@ -771,8 +766,11 @@ throws an exception with the text C<Unimplemented>: say "I found an ellipsis!"; } -You can only use the elliptical statement to stand in for a -complete statement. These examples of how the ellipsis works: +You can only use the elliptical statement to stand in for a complete +statement. Syntactically, "C<...;>" is a complete statement, but, +as with other kinds of semicolon-terminated statement, the semicolon +may be omitted if "C<...>" appears immediately before a closing brace. +These examples show how the ellipsis works: use v5.12; { ... } @@ -791,9 +789,7 @@ complete statement. These examples of how the ellipsis works: }; The elliptical statement cannot stand in for an expression that -is part of a larger statement, since the C<...> is also the three-dot -version of the flip-flop operator (see L<perlop/"Range Operators">). - +is part of a larger statement. These examples of attempts to use an ellipsis are syntax errors: use v5.12; @@ -801,22 +797,17 @@ These examples of attempts to use an ellipsis are syntax errors: print ...; open(my $fh, ">", "/dev/passwd") or ...; if ($condition && ... ) { say "Howdy" }; + ... if $a > $b; + say "Cromulent" if ...; + $flub = 5 + ...; There are some cases where Perl can't immediately tell the difference between an expression and a statement. For instance, the syntax for a block and an anonymous hash reference constructor look the same unless there's something in the braces to give Perl a hint. The ellipsis is a -syntax error if Perl doesn't guess that the C<{ ... }> is a block. In that -case, it doesn't think the C<...> is an ellipsis because it's expecting an -expression instead of a statement: - - @transformed = map { ... } @input; # syntax error - +syntax error if Perl doesn't guess that the C<{ ... }> is a block. Inside your block, you can use a C<;> before the ellipsis to denote that the -C<{ ... }> is a block and not a hash reference constructor. Now the ellipsis -works: - - @transformed = map {; ... } @input; # ';' disambiguates +C<{ ... }> is a block and not a hash reference constructor. Note: Some folks colloquially refer to this bit of punctuation as a "yada-yada" or "triple-dot", but its true name diff --git a/t/op/yadayada.t b/t/op/yadayada.t index a39b01594c..13ff4b25a1 100644 --- a/t/op/yadayada.t +++ b/t/op/yadayada.t @@ -8,7 +8,7 @@ BEGIN { use strict; -plan 12; +plan 34; my $err; my $err1 = "Unimplemented at $0 line "; @@ -19,6 +19,11 @@ eval { ... }; is $@, $err, "Execution of ellipsis statement reported 'Unimplemented' code"; $@ = ''; +my $i = 0; +is eval { $i++; ...; $i+=10; 123 }, undef; +like $@, qr/\AUnimplemented /; +is $i, 1; + note("RT #122661: Semicolon before ellipsis statement disambiguates to indicate block rather than hash reference"); my @input = (3..5); my @transformed; @@ -42,21 +47,19 @@ eval { @transformed = map {;... } @input; }; is $@, $err, "Disambiguation case 4"; $@ = ''; -note("RT #132150: ... is a term, not an operator"); -$err = $err1 . ( __LINE__ + 1 ) . $err2; -eval { ... + 0 }; -is $@, $err, "... + 0 parses"; -$@ = ''; - -$err = $err1 . ( __LINE__ + 1 ) . $err2; -eval { ... % 1 }; -is $@, $err, "... % 1 parses"; -$@ = ''; - -$err = $err1 . ( __LINE__ + 1 ) . $err2; -eval { ... / 1 }; -is $@, $err, "... / 1 parses"; -$@ = ''; +note("RT #132150: ... in other contexts is a syntax error"); +foreach( + "... + 0", "0 + ...", + "... . 0", "0 . ...", + "... or 1", "1 or ...", + "... if 1", "1 if ...", + '[...]', + 'my $a = ...', + '... sub quux {}', +) { + is eval($_), undef; + like $@, qr/\Asyntax error /; +} # # Regression tests, making sure ... is still parsable as an operator. @@ -6887,7 +6887,7 @@ Perl_yylex(pTHX) } if (PL_expect == XSTATE && s[1] == '.' && s[2] == '.') { s += 3; - TERM(YADAYADA); + OPERATOR(YADAYADA); } if (PL_expect == XOPERATOR || !isDIGIT(s[1])) { char tmp = *s++; |