diff options
author | Zefram <zefram@fysh.org> | 2012-05-25 22:25:21 +0100 |
---|---|---|
committer | Zefram <zefram@fysh.org> | 2012-05-25 22:25:59 +0100 |
commit | 417a992d4dc78be79e44d19e029d9742d0334128 (patch) | |
tree | 41e4ecf92455ed85c3c764f7544ce48c65a9be16 | |
parent | eb3d0a5826dc4202bd1ef751f86b4fa666f52d84 (diff) | |
download | perl-417a992d4dc78be79e44d19e029d9742d0334128.tar.gz |
remove deprecated qw-as-parens behaviour
-rw-r--r-- | embed.fnc | 2 | ||||
-rw-r--r-- | embed.h | 1 | ||||
-rw-r--r-- | perly.act | 444 | ||||
-rw-r--r-- | perly.h | 44 | ||||
-rw-r--r-- | perly.tab | 739 | ||||
-rw-r--r-- | perly.y | 50 | ||||
-rw-r--r-- | pod/perldelta.pod | 13 | ||||
-rw-r--r-- | pod/perldiag.pod | 11 | ||||
-rw-r--r-- | proto.h | 5 | ||||
-rw-r--r-- | t/lib/warnings/perly | 236 | ||||
-rw-r--r-- | toke.c | 17 |
11 files changed, 637 insertions, 925 deletions
@@ -2597,8 +2597,6 @@ ApoM |void|cop_store_label \ |NN COP *const cop|NN const char *label|STRLEN len|U32 flags xpo |int |keyword_plugin_standard|NN char* keyword_ptr|STRLEN keyword_len|NN OP** op_ptr -: Used in perly.y -xp |void |munge_qwlist_to_paren_list|NN OP* qwlist #if defined(USE_ITHREADS) # if defined(PERL_IN_SV_C) @@ -1151,7 +1151,6 @@ #define mode_from_discipline(a,b) Perl_mode_from_discipline(aTHX_ a,b) #define mro_isa_changed_in(a) Perl_mro_isa_changed_in(aTHX_ a) #define mro_package_moved(a,b,c,d) Perl_mro_package_moved(aTHX_ a,b,c,d) -#define munge_qwlist_to_paren_list(a) Perl_munge_qwlist_to_paren_list(aTHX_ a) #define my_attrs(a,b) Perl_my_attrs(aTHX_ a,b) #define my_clearenv() Perl_my_clearenv(aTHX) #define my_lstat_flags(a) Perl_my_lstat_flags(aTHX_ a) @@ -5,14 +5,14 @@ */ case 2: -#line 142 "perly.y" +#line 140 "perly.y" { PL_parser->expect = XSTATE; ;} break; case 3: -#line 146 "perly.y" +#line 144 "perly.y" { newPROG(block_end((ps[(3) - (4)].val.ival),(ps[(4) - (4)].val.opval))); (yyval.ival) = 0; @@ -20,14 +20,14 @@ case 2: break; case 4: -#line 151 "perly.y" +#line 149 "perly.y" { parser->expect = XTERM; ;} break; case 5: -#line 155 "perly.y" +#line 153 "perly.y" { PL_eval_root = (ps[(3) - (3)].val.opval); (yyval.ival) = 0; @@ -35,14 +35,14 @@ case 2: break; case 6: -#line 160 "perly.y" +#line 158 "perly.y" { parser->expect = XBLOCK; ;} break; case 7: -#line 164 "perly.y" +#line 162 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[(3) - (3)].val.opval); @@ -53,14 +53,14 @@ case 2: break; case 8: -#line 172 "perly.y" +#line 170 "perly.y" { parser->expect = XSTATE; ;} break; case 9: -#line 176 "perly.y" +#line 174 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[(3) - (3)].val.opval); @@ -71,14 +71,14 @@ case 2: break; case 10: -#line 184 "perly.y" +#line 182 "perly.y" { parser->expect = XSTATE; ;} break; case 11: -#line 188 "perly.y" +#line 186 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[(3) - (3)].val.opval); @@ -89,14 +89,14 @@ case 2: break; case 12: -#line 196 "perly.y" +#line 194 "perly.y" { parser->expect = XSTATE; ;} break; case 13: -#line 200 "perly.y" +#line 198 "perly.y" { PL_eval_root = (ps[(3) - (3)].val.opval); (yyval.ival) = 0; @@ -104,7 +104,7 @@ case 2: break; case 14: -#line 208 "perly.y" +#line 206 "perly.y" { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval))) PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval)); (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval)); @@ -114,17 +114,17 @@ case 2: break; case 15: -#line 217 "perly.y" +#line 215 "perly.y" { (yyval.ival) = block_start(TRUE); ;} break; case 16: -#line 221 "perly.y" +#line 219 "perly.y" { (yyval.ival) = (I32) Perl_allocmy(aTHX_ STR_WITH_LEN("$_"), 0); ;} break; case 17: -#line 225 "perly.y" +#line 223 "perly.y" { if (PL_parser->copline > (line_t)IVAL((ps[(1) - (4)].val.i_tkval))) PL_parser->copline = (line_t)IVAL((ps[(1) - (4)].val.i_tkval)); (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval)); @@ -134,17 +134,17 @@ case 2: break; case 18: -#line 234 "perly.y" +#line 232 "perly.y" { (yyval.ival) = block_start(FALSE); ;} break; case 19: -#line 239 "perly.y" +#line 237 "perly.y" { (yyval.opval) = (OP*)NULL; ;} break; case 20: -#line 241 "perly.y" +#line 239 "perly.y" { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval)); PL_pad_reset_pending = TRUE; if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval)) @@ -153,7 +153,7 @@ case 2: break; case 21: -#line 250 "perly.y" +#line 248 "perly.y" { if((ps[(1) - (1)].val.opval)) { (yyval.opval) = newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval)); @@ -164,12 +164,12 @@ case 2: break; case 22: -#line 258 "perly.y" +#line 256 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 23: -#line 262 "perly.y" +#line 260 "perly.y" { (yyval.opval) = newSTATEOP(SvUTF8(((SVOP*)(ps[(1) - (2)].val.p_tkval))->op_sv), savepv(SvPVX(((SVOP*)(ps[(1) - (2)].val.p_tkval))->op_sv)), (ps[(2) - (2)].val.opval)); @@ -179,7 +179,7 @@ case 2: break; case 24: -#line 269 "perly.y" +#line 267 "perly.y" { (yyval.opval) = newSTATEOP(SvUTF8(((SVOP*)(ps[(1) - (2)].val.p_tkval))->op_sv), savepv(SvPVX(((SVOP*)(ps[(1) - (2)].val.p_tkval))->op_sv)), (ps[(2) - (2)].val.opval)); @@ -188,12 +188,12 @@ case 2: break; case 25: -#line 278 "perly.y" +#line 276 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 26: -#line 280 "perly.y" +#line 278 "perly.y" { (yyval.opval) = newOP(OP_NULL,0); TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'p'); @@ -201,7 +201,7 @@ case 2: break; case 27: -#line 285 "perly.y" +#line 283 "perly.y" { CV *fmtcv = PL_compcv; SvREFCNT_inc_simple_void(PL_compcv); @@ -222,7 +222,7 @@ case 2: break; case 28: -#line 303 "perly.y" +#line 301 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); #ifdef MAD @@ -246,7 +246,7 @@ case 2: break; case 29: -#line 324 "perly.y" +#line 322 "perly.y" { /* Unimplemented "my sub foo { }" */ SvREFCNT_inc_simple_void(PL_compcv); @@ -261,7 +261,7 @@ case 2: break; case 30: -#line 336 "perly.y" +#line 334 "perly.y" { #ifdef MAD (yyval.opval) = package((ps[(3) - (4)].val.opval)); @@ -279,12 +279,12 @@ case 2: break; case 31: -#line 351 "perly.y" +#line 349 "perly.y" { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;} break; case 32: -#line 353 "perly.y" +#line 351 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); #ifdef MAD @@ -302,7 +302,7 @@ case 2: break; case 33: -#line 368 "perly.y" +#line 366 "perly.y" { (yyval.opval) = block_end((ps[(3) - (7)].val.ival), newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval))); @@ -314,7 +314,7 @@ case 2: break; case 34: -#line 377 "perly.y" +#line 375 "perly.y" { (yyval.opval) = block_end((ps[(3) - (7)].val.ival), newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval))); @@ -326,7 +326,7 @@ case 2: break; case 35: -#line 386 "perly.y" +#line 384 "perly.y" { (yyval.opval) = block_end((ps[(3) - (7)].val.ival), newGIVENOP((ps[(5) - (7)].val.opval), op_scope((ps[(7) - (7)].val.opval)), (PADOFFSET)(ps[(4) - (7)].val.ival))); @@ -335,17 +335,17 @@ case 2: break; case 36: -#line 392 "perly.y" +#line 390 "perly.y" { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;} break; case 37: -#line 394 "perly.y" +#line 392 "perly.y" { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;} break; case 38: -#line 396 "perly.y" +#line 394 "perly.y" { (yyval.opval) = block_end((ps[(3) - (8)].val.ival), newWHILEOP(0, 1, (LOOP*)(OP*)NULL, @@ -358,7 +358,7 @@ case 2: break; case 39: -#line 406 "perly.y" +#line 404 "perly.y" { (yyval.opval) = block_end((ps[(3) - (8)].val.ival), newWHILEOP(0, 1, (LOOP*)(OP*)NULL, @@ -371,7 +371,7 @@ case 2: break; case 40: -#line 417 "perly.y" +#line 415 "perly.y" { OP *initop = IF_MAD((ps[(4) - (11)].val.opval) ? (ps[(4) - (11)].val.opval) : newOP(OP_NULL, 0), (ps[(4) - (11)].val.opval)); OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL, @@ -394,7 +394,7 @@ case 2: break; case 41: -#line 437 "perly.y" +#line 435 "perly.y" { (yyval.opval) = block_end((ps[(3) - (9)].val.ival), newFOROP(0, (ps[(4) - (9)].val.opval), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval))); TOKEN_GETMAD((ps[(1) - (9)].val.i_tkval),(yyval.opval),'W'); @@ -406,7 +406,7 @@ case 2: break; case 42: -#line 446 "perly.y" +#line 444 "perly.y" { (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0, op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval))); @@ -418,7 +418,7 @@ case 2: break; case 43: -#line 455 "perly.y" +#line 453 "perly.y" { (yyval.opval) = block_end((ps[(3) - (7)].val.ival), newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval))); @@ -430,7 +430,7 @@ case 2: break; case 44: -#line 464 "perly.y" +#line 462 "perly.y" { /* a block is a loop that happens once */ (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL, @@ -439,7 +439,7 @@ case 2: break; case 45: -#line 470 "perly.y" +#line 468 "perly.y" { int save_3_latefree = (ps[(3) - (5)].val.opval)->op_latefree; (ps[(3) - (5)].val.opval)->op_latefree = 1; @@ -455,7 +455,7 @@ case 2: break; case 46: -#line 483 "perly.y" +#line 481 "perly.y" { /* a block is a loop that happens once */ (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL, @@ -471,7 +471,7 @@ case 2: break; case 47: -#line 496 "perly.y" +#line 494 "perly.y" { PL_parser->expect = XSTATE; (yyval.opval) = (ps[(1) - (2)].val.opval); @@ -480,7 +480,7 @@ case 2: break; case 48: -#line 502 "perly.y" +#line 500 "perly.y" { PL_parser->expect = XSTATE; (yyval.opval) = IF_MAD(newOP(OP_NULL, 0), (OP*)NULL); @@ -490,45 +490,45 @@ case 2: break; case 49: -#line 512 "perly.y" +#line 510 "perly.y" { (yyval.opval) = (OP*)NULL; ;} break; case 50: -#line 514 "perly.y" +#line 512 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 51: -#line 516 "perly.y" +#line 514 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i'); ;} break; case 52: -#line 520 "perly.y" +#line 518 "perly.y" { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'i'); ;} break; case 53: -#line 524 "perly.y" +#line 522 "perly.y" { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w'); ;} break; case 54: -#line 528 "perly.y" +#line 526 "perly.y" { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w'); ;} break; case 55: -#line 532 "perly.y" +#line 530 "perly.y" { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'w'); PL_parser->copline = (line_t)IVAL((ps[(2) - (3)].val.i_tkval)); @@ -536,17 +536,17 @@ case 2: break; case 56: -#line 537 "perly.y" +#line 535 "perly.y" { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;} break; case 57: -#line 542 "perly.y" +#line 540 "perly.y" { (yyval.opval) = (OP*)NULL; ;} break; case 58: -#line 544 "perly.y" +#line 542 "perly.y" { ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); @@ -555,7 +555,7 @@ case 2: break; case 59: -#line 550 "perly.y" +#line 548 "perly.y" { PL_parser->copline = (line_t)IVAL((ps[(1) - (6)].val.i_tkval)); (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)), @@ -568,12 +568,12 @@ case 2: break; case 60: -#line 563 "perly.y" +#line 561 "perly.y" { (yyval.opval) = (OP*)NULL; ;} break; case 61: -#line 565 "perly.y" +#line 563 "perly.y" { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); @@ -581,74 +581,74 @@ case 2: break; case 62: -#line 573 "perly.y" +#line 571 "perly.y" { (yyval.ival) = (PL_min_intro_pending && PL_max_intro_pending >= PL_min_intro_pending); intro_my(); ;} break; case 63: -#line 579 "perly.y" +#line 577 "perly.y" { (yyval.opval) = (OP*)NULL; ;} break; case 65: -#line 585 "perly.y" +#line 583 "perly.y" { YYSTYPE tmplval; (void)scan_num("1", &tmplval); (yyval.opval) = tmplval.opval; ;} break; case 67: -#line 593 "perly.y" +#line 591 "perly.y" { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;} break; case 68: -#line 598 "perly.y" +#line 596 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;} break; case 69: -#line 602 "perly.y" +#line 600 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;} break; case 70: -#line 606 "perly.y" +#line 604 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;} break; case 71: -#line 609 "perly.y" +#line 607 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 72: -#line 610 "perly.y" +#line 608 "perly.y" { (yyval.opval) = (OP*)NULL; ;} break; case 73: -#line 614 "perly.y" +#line 612 "perly.y" { (yyval.ival) = start_subparse(FALSE, 0); SAVEFREESV(PL_compcv); ;} break; case 74: -#line 620 "perly.y" +#line 618 "perly.y" { (yyval.ival) = start_subparse(FALSE, CVf_ANON); SAVEFREESV(PL_compcv); ;} break; case 75: -#line 625 "perly.y" +#line 623 "perly.y" { (yyval.ival) = start_subparse(TRUE, 0); SAVEFREESV(PL_compcv); ;} break; case 76: -#line 630 "perly.y" +#line 628 "perly.y" { const char *const name = SvPV_nolen_const(((SVOP*)(ps[(1) - (1)].val.opval))->op_sv); if (strEQ(name, "BEGIN") || strEQ(name, "END") || strEQ(name, "INIT") || strEQ(name, "CHECK") @@ -658,24 +658,24 @@ case 2: break; case 77: -#line 640 "perly.y" +#line 638 "perly.y" { (yyval.opval) = (OP*)NULL; ;} break; case 79: -#line 646 "perly.y" +#line 644 "perly.y" { (yyval.opval) = (OP*)NULL; ;} break; case 80: -#line 648 "perly.y" +#line 646 "perly.y" { (yyval.opval) = (ps[(2) - (2)].val.opval); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':'); ;} break; case 81: -#line 652 "perly.y" +#line 650 "perly.y" { (yyval.opval) = IF_MAD( newOP(OP_NULL, 0), (OP*)NULL @@ -685,14 +685,14 @@ case 2: break; case 82: -#line 662 "perly.y" +#line 660 "perly.y" { (yyval.opval) = (ps[(2) - (2)].val.opval); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),':'); ;} break; case 83: -#line 666 "perly.y" +#line 664 "perly.y" { (yyval.opval) = IF_MAD( newOP(OP_NULL, 0), (OP*)NULL @@ -702,12 +702,12 @@ case 2: break; case 84: -#line 675 "perly.y" +#line 673 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 85: -#line 676 "perly.y" +#line 674 "perly.y" { (yyval.opval) = IF_MAD( newOP(OP_NULL,0), (OP*)NULL @@ -718,28 +718,28 @@ case 2: break; case 86: -#line 687 "perly.y" +#line 685 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 87: -#line 691 "perly.y" +#line 689 "perly.y" { (yyval.opval) = newLOGOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 88: -#line 695 "perly.y" +#line 693 "perly.y" { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 90: -#line 703 "perly.y" +#line 701 "perly.y" { #ifdef MAD OP* op = newNULLLIST(); @@ -752,7 +752,7 @@ case 2: break; case 91: -#line 713 "perly.y" +#line 711 "perly.y" { OP* term = (ps[(3) - (3)].val.opval); DO_MAD( @@ -764,7 +764,7 @@ case 2: break; case 93: -#line 726 "perly.y" +#line 724 "perly.y" { (yyval.opval) = convert(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (3)].val.i_tkval)),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) ); TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o'); @@ -772,7 +772,7 @@ case 2: break; case 94: -#line 731 "perly.y" +#line 729 "perly.y" { (yyval.opval) = convert(IVAL((ps[(1) - (5)].val.i_tkval)), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF(IVAL((ps[(1) - (5)].val.i_tkval)),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) ); TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o'); @@ -782,7 +782,7 @@ case 2: break; case 95: -#line 738 "perly.y" +#line 736 "perly.y" { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)), @@ -794,7 +794,7 @@ case 2: break; case 96: -#line 747 "perly.y" +#line 745 "perly.y" { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)), newUNOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval)))); @@ -803,7 +803,7 @@ case 2: break; case 97: -#line 753 "perly.y" +#line 751 "perly.y" { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)), @@ -812,7 +812,7 @@ case 2: break; case 98: -#line 759 "perly.y" +#line 757 "perly.y" { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)), @@ -823,14 +823,14 @@ case 2: break; case 99: -#line 767 "perly.y" +#line 765 "perly.y" { (yyval.opval) = convert(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 100: -#line 771 "perly.y" +#line 769 "perly.y" { (yyval.opval) = convert(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval)); TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o'); TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'('); @@ -839,13 +839,13 @@ case 2: break; case 101: -#line 777 "perly.y" +#line 775 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;} break; case 102: -#line 780 "perly.y" +#line 778 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval))); @@ -853,7 +853,7 @@ case 2: break; case 105: -#line 795 "perly.y" +#line 793 "perly.y" { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); PL_parser->expect = XOPERATOR; TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{'); @@ -863,7 +863,7 @@ case 2: break; case 106: -#line 802 "perly.y" +#line 800 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval))); TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'['); TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']'); @@ -871,7 +871,7 @@ case 2: break; case 107: -#line 807 "perly.y" +#line 805 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV), scalar((ps[(4) - (5)].val.opval))); @@ -882,7 +882,7 @@ case 2: break; case 108: -#line 815 "perly.y" +#line 813 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV), scalar((ps[(3) - (4)].val.opval))); @@ -892,7 +892,7 @@ case 2: break; case 109: -#line 822 "perly.y" +#line 820 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval))); PL_parser->expect = XOPERATOR; TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'{'); @@ -902,7 +902,7 @@ case 2: break; case 110: -#line 829 "perly.y" +#line 827 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV), jmaybe((ps[(4) - (6)].val.opval))); @@ -915,7 +915,7 @@ case 2: break; case 111: -#line 839 "perly.y" +#line 837 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV), jmaybe((ps[(3) - (5)].val.opval))); @@ -927,7 +927,7 @@ case 2: break; case 112: -#line 848 "perly.y" +#line 846 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'a'); @@ -937,7 +937,7 @@ case 2: break; case 113: -#line 855 "perly.y" +#line 853 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval), newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); @@ -948,7 +948,7 @@ case 2: break; case 114: -#line 864 "perly.y" +#line 862 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); @@ -958,7 +958,7 @@ case 2: break; case 115: -#line 871 "perly.y" +#line 869 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'('); @@ -967,7 +967,7 @@ case 2: break; case 116: -#line 877 "perly.y" +#line 875 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); TOKEN_GETMAD((ps[(1) - (6)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(3) - (6)].val.i_tkval),(yyval.opval),')'); @@ -977,7 +977,7 @@ case 2: break; case 117: -#line 884 "perly.y" +#line 882 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'['); TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),']'); @@ -985,7 +985,7 @@ case 2: break; case 118: -#line 889 "perly.y" +#line 887 "perly.y" { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),')'); @@ -995,21 +995,21 @@ case 2: break; case 119: -#line 899 "perly.y" +#line 897 "perly.y" { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 120: -#line 903 "perly.y" +#line 901 "perly.y" { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 121: -#line 907 "perly.y" +#line 905 "perly.y" { if (IVAL((ps[(2) - (3)].val.i_tkval)) != OP_REPEAT) scalar((ps[(1) - (3)].val.opval)); (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval))); @@ -1018,49 +1018,49 @@ case 2: break; case 122: -#line 913 "perly.y" +#line 911 "perly.y" { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 123: -#line 917 "perly.y" +#line 915 "perly.y" { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 124: -#line 921 "perly.y" +#line 919 "perly.y" { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 125: -#line 925 "perly.y" +#line 923 "perly.y" { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 126: -#line 929 "perly.y" +#line 927 "perly.y" { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 127: -#line 933 "perly.y" +#line 931 "perly.y" { (yyval.opval) = newBINOP(IVAL((ps[(2) - (3)].val.i_tkval)), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 128: -#line 937 "perly.y" +#line 935 "perly.y" { (yyval.opval) = newRANGE(IVAL((ps[(2) - (3)].val.i_tkval)), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); DO_MAD({ @@ -1075,28 +1075,28 @@ case 2: break; case 129: -#line 949 "perly.y" +#line 947 "perly.y" { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 130: -#line 953 "perly.y" +#line 951 "perly.y" { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 131: -#line 957 "perly.y" +#line 955 "perly.y" { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'o'); ;} break; case 132: -#line 961 "perly.y" +#line 959 "perly.y" { (yyval.opval) = bind_match(IVAL((ps[(2) - (3)].val.i_tkval)), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval), ((yyval.opval)->op_type == OP_NOT @@ -1106,14 +1106,14 @@ case 2: break; case 133: -#line 971 "perly.y" +#line 969 "perly.y" { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 134: -#line 975 "perly.y" +#line 973 "perly.y" { (yyval.opval) = IF_MAD( newUNOP(OP_NULL, 0, (ps[(2) - (2)].val.opval)), (ps[(2) - (2)].val.opval) @@ -1123,21 +1123,21 @@ case 2: break; case 135: -#line 982 "perly.y" +#line 980 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 136: -#line 986 "perly.y" +#line 984 "perly.y" { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 137: -#line 990 "perly.y" +#line 988 "perly.y" { (yyval.opval) = newUNOP(OP_POSTINC, 0, op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o'); @@ -1145,7 +1145,7 @@ case 2: break; case 138: -#line 995 "perly.y" +#line 993 "perly.y" { (yyval.opval) = newUNOP(OP_POSTDEC, 0, op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC)); TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),'o'); @@ -1153,7 +1153,7 @@ case 2: break; case 139: -#line 1000 "perly.y" +#line 998 "perly.y" { (yyval.opval) = newUNOP(OP_PREINC, 0, op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); @@ -1161,7 +1161,7 @@ case 2: break; case 140: -#line 1005 "perly.y" +#line 1003 "perly.y" { (yyval.opval) = newUNOP(OP_PREDEC, 0, op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); @@ -1169,7 +1169,7 @@ case 2: break; case 141: -#line 1014 "perly.y" +#line 1012 "perly.y" { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'['); TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),']'); @@ -1177,7 +1177,7 @@ case 2: break; case 142: -#line 1019 "perly.y" +#line 1017 "perly.y" { (yyval.opval) = newANONLIST((OP*)NULL); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'['); TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),']'); @@ -1185,7 +1185,7 @@ case 2: break; case 143: -#line 1024 "perly.y" +#line 1022 "perly.y" { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'{'); TOKEN_GETMAD((ps[(3) - (4)].val.i_tkval),(yyval.opval),';'); @@ -1194,7 +1194,7 @@ case 2: break; case 144: -#line 1030 "perly.y" +#line 1028 "perly.y" { (yyval.opval) = newANONHASH((OP*)NULL); TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'{'); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),';'); @@ -1203,7 +1203,7 @@ case 2: break; case 145: -#line 1036 "perly.y" +#line 1034 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); TOKEN_GETMAD((ps[(1) - (5)].val.i_tkval),(yyval.opval),'o'); @@ -1213,21 +1213,21 @@ case 2: break; case 146: -#line 1047 "perly.y" +#line 1045 "perly.y" { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), IVAL((ps[(1) - (2)].val.i_tkval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 147: -#line 1051 "perly.y" +#line 1049 "perly.y" { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'D'); ;} break; case 148: -#line 1055 "perly.y" +#line 1053 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, op_prepend_elem(OP_LIST, @@ -1242,7 +1242,7 @@ case 2: break; case 149: -#line 1067 "perly.y" +#line 1065 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, op_append_elem(OP_LIST, @@ -1258,7 +1258,7 @@ case 2: break; case 150: -#line 1080 "perly.y" +#line 1078 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, op_prepend_elem(OP_LIST, scalar(newCVREF(0,scalar((ps[(2) - (4)].val.opval)))), (OP*)NULL)); dep(); @@ -1269,7 +1269,7 @@ case 2: break; case 151: -#line 1088 "perly.y" +#line 1086 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), @@ -1281,7 +1281,7 @@ case 2: break; case 156: -#line 1104 "perly.y" +#line 1102 "perly.y" { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); TOKEN_GETMAD((ps[(2) - (5)].val.i_tkval),(yyval.opval),'?'); TOKEN_GETMAD((ps[(4) - (5)].val.i_tkval),(yyval.opval),':'); @@ -1289,26 +1289,26 @@ case 2: break; case 157: -#line 1109 "perly.y" +#line 1107 "perly.y" { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 158: -#line 1113 "perly.y" +#line 1111 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 159: -#line 1115 "perly.y" +#line 1113 "perly.y" { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'k'); ;} break; case 160: -#line 1119 "perly.y" +#line 1117 "perly.y" { (yyval.opval) = sawparens(IF_MAD(newUNOP(OP_NULL,0,(ps[(2) - (3)].val.opval)), (ps[(2) - (3)].val.opval))); TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')'); @@ -1316,12 +1316,12 @@ case 2: break; case 161: -#line 1124 "perly.y" +#line 1122 "perly.y" { (yyval.opval) = IF_MAD(newUNOP(OP_NULL,0,(ps[(1) - (1)].val.opval)), (ps[(1) - (1)].val.opval)); ;} break; case 162: -#line 1126 "perly.y" +#line 1124 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')'); @@ -1329,37 +1329,37 @@ case 2: break; case 163: -#line 1131 "perly.y" +#line 1129 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 164: -#line 1133 "perly.y" +#line 1131 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 165: -#line 1135 "perly.y" +#line 1133 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 166: -#line 1137 "perly.y" +#line 1135 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 167: -#line 1139 "perly.y" +#line 1137 "perly.y" { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;} break; case 168: -#line 1141 "perly.y" +#line 1139 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 169: -#line 1143 "perly.y" +#line 1141 "perly.y" { (yyval.opval) = op_prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -1371,7 +1371,7 @@ case 2: break; case 170: -#line 1152 "perly.y" +#line 1150 "perly.y" { (yyval.opval) = op_prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -1385,17 +1385,17 @@ case 2: break; case 171: -#line 1163 "perly.y" +#line 1161 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 172: -#line 1165 "perly.y" +#line 1163 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;} break; case 173: -#line 1167 "perly.y" +#line 1165 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval))); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')'); @@ -1403,7 +1403,7 @@ case 2: break; case 174: -#line 1172 "perly.y" +#line 1170 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval)))); @@ -1419,7 +1419,7 @@ case 2: break; case 175: -#line 1185 "perly.y" +#line 1183 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval)))); TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o'); @@ -1427,7 +1427,7 @@ case 2: break; case 176: -#line 1190 "perly.y" +#line 1188 "perly.y" { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), OPf_SPECIAL); PL_hints |= HINT_BLOCK_SCOPE; TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o'); @@ -1435,74 +1435,74 @@ case 2: break; case 177: -#line 1195 "perly.y" +#line 1193 "perly.y" { (yyval.opval) = newLOOPEX(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 178: -#line 1199 "perly.y" +#line 1197 "perly.y" { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 179: -#line 1203 "perly.y" +#line 1201 "perly.y" { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0); TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o'); ;} break; case 180: -#line 1207 "perly.y" +#line 1205 "perly.y" { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 181: -#line 1211 "perly.y" +#line 1209 "perly.y" { (yyval.opval) = newUNOP(IVAL((ps[(1) - (2)].val.i_tkval)), 0, (ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 182: -#line 1215 "perly.y" +#line 1213 "perly.y" { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.i_tkval) ? OPf_SPECIAL : 0); TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o'); ;} break; case 183: -#line 1219 "perly.y" +#line 1217 "perly.y" { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.i_tkval) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'o'); ;} break; case 184: -#line 1223 "perly.y" +#line 1221 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;} break; case 185: -#line 1225 "perly.y" +#line 1223 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;} break; case 186: -#line 1228 "perly.y" +#line 1226 "perly.y" { (yyval.opval) = newOP(IVAL((ps[(1) - (1)].val.i_tkval)), 0); TOKEN_GETMAD((ps[(1) - (1)].val.i_tkval),(yyval.opval),'o'); ;} break; case 187: -#line 1232 "perly.y" +#line 1230 "perly.y" { (yyval.opval) = newOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0); TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'o'); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'('); @@ -1511,12 +1511,12 @@ case 2: break; case 188: -#line 1238 "perly.y" +#line 1236 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 189: -#line 1240 "perly.y" +#line 1238 "perly.y" { (yyval.opval) = (ps[(1) - (3)].val.opval); TOKEN_GETMAD((ps[(2) - (3)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')'); @@ -1524,13 +1524,13 @@ case 2: break; case 190: -#line 1245 "perly.y" +#line 1243 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;} break; case 191: -#line 1248 "perly.y" +#line 1246 "perly.y" { (yyval.opval) = (IVAL((ps[(1) - (3)].val.i_tkval)) == OP_NOT) ? newUNOP(IVAL((ps[(1) - (3)].val.i_tkval)), 0, newSVOP(OP_CONST, 0, newSViv(0))) : newOP(IVAL((ps[(1) - (3)].val.i_tkval)), OPf_SPECIAL); @@ -1542,7 +1542,7 @@ case 2: break; case 192: -#line 1257 "perly.y" +#line 1255 "perly.y" { (yyval.opval) = newUNOP(IVAL((ps[(1) - (4)].val.i_tkval)), 0, (ps[(3) - (4)].val.opval)); TOKEN_GETMAD((ps[(1) - (4)].val.i_tkval),(yyval.opval),'o'); TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'('); @@ -1551,7 +1551,7 @@ case 2: break; case 193: -#line 1263 "perly.y" +#line 1261 "perly.y" { (yyval.opval) = pmruntime((ps[(1) - (4)].val.opval), (ps[(3) - (4)].val.opval), 1); TOKEN_GETMAD((ps[(2) - (4)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(4) - (4)].val.i_tkval),(yyval.opval),')'); @@ -1559,7 +1559,7 @@ case 2: break; case 196: -#line 1270 "perly.y" +#line 1268 "perly.y" { (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); @@ -1568,7 +1568,7 @@ case 2: break; case 198: -#line 1280 "perly.y" +#line 1278 "perly.y" { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); DO_MAD( token_getmad((ps[(1) - (3)].val.i_tkval),(yyval.opval),'d'); @@ -1579,14 +1579,14 @@ case 2: break; case 199: -#line 1288 "perly.y" +#line 1286 "perly.y" { (yyval.opval) = localize((ps[(2) - (2)].val.opval),IVAL((ps[(1) - (2)].val.i_tkval))); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'d'); ;} break; case 200: -#line 1295 "perly.y" +#line 1293 "perly.y" { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); TOKEN_GETMAD((ps[(1) - (3)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(3) - (3)].val.i_tkval),(yyval.opval),')'); @@ -1594,7 +1594,7 @@ case 2: break; case 201: -#line 1300 "perly.y" +#line 1298 "perly.y" { (yyval.opval) = sawparens(newNULLLIST()); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'('); TOKEN_GETMAD((ps[(2) - (2)].val.i_tkval),(yyval.opval),')'); @@ -1602,129 +1602,111 @@ case 2: break; case 202: -#line 1305 "perly.y" +#line 1303 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 203: -#line 1307 "perly.y" +#line 1305 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 204: -#line 1309 "perly.y" +#line 1307 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 205: -#line 1314 "perly.y" +#line 1312 "perly.y" { (yyval.opval) = (OP*)NULL; ;} break; case 206: -#line 1316 "perly.y" +#line 1314 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 207: -#line 1320 "perly.y" +#line 1318 "perly.y" { (yyval.opval) = (OP*)NULL; ;} break; case 208: -#line 1322 "perly.y" +#line 1320 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 209: #line 1326 "perly.y" - { (yyval.i_tkval) = (ps[(1) - (1)].val.i_tkval); ;} + { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;} break; case 210: -#line 1328 "perly.y" - { munge_qwlist_to_paren_list((ps[(1) - (1)].val.opval)); ;} - break; - - case 211: #line 1330 "perly.y" - { (yyval.i_tkval) = (ps[(3) - (3)].val.i_tkval); ;} - break; - - case 212: -#line 1336 "perly.y" - { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;} - break; - - case 213: -#line 1340 "perly.y" { (yyval.opval) = newCVREF(IVAL((ps[(1) - (2)].val.i_tkval)),(ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'&'); ;} break; - case 214: -#line 1346 "perly.y" + case 211: +#line 1336 "perly.y" { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'$'); ;} break; - case 215: -#line 1352 "perly.y" + case 212: +#line 1342 "perly.y" { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'@'); ;} break; - case 216: -#line 1358 "perly.y" + case 213: +#line 1348 "perly.y" { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'%'); ;} break; - case 217: -#line 1364 "perly.y" + case 214: +#line 1354 "perly.y" { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'l'); ;} break; - case 218: -#line 1370 "perly.y" + case 215: +#line 1360 "perly.y" { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); TOKEN_GETMAD((ps[(1) - (2)].val.i_tkval),(yyval.opval),'*'); ;} break; - case 219: -#line 1377 "perly.y" + case 216: +#line 1367 "perly.y" { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;} break; - case 220: -#line 1379 "perly.y" + case 217: +#line 1369 "perly.y" { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;} break; - case 221: -#line 1381 "perly.y" + case 218: +#line 1371 "perly.y" { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;} break; - case 222: -#line 1384 "perly.y" + case 219: +#line 1374 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - -/* Line 1267 of yacc.c. */ - default: break; /* Generated from: - * 047d7d5048e78a17bc586b7bb9a0f0e9dedd5cd43b30e486482b1ff8f955ddcb perly.y + * ff01d43de6f749eba3bfeffd39928772fe7e1bebe039506b8465c05941209aa8 perly.y * 53f57d7143a42b3c008841a14d158bcf9cab64b2904b07ef5e95051fe9a8a875 regen_perly.pl * ex: set ro: */ @@ -5,27 +5,26 @@ */ #ifdef PERL_CORE -/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* A Bison parser, made by GNU Bison 2.4.1. */ - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify + + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. */ + along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -36,10 +35,11 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ + /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -127,6 +127,7 @@ PEG = 336 }; #endif + /* Tokens. */ #define GRAMPROG 258 #define GRAMEXPR 259 @@ -210,11 +211,13 @@ - #endif /* PERL_CORE */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { + +/* Line 1676 of yacc.c */ + I32 ival; /* __DEFAULT__ (marker for regen_perly.pl; must always be 1st union member) */ char *pval; @@ -230,18 +233,21 @@ typedef union YYSTYPE #ifdef PERL_MAD TOKEN* tkval; #endif -} -/* Line 1529 of yacc.c. */ - YYSTYPE; + + + +/* Line 1676 of yacc.c */ +} YYSTYPE; +# define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 -# define YYSTYPE_IS_TRIVIAL 1 #endif + /* Generated from: - * 047d7d5048e78a17bc586b7bb9a0f0e9dedd5cd43b30e486482b1ff8f955ddcb perly.y + * ff01d43de6f749eba3bfeffd39928772fe7e1bebe039506b8465c05941209aa8 perly.y * 53f57d7143a42b3c008841a14d158bcf9cab64b2904b07ef5e95051fe9a8a875 regen_perly.pl * ex: set ro: */ @@ -11,11 +11,11 @@ /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 101 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 63 +#define YYNNTS 61 /* YYNRULES -- Number of rules. */ -#define YYNRULES 222 +#define YYNRULES 219 /* YYNRULES -- Number of states. */ -#define YYNSTATES 449 +#define YYNSTATES 445 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -89,8 +89,7 @@ static const yytype_uint16 yyprhs[] = 654, 657, 660, 662, 665, 667, 670, 672, 676, 678, 682, 684, 688, 693, 698, 700, 702, 704, 706, 710, 713, 717, 720, 722, 724, 726, 727, 729, 730, 732, - 734, 735, 739, 741, 744, 747, 750, 753, 756, 759, - 761, 763, 765 + 734, 737, 740, 743, 746, 749, 752, 754, 756, 758 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -105,40 +104,40 @@ static const yytype_int16 yyrhs[] = -1, 33, -1, 100, -1, 35, 133, 130, 109, -1, 36, 131, 134, 135, 136, 138, -1, 69, 131, 134, 135, 136, 138, -1, 38, 21, 21, 20, -1, -1, - 39, 131, 118, 21, 21, 152, 20, -1, 42, 154, - 110, 127, 98, 112, 121, -1, 43, 154, 110, 129, - 98, 112, 121, -1, 48, 154, 110, 111, 127, 98, - 112, -1, 49, 154, 110, 127, 98, 112, -1, 50, - 109, -1, 40, 154, 110, 125, 98, 123, 112, 122, - -1, 41, 154, 110, 126, 98, 123, 112, 122, -1, - 47, 154, 110, 128, 20, 125, 20, 123, 128, 98, - 112, -1, 47, 68, 110, 156, 154, 127, 98, 112, - 122, -1, 47, 158, 154, 110, 127, 98, 112, 122, - -1, 47, 154, 110, 127, 98, 112, 122, -1, 109, + 39, 131, 118, 21, 21, 152, 20, -1, 42, 99, + 110, 127, 98, 112, 121, -1, 43, 99, 110, 129, + 98, 112, 121, -1, 48, 99, 110, 111, 127, 98, + 112, -1, 49, 99, 110, 127, 98, 112, -1, 50, + 109, -1, 40, 99, 110, 125, 98, 123, 112, 122, + -1, 41, 99, 110, 126, 98, 123, 112, 122, -1, + 47, 99, 110, 128, 20, 125, 20, 123, 128, 98, + 112, -1, 47, 68, 110, 154, 99, 127, 98, 112, + 122, -1, 47, 156, 99, 110, 127, 98, 112, 122, + -1, 47, 99, 110, 127, 98, 112, 122, -1, 109, 122, -1, -1, 38, 21, 21, 9, 110, 119, 114, 10, -1, 120, 20, -1, 20, -1, 1, -1, 139, -1, 139, 42, 139, -1, 139, 43, 139, -1, 139, 40, 139, -1, 139, 41, 126, -1, 139, 47, 139, -1, 139, 49, 139, -1, -1, 44, 112, -1, 45, - 154, 127, 98, 112, 121, -1, -1, 46, 109, -1, + 99, 127, 98, 112, 121, -1, -1, 46, 109, -1, -1, -1, 120, -1, -1, 139, -1, 139, -1, 139, -1, 124, -1, 126, -1, 21, -1, -1, -1, -1, -1, 21, -1, -1, 24, -1, -1, 71, 24, -1, 71, -1, 71, 24, -1, 71, -1, 109, -1, 20, -1, 139, 75, 139, -1, 139, 74, 139, -1, 139, 73, 139, -1, 140, -1, 140, 77, -1, 140, 77, - 149, -1, 149, -1, 58, 163, 140, -1, 56, 99, - 163, 139, 98, -1, 149, 97, 143, 154, 153, 98, - -1, 149, 97, 143, -1, 22, 163, 152, -1, 23, - 163, 99, 153, 98, -1, 58, 152, -1, 56, 99, + 149, -1, 149, -1, 58, 161, 140, -1, 56, 99, + 161, 139, 98, -1, 149, 97, 143, 99, 153, 98, + -1, 149, 97, 143, -1, 22, 161, 152, -1, 23, + 161, 99, 153, 98, -1, 58, 152, -1, 56, 99, 153, 98, -1, -1, 31, 132, 109, 142, 152, -1, - 22, -1, 158, -1, 162, 9, 139, 20, 10, -1, - 158, 11, 139, 12, -1, 149, 97, 11, 139, 12, - -1, 144, 11, 139, 12, -1, 158, 9, 139, 20, + 22, -1, 156, -1, 160, 9, 139, 20, 10, -1, + 156, 11, 139, 12, -1, 149, 97, 11, 139, 12, + -1, 144, 11, 139, 12, -1, 156, 9, 139, 20, 10, -1, 149, 97, 9, 139, 20, 10, -1, 144, 9, 139, 20, 10, -1, 149, 97, 99, 98, -1, - 149, 97, 99, 139, 98, -1, 144, 154, 139, 98, - -1, 144, 154, 98, -1, 99, 139, 98, 11, 139, + 149, 97, 99, 139, 98, -1, 144, 99, 139, 98, + -1, 144, 99, 98, -1, 99, 139, 98, 11, 139, 12, -1, 27, 11, 139, 12, -1, 99, 98, 11, 139, 12, -1, 149, 78, 149, -1, 149, 92, 149, -1, 149, 61, 149, -1, 149, 62, 149, -1, 149, @@ -151,15 +150,15 @@ static const yytype_int16 yyrhs[] = 95, 149, -1, 11, 139, 12, -1, 11, 12, -1, 65, 139, 20, 10, -1, 65, 20, 10, -1, 37, 132, 135, 136, 109, -1, 64, 149, -1, 64, 109, - -1, 64, 21, 154, 98, -1, 64, 21, 154, 139, - 98, -1, 64, 158, 154, 98, -1, 64, 158, 154, + -1, 64, 21, 99, 98, -1, 64, 21, 99, 139, + 98, -1, 64, 156, 99, 98, -1, 64, 156, 99, 139, 98, -1, 145, -1, 146, -1, 147, -1, 148, -1, 149, 79, 149, 80, 149, -1, 90, 149, -1, 150, -1, 67, 149, -1, 99, 139, 98, -1, 27, - -1, 99, 98, -1, 158, -1, 162, -1, 160, -1, - 159, -1, 161, -1, 144, -1, 159, 11, 139, 12, - -1, 159, 9, 139, 20, 10, -1, 24, -1, 157, - -1, 157, 154, 98, -1, 157, 154, 139, 98, -1, + -1, 99, 98, -1, 156, -1, 160, -1, 158, -1, + 157, -1, 159, -1, 144, -1, 157, 11, 139, 12, + -1, 157, 9, 139, 20, 10, -1, 24, -1, 155, + -1, 155, 99, 98, -1, 155, 99, 139, 98, -1, 66, 21, 152, -1, 51, -1, 51, 149, -1, 76, 140, -1, 57, -1, 57, 109, -1, 57, 149, -1, 70, -1, 70, 149, -1, 30, -1, 30, 149, -1, @@ -168,39 +167,37 @@ static const yytype_int16 yyrhs[] = 139, 98, -1, 25, 99, 140, 98, -1, 21, -1, 141, -1, 53, -1, 32, -1, 68, 151, 137, -1, 68, 151, -1, 99, 139, 98, -1, 99, 98, -1, - 158, -1, 160, -1, 159, -1, -1, 140, -1, -1, - 139, -1, 99, -1, -1, 27, 155, 99, -1, 158, - -1, 19, 163, -1, 15, 163, -1, 16, 163, -1, - 17, 163, -1, 63, 163, -1, 18, 163, -1, 21, - -1, 158, -1, 109, -1, 26, -1 + 156, -1, 158, -1, 157, -1, -1, 140, -1, -1, + 139, -1, 156, -1, 19, 161, -1, 15, 161, -1, + 16, 161, -1, 17, 161, -1, 63, 161, -1, 18, + 161, -1, 21, -1, 156, -1, 109, -1, 26, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 142, 142, 141, 151, 150, 160, 159, 172, 171, - 184, 183, 196, 195, 207, 217, 221, 224, 234, 239, - 240, 249, 257, 261, 268, 277, 279, 284, 302, 323, - 335, 351, 350, 367, 376, 385, 391, 393, 395, 405, - 415, 436, 445, 454, 463, 470, 469, 495, 501, 511, - 513, 515, 519, 523, 527, 531, 536, 542, 543, 549, - 563, 564, 573, 579, 580, 585, 588, 592, 597, 601, - 605, 609, 610, 614, 620, 625, 630, 640, 641, 646, - 647, 651, 661, 665, 675, 676, 686, 690, 694, 698, - 702, 712, 721, 725, 730, 737, 746, 752, 758, 766, - 770, 777, 776, 787, 788, 792, 801, 806, 814, 821, - 828, 838, 847, 854, 863, 870, 876, 883, 888, 898, - 902, 906, 912, 916, 920, 924, 928, 932, 936, 948, - 952, 956, 960, 970, 974, 981, 985, 989, 994, 999, - 1004, 1013, 1018, 1023, 1029, 1035, 1046, 1050, 1054, 1066, - 1079, 1087, 1099, 1100, 1101, 1102, 1103, 1108, 1112, 1114, - 1118, 1123, 1125, 1130, 1132, 1134, 1136, 1138, 1140, 1142, - 1151, 1162, 1164, 1166, 1171, 1184, 1189, 1194, 1198, 1202, - 1206, 1210, 1214, 1218, 1222, 1224, 1227, 1231, 1237, 1239, - 1244, 1247, 1256, 1262, 1267, 1268, 1269, 1275, 1279, 1287, - 1294, 1299, 1304, 1306, 1308, 1313, 1315, 1320, 1321, 1325, - 1328, 1327, 1335, 1339, 1345, 1351, 1357, 1363, 1369, 1376, - 1378, 1380, 1383 + 0, 140, 140, 139, 149, 148, 158, 157, 170, 169, + 182, 181, 194, 193, 205, 215, 219, 222, 232, 237, + 238, 247, 255, 259, 266, 275, 277, 282, 300, 321, + 333, 349, 348, 365, 374, 383, 389, 391, 393, 403, + 413, 434, 443, 452, 461, 468, 467, 493, 499, 509, + 511, 513, 517, 521, 525, 529, 534, 540, 541, 547, + 561, 562, 571, 577, 578, 583, 586, 590, 595, 599, + 603, 607, 608, 612, 618, 623, 628, 638, 639, 644, + 645, 649, 659, 663, 673, 674, 684, 688, 692, 696, + 700, 710, 719, 723, 728, 735, 744, 750, 756, 764, + 768, 775, 774, 785, 786, 790, 799, 804, 812, 819, + 826, 836, 845, 852, 861, 868, 874, 881, 886, 896, + 900, 904, 910, 914, 918, 922, 926, 930, 934, 946, + 950, 954, 958, 968, 972, 979, 983, 987, 992, 997, + 1002, 1011, 1016, 1021, 1027, 1033, 1044, 1048, 1052, 1064, + 1077, 1085, 1097, 1098, 1099, 1100, 1101, 1106, 1110, 1112, + 1116, 1121, 1123, 1128, 1130, 1132, 1134, 1136, 1138, 1140, + 1149, 1160, 1162, 1164, 1169, 1182, 1187, 1192, 1196, 1200, + 1204, 1208, 1212, 1216, 1220, 1222, 1225, 1229, 1235, 1237, + 1242, 1245, 1254, 1260, 1265, 1266, 1267, 1273, 1277, 1285, + 1292, 1297, 1302, 1304, 1306, 1311, 1313, 1318, 1319, 1325, + 1329, 1335, 1341, 1347, 1353, 1359, 1366, 1368, 1370, 1373 }; #endif @@ -223,16 +220,15 @@ static const char *const yytname[] = "':'", "DORDOR", "OROR", "ANDAND", "BITOROP", "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "REFGEN", "UMINUS", "POWOP", "POSTDEC", "POSTINC", "PREDEC", "PREINC", "ARROW", "')'", "'('", "PEG", "$accept", - "grammar", "@1", "@2", "@3", "@4", "@5", "@6", "block", "remember", + "grammar", "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "block", "remember", "mydefsv", "mblock", "mremember", "stmtseq", "fullstmt", "labfullstmt", - "barestmt", "@7", "@8", "sideff", "else", "cont", "mintro", "nexpr", + "barestmt", "$@7", "$@8", "sideff", "else", "cont", "mintro", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "miexpr", "formname", "startsub", "startanonsub", "startformsub", "subname", "proto", "subattrlist", "myattrlist", "subbody", "expr", "listexpr", "listop", "@9", "method", "subscripted", "termbinop", "termunop", "anonymous", "termdo", "term", - "myattrterm", "myterm", "optlistexpr", "optexpr", "lpar_or_qw", "@10", - "my_scalar", "amper", "scalar", "ary", "hsh", "arylen", "star", - "indirob", 0 + "myattrterm", "myterm", "optlistexpr", "optexpr", "my_scalar", "amper", + "scalar", "ary", "hsh", "arylen", "star", "indirob", 0 }; #endif @@ -279,8 +275,7 @@ static const yytype_uint8 yyr1[] = 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 150, 150, 151, 151, 151, 151, 151, 152, 152, 153, 153, 154, - 155, 154, 156, 157, 158, 159, 160, 161, 162, 163, - 163, 163, 163 + 155, 156, 157, 158, 159, 160, 161, 161, 161, 161 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -307,8 +302,7 @@ static const yytype_uint8 yyr2[] = 2, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 4, 4, 1, 1, 1, 1, 3, 2, 3, 2, 1, 1, 1, 0, 1, 0, 1, 1, - 0, 3, 1, 2, 2, 2, 2, 2, 2, 1, - 1, 1, 1 + 2, 2, 2, 2, 2, 2, 1, 1, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -326,117 +320,117 @@ static const yytype_uint8 yydefact[] = 166, 165, 167, 164, 15, 7, 49, 48, 25, 75, 73, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 73, 26, 60, 9, 0, 50, 0, 11, 22, - 21, 0, 0, 142, 0, 133, 134, 219, 222, 221, - 220, 214, 215, 216, 218, 213, 205, 0, 0, 0, + 21, 0, 0, 142, 0, 133, 134, 216, 219, 218, + 217, 211, 212, 213, 215, 210, 205, 0, 0, 0, 0, 185, 0, 77, 177, 0, 0, 207, 180, 181, - 219, 206, 99, 220, 0, 217, 194, 147, 146, 163, + 216, 206, 99, 217, 0, 214, 194, 147, 146, 163, 0, 0, 205, 159, 0, 199, 202, 204, 203, 183, 178, 135, 136, 157, 140, 139, 162, 0, 0, 0, - 0, 90, 0, 0, 210, 209, 0, 0, 0, 0, + 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 138, 137, 0, 0, 0, 0, 0, 0, - 0, 19, 72, 0, 0, 31, 15, 15, 15, 15, - 15, 15, 0, 15, 15, 37, 0, 0, 44, 47, - 0, 0, 0, 0, 0, 0, 24, 23, 20, 141, - 97, 207, 0, 0, 189, 101, 78, 79, 187, 191, - 0, 0, 0, 93, 0, 0, 144, 0, 175, 201, - 0, 83, 198, 0, 160, 88, 87, 86, 91, 0, - 0, 0, 115, 0, 128, 124, 125, 121, 122, 119, - 0, 131, 130, 129, 127, 126, 123, 132, 120, 0, - 0, 103, 0, 96, 104, 173, 0, 0, 0, 0, - 0, 0, 0, 71, 0, 76, 77, 0, 0, 65, - 0, 0, 0, 0, 0, 15, 16, 0, 77, 61, - 53, 54, 67, 51, 52, 55, 56, 0, 193, 117, - 205, 81, 0, 192, 100, 0, 148, 0, 150, 0, - 143, 200, 82, 0, 0, 0, 108, 211, 114, 0, - 0, 0, 112, 0, 207, 174, 0, 106, 0, 169, - 0, 14, 27, 79, 15, 30, 0, 0, 66, 0, - 0, 68, 70, 0, 0, 212, 64, 69, 0, 0, - 50, 0, 0, 0, 79, 98, 102, 80, 145, 94, - 149, 151, 118, 0, 111, 156, 0, 107, 113, 0, - 109, 170, 105, 0, 45, 205, 62, 62, 0, 0, - 0, 0, 65, 0, 0, 0, 0, 116, 110, 95, - 85, 84, 28, 19, 0, 0, 0, 18, 57, 57, - 0, 60, 0, 0, 0, 36, 29, 0, 32, 60, - 60, 19, 0, 0, 33, 34, 0, 43, 62, 60, - 35, 46, 38, 39, 0, 58, 0, 60, 0, 42, - 17, 0, 41, 0, 0, 0, 57, 40, 59 + 138, 137, 0, 0, 0, 0, 0, 0, 0, 19, + 72, 0, 0, 31, 15, 15, 15, 15, 15, 15, + 0, 15, 15, 37, 0, 0, 44, 47, 0, 0, + 0, 0, 0, 0, 24, 23, 20, 141, 97, 207, + 0, 0, 189, 101, 78, 79, 187, 191, 0, 0, + 0, 93, 0, 0, 144, 0, 175, 201, 0, 83, + 198, 0, 160, 88, 87, 86, 91, 0, 0, 115, + 0, 128, 124, 125, 121, 122, 119, 0, 131, 130, + 129, 127, 126, 123, 132, 120, 0, 0, 103, 0, + 96, 104, 173, 0, 0, 0, 0, 0, 0, 0, + 71, 0, 76, 77, 0, 0, 65, 0, 0, 0, + 0, 0, 15, 16, 0, 77, 61, 53, 54, 67, + 51, 52, 55, 56, 0, 193, 117, 205, 81, 0, + 192, 100, 0, 148, 0, 150, 0, 143, 200, 82, + 0, 0, 0, 108, 114, 0, 0, 0, 112, 0, + 207, 174, 0, 106, 0, 169, 0, 14, 27, 79, + 15, 30, 0, 0, 66, 0, 0, 68, 70, 0, + 0, 209, 64, 69, 0, 0, 50, 0, 0, 0, + 79, 98, 102, 80, 145, 94, 149, 151, 118, 0, + 111, 156, 0, 107, 113, 0, 109, 170, 105, 0, + 45, 205, 62, 62, 0, 0, 0, 0, 65, 0, + 0, 0, 0, 116, 110, 95, 85, 84, 28, 19, + 0, 0, 0, 18, 57, 57, 0, 60, 0, 0, + 0, 36, 29, 0, 32, 60, 60, 19, 0, 0, + 33, 34, 0, 43, 62, 60, 35, 46, 38, 39, + 0, 58, 0, 60, 0, 42, 17, 0, 41, 0, + 0, 0, 57, 40, 59 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 7, 8, 9, 10, 11, 12, 13, 109, 15, - 362, 408, 421, 101, 218, 99, 100, 288, 403, 95, - 424, 208, 405, 357, 347, 301, 350, 359, 353, 284, - 193, 122, 192, 286, 227, 312, 242, 402, 96, 58, - 59, 310, 273, 60, 61, 62, 63, 64, 65, 66, - 145, 132, 67, 166, 251, 354, 68, 69, 70, 71, - 72, 73, 111 + 358, 404, 417, 101, 216, 99, 100, 285, 399, 95, + 420, 206, 401, 353, 343, 298, 346, 355, 349, 281, + 191, 122, 190, 283, 225, 309, 240, 398, 96, 58, + 59, 307, 270, 60, 61, 62, 63, 64, 65, 66, + 145, 132, 67, 350, 68, 69, 70, 71, 72, 73, + 111 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -394 +#define YYPACT_NINF -353 static const yytype_int16 yypact[] = { - 683, -394, -394, -394, -394, -394, -394, 6, -394, 2536, - 16, 977, 885, -394, -394, -394, 1650, 2536, 2536, 220, - 220, 220, 220, 220, -394, 220, 220, -394, -97, 52, - -26, -394, 2536, -394, -394, -394, 2536, -394, -16, -2, - 10, 1472, 1383, 220, 1561, 1737, 13, 2536, 23, 2536, - 2536, 2536, 2536, 2536, 2536, 2536, 1824, 115, 39, -394, - 61, -394, -394, -394, -394, 2597, -394, -394, -12, 80, - 127, -394, -394, 111, -394, -394, -394, -394, -394, -394, - -394, 124, -394, -12, -12, -12, -12, 27, -12, -12, - 16, -394, -394, 102, -394, 132, 1559, 885, -394, -394, - -394, 424, 517, -394, 32, 681, 681, -394, -394, -394, - -394, -394, -394, -394, -394, -394, 2536, 59, 2536, 2536, - 64, 300, 16, 158, 2597, 85, 1913, 1383, -394, 300, - 1293, 39, -394, 1217, 2536, -394, -12, -394, 300, 73, - 185, 91, 2536, 300, 2002, 125, -394, -394, -394, 300, - 39, 681, 681, 681, 237, 237, 186, 112, 2536, 2536, - 2536, 2536, 2536, 2536, -394, -394, 2091, 2536, 2536, 2536, + 591, -353, -353, -353, -353, -353, -353, 25, -353, 2536, + 45, 977, 885, -353, -353, -353, 1650, 2536, 2536, 65, + 65, 65, 65, 65, -353, 65, 65, -353, -54, 105, + 3, -353, 2536, -353, -353, -353, 2536, -353, 9, 24, + 31, 1472, 1383, 65, 1561, 1737, 115, 2536, 23, 2536, + 2536, 2536, 2536, 2536, 2536, 2536, 1824, 91, 71, -353, + 6, -353, -353, -353, -353, 2597, -353, -353, 53, 62, + 89, -353, -353, 147, -353, -353, -353, -353, -353, -353, + -353, 159, -353, 93, 106, 110, 114, 8, 123, 126, + 45, -353, -353, 142, -353, 170, 355, 885, -353, -353, + -353, 425, 517, -353, -10, 162, 162, -353, -353, -353, + -353, -353, -353, -353, -353, -353, 2536, 130, 2536, 2536, + 133, 1188, 45, 210, 2597, 139, 1913, 1383, -353, 1188, + 1293, 71, -353, 1217, 2536, -353, 140, -353, 1188, 13, + 230, 14, 2536, 1188, 2002, 173, -353, -353, -353, 1188, + 71, 162, 162, 162, 101, 101, 253, 46, 2536, 2536, + 2536, 2536, 2536, 2536, 2091, 2536, 2536, 2536, 2536, 2536, 2536, 2536, 2536, 2536, 2536, 2536, 2536, 2536, 2536, 2536, - 2536, 2536, -394, -394, 26, 2180, 2536, 2536, 2536, 2536, - 2536, -394, 177, 194, 195, -394, -394, -394, -394, -394, - -394, -394, -12, -394, -394, -394, 194, 16, -394, -394, - 2536, 2536, 2536, 2536, 2536, 2536, -394, -394, -394, -394, - -394, 2536, -17, 40, -394, -394, -394, 156, -394, -394, - 228, 133, 2536, 39, 2269, 2358, -394, 223, -394, -394, - 281, 206, -394, 2536, 225, 167, 167, -394, 2597, 180, - 54, 145, -394, 330, 2675, 246, 329, 505, 409, 2597, - 2558, 1055, 1055, 1264, 1369, 1457, 1013, 681, 681, 2536, - 2536, -394, 2447, -12, -394, -394, 333, 204, 96, 219, - 100, 238, 609, -394, 16, -394, 158, 60, 231, 2536, - 2536, 2536, 2536, 241, 1067, -394, -394, 2536, 158, -394, - 115, -394, 115, 115, 115, 115, 115, 159, -394, -394, - 2536, 235, 16, -394, -394, 336, -394, 410, -394, 503, - -394, -394, -394, 119, 2536, 252, -394, -394, -394, 2536, - 275, 144, -394, 516, 2536, -394, 258, -394, 260, -394, - 262, -394, -394, 156, -394, -394, 254, 178, 115, 192, - 193, 115, -394, 198, -12, -394, -394, -394, 218, 299, - 224, 2536, 2536, 226, 156, -394, -394, -394, -394, -394, - -394, -394, -394, 147, -394, 2636, 313, -394, -394, 244, - -394, -394, -394, 110, -394, 2536, -394, -394, 327, 327, - 2536, 327, 2536, 247, 248, 327, 110, -394, -394, -394, - -394, -394, -394, -394, 331, 327, 327, -394, 123, 123, - 249, 102, 358, 327, 327, -394, -394, 701, -394, 102, - 102, -394, 327, -12, -394, -394, 327, -394, -394, 102, - -394, -394, -394, -394, 793, -394, 2536, 102, 1157, -394, - -394, 282, -394, 284, 327, 327, 123, -394, -394 + -353, -353, 26, 2180, 2536, 2536, 2536, 2536, 2536, -353, + 232, 244, 246, -353, -353, -353, -353, -353, -353, -353, + 169, -353, -353, -353, 244, 45, -353, -353, 2536, 2536, + 2536, 2536, 2536, 2536, -353, -353, -353, -353, -353, 2536, + -17, -6, -353, -353, -353, 198, -353, -353, 219, 174, + 2536, 71, 2269, 2358, -353, 261, -353, -353, 301, 252, + -353, 2536, 285, 225, 225, -353, 2597, 141, 40, -353, + 309, 2675, 1457, 1264, 413, 259, 2597, 2558, 1055, 1055, + 327, 242, 1368, 1013, 162, 162, 2536, 2536, -353, 2447, + 208, -353, -353, 411, 177, 54, 188, 58, 200, 609, + -353, 45, -353, 210, 117, 288, 2536, 2536, 2536, 2536, + 295, 1067, -353, -353, 2536, 210, -353, 91, -353, 91, + 91, 91, 91, 91, 217, -353, -353, 2536, 294, 45, + -353, -353, 424, -353, 429, -353, 503, -353, -353, -353, + 85, 2536, 313, -353, -353, 2536, 213, 94, -353, 516, + 2536, -353, 314, -353, 315, -353, 320, -353, -353, 198, + -353, -353, 298, 233, 91, 234, 235, 91, -353, 239, + 243, -353, -353, -353, 240, 321, 144, 2536, 2536, 245, + 198, -353, -353, -353, -353, -353, -353, -353, -353, 97, + -353, 2636, 337, -353, -353, 256, -353, -353, -353, 153, + -353, 2536, -353, -353, 341, 341, 2536, 341, 2536, 260, + 280, 341, 153, -353, -353, -353, -353, -353, -353, -353, + 360, 341, 341, -353, 183, 183, 287, 142, 370, 341, + 341, -353, -353, 701, -353, 142, 142, -353, 341, 258, + -353, -353, 341, -353, -353, 142, -353, -353, -353, -353, + 793, -353, 2536, 142, 1157, -353, -353, 293, -353, 302, + 341, 341, 183, -353, -353 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -394, -394, -394, -394, -394, -394, -394, -394, 2, -57, - -394, -85, -394, -7, 372, 298, -1, -394, -394, -283, - -393, -102, -342, -394, 8, -169, -229, -39, -394, -394, - -15, 366, -394, 207, -196, -279, -394, 21, -9, -41, - -394, -394, -394, -394, -394, -394, -394, -394, 196, -394, - -394, -111, -123, -65, -394, -394, -394, 7, 354, 364, - -394, -394, 36 + -353, -353, -353, -353, -353, -353, -353, -353, 2, -56, + -353, -96, -353, -7, 381, 304, -1, -353, -353, -287, + -352, -117, -339, -353, 15, -106, -275, -29, -353, -353, + -71, 371, -353, 204, -211, -318, -353, 17, -9, -41, + -353, -353, -353, -353, -353, -353, -353, -353, 194, -353, + -353, -111, -124, -353, -353, 7, 368, 369, -353, -353, + 36 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -446,87 +440,87 @@ static const yytype_int16 yypgoto[] = #define YYTABLE_NINF -195 static const yytype_int16 yytable[] = { - 57, 131, 118, 185, 231, 220, 14, 104, 102, 150, - 94, 356, 75, 93, 93, 164, 425, 191, 196, 197, - 198, 199, 201, 203, 204, 74, 110, 110, 110, 110, - 110, 238, 110, 110, 142, 269, 141, 270, 19, 20, - 21, 19, 19, 128, 219, 406, 137, 157, 271, 133, - 110, 139, 309, 448, 164, 146, 112, 113, 114, 115, - 161, 116, 117, 119, 383, 358, 326, 195, 363, 344, - 162, 234, 163, 120, 235, 131, 206, 222, 134, 135, - 345, 308, 186, 125, 187, 396, 438, 165, 164, 186, - 343, 187, 205, 233, 202, 200, 217, 126, 307, 93, - 164, 131, 364, 93, 93, 158, 159, 160, 337, 127, - 223, 237, 339, 158, 159, 160, 161, 230, 57, 74, - 190, 349, 144, 352, 225, 272, 165, 158, 159, 160, - 400, 372, 393, 394, 133, 240, 188, 295, 189, 289, - 290, 291, 292, 293, 294, 194, 296, 297, 207, 245, - 246, 247, 209, 249, 250, 356, 377, 253, 221, 397, - 165, 410, 224, 232, 158, 159, 160, 422, 423, 158, - 159, 160, 165, 158, 159, 160, 276, 277, 278, 279, - 280, 281, 226, 228, 282, 158, 159, 160, 158, 159, - 160, 274, 158, 159, 160, 236, 241, 243, 283, 366, - 325, 300, 302, 303, 304, 305, 306, 441, 334, 299, - 244, 379, 57, 105, 106, 285, 287, 158, 159, 160, - 158, 159, 160, 315, 336, 317, 319, 311, 121, 74, - 322, 314, 124, 320, 323, 19, 324, 129, 361, 338, - 138, 107, 160, 143, 327, 149, 108, 151, 152, 153, - 154, 155, 346, 158, 159, 160, 19, 365, 340, 367, - 330, 331, 374, 333, 210, 211, 212, 213, 380, 131, - 381, 214, 382, 215, 404, 385, 386, 158, 159, 160, - 348, 302, 351, 302, 93, 360, 342, 384, 351, 390, - 387, 388, 158, 159, 160, 376, 389, 158, 159, 160, - 355, 158, 159, 160, 409, -195, 411, 170, 171, 427, - 415, 158, 159, 160, 368, 373, 391, 432, 433, 392, - 419, 420, -68, 398, 395, 57, 313, 439, 429, 430, - -195, -195, 179, 180, 184, 442, 407, 435, 181, 182, - 183, 437, 399, 184, 131, 413, 414, 426, 158, 159, - 160, 418, 351, 351, 158, 159, 160, 248, 436, 446, - 447, 170, 171, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 428, 321, - 444, 351, 445, 348, 98, 401, 179, 180, 168, -195, - 170, 171, 181, 182, 183, 216, 417, 184, 401, 443, - 412, 123, 147, 158, 159, 160, 158, 159, 160, 158, - 159, 160, 148, 298, 434, 179, 180, 416, 0, 93, - 0, 181, 182, 183, -13, 76, 184, 351, 328, 0, - 0, 335, 0, 74, 369, 16, 93, 17, 18, 19, - 20, 21, 22, 23, 77, 24, 25, 26, 27, 28, - 0, 29, 30, 31, 32, 33, 34, 78, 97, 79, - 80, 35, 81, 82, 83, 84, 85, 86, 0, 0, - 170, 87, 88, 89, 90, 36, 0, 37, 38, 39, - 40, 41, 42, 158, 159, 160, 0, 43, 44, 45, - 46, 47, 48, 91, 49, 0, 180, 0, 0, 0, - 50, 181, 182, 183, 0, 0, 184, 0, 370, 0, - 0, 0, 51, 52, 53, 0, 0, -3, 76, 54, - 55, 0, 0, 56, 92, 375, 74, 0, 16, 0, + 57, 131, 217, 229, 352, 218, 306, 104, 102, 150, + 94, 193, 75, 93, 93, 162, 354, 163, 189, 359, + 204, 379, 184, 19, 185, 14, 110, 110, 110, 110, + 110, 236, 110, 110, 235, 266, 141, 267, 19, 20, + 21, 19, 392, 128, 402, 118, 137, 157, 268, 133, + 110, 139, 323, 421, 74, 146, 112, 113, 114, 115, + 161, 116, 117, 158, 159, 160, 333, 158, 159, 160, + 335, 184, 339, 185, 74, 131, 198, 220, 134, 135, + 19, 305, 389, 390, 360, 434, 107, 158, 159, 160, + 444, 108, 203, 231, 200, 304, 215, 368, 186, 93, + 187, 131, 120, 93, 93, 164, 373, 199, 125, 393, + 221, 406, 233, 158, 159, 160, 119, 228, 57, 158, + 159, 160, 144, 126, 223, 269, 340, 158, 159, 160, + 127, 158, 159, 160, 133, 238, 142, 341, 286, 287, + 288, 289, 290, 291, 242, 293, 294, 352, 161, 243, + 244, 245, 183, 247, 248, 250, 188, 437, 158, 159, + 160, 322, 74, 230, 158, 159, 160, 158, 159, 160, + 158, 159, 160, 396, 273, 274, 275, 276, 277, 278, + 192, 345, 279, 348, 208, 209, 210, 211, 205, 271, + 207, 212, 194, 213, -195, -195, 362, 332, 182, 297, + 299, 300, 301, 302, 303, 195, 375, 296, 334, 196, + 57, 105, 106, 197, 158, 159, 160, 158, 159, 160, + 336, 312, 201, 314, 316, 202, 121, 418, 419, 219, + 124, 222, 320, 372, 224, 129, 357, 226, 138, 232, + 234, 143, -68, 149, 239, 151, 152, 153, 154, 155, + 158, 159, 160, 280, 179, 180, 181, 326, 327, 182, + 329, 158, 159, 160, 241, 282, 131, 284, 292, 308, + 400, 317, 311, 158, 159, 160, 319, 344, 299, 347, + 299, 93, 356, 338, 380, 347, 158, 159, 160, 405, + 423, 407, 158, 159, 160, 411, 321, 351, 428, 429, + 160, 166, 167, 168, 169, 415, 416, 330, 435, 342, + 19, 364, 369, 425, 426, 361, 438, 310, 363, 381, + 168, 57, 431, 370, 376, 377, 433, 176, 177, 178, + 378, 382, 383, 384, 179, 180, 181, 385, 387, 182, + 131, 388, 386, 391, 442, 443, 178, 394, 347, 347, + 403, 179, 180, 181, 395, 246, 182, 432, 409, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 158, 159, 160, 347, 410, 344, + 414, 397, 158, 159, 160, 422, 166, 167, 168, 169, + 424, 440, 413, 98, 397, 208, 209, 210, 211, 318, + 441, 214, 212, 408, 213, 439, 123, 324, 295, 412, + 430, 175, 176, 177, 178, 93, 147, 148, 0, 179, + 180, 181, 0, 347, 182, -13, 76, 0, 158, 159, + 160, 0, 93, 0, 74, 0, 16, 0, 17, 18, + 19, 20, 21, 22, 23, 77, 24, 25, 26, 27, + 28, 0, 29, 30, 31, 32, 33, 34, 78, 97, + 79, 80, 35, 81, 82, 83, 84, 85, 86, 0, + 0, 0, 87, 88, 89, 90, 36, 0, 37, 38, + 39, 40, 41, 42, 158, 159, 160, 0, 43, 44, + 45, 46, 47, 48, 91, 49, 0, 158, 159, 160, + 178, 50, 158, 159, 160, 179, 180, 181, 0, 331, + 182, 0, 0, 51, 52, 53, 0, -3, 76, 371, + 54, 55, 365, 0, 56, 92, 74, 366, 16, 0, 17, 18, 19, 20, 21, 22, 23, 77, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 78, 97, 79, 80, 35, 81, 82, 83, 84, 85, 86, 0, 0, 0, 87, 88, 89, 90, 36, 0, 37, 38, 39, 40, 41, 42, 158, 159, 160, 0, 43, 44, 45, 46, 47, 48, 91, 49, 0, 158, - 159, 160, 180, 50, 0, 0, 0, 181, 182, 183, - 0, 371, 184, 0, 0, 51, 52, 53, 0, 0, - 76, 0, 54, 55, 378, 0, 56, 92, 74, 341, + 159, 160, 0, 50, 1, 2, 3, 4, 5, 6, + 0, 367, 0, 0, 0, 51, 52, 53, 0, 0, + 76, 0, 54, 55, 374, 0, 56, 92, 74, 337, 16, 0, 17, 18, 19, 20, 21, 22, 23, 77, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 78, 97, 79, 80, 35, 81, 82, 83, 84, 85, 86, 0, 0, 0, 87, 88, 89, 90, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 91, 49, - 0, 0, 0, 0, 0, 50, 1, 2, 3, 4, - 5, 6, 0, 0, 0, 0, 0, 51, 52, 53, + 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, 76, 0, 54, 55, 0, 0, 56, 92, - 74, 431, 16, 0, 17, 18, 19, 20, 21, 22, + 74, 427, 16, 0, 17, 18, 19, 20, 21, 22, 23, 77, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 78, 97, 79, 80, 35, 81, 82, 83, 84, 85, 86, 0, 0, 0, 87, 88, 89, 90, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, - 91, 49, 0, 181, 182, 183, 0, 50, 184, 0, + 91, 49, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, 76, 0, 54, 55, 0, 0, - 56, 92, 74, 440, 16, 0, 17, 18, 19, 20, + 56, 92, 74, 436, 16, 0, 17, 18, 19, 20, 21, 22, 23, 77, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 78, 97, 79, 80, 35, 81, 82, 83, 84, 85, 86, 0, 0, 0, @@ -553,63 +547,63 @@ static const yytype_int16 yytable[] = 43, 44, 45, 46, 47, 48, 91, 49, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 76, 0, - 0, 0, 54, 55, 170, 171, 56, 92, 16, 0, + 0, 0, 54, 55, 168, 169, 56, 92, 16, 0, 17, 18, 19, 20, 21, 22, 23, -63, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, - 180, 0, 0, 0, 35, 181, 182, 183, 0, 0, - 184, 0, 0, 0, 168, 169, 170, 171, 36, 0, + 178, 0, 0, 0, 35, 179, 180, 181, 0, 0, + 182, 0, 0, 0, 166, 167, 168, 169, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, - 43, 44, 45, 46, 47, 48, 0, 49, 176, 177, - 178, 179, 180, 50, 0, 0, 0, 181, 182, 183, - 0, 0, 184, 0, 0, 51, 52, 53, 76, 0, + 43, 44, 45, 46, 47, 48, 0, 49, 174, 175, + 176, 177, 178, 50, 0, 0, 0, 179, 180, 181, + 0, 0, 182, 0, 0, 51, 52, 53, 76, 0, 0, 0, 54, 55, 0, 0, 56, 0, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, -163, 0, 0, - 43, 44, 45, 46, 47, 48, 186, 49, 187, -163, + 43, 44, 45, 46, 47, 48, 184, 49, 185, -163, 0, 0, 0, 50, 0, 0, 0, -163, 0, 0, - 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, - 0, 0, 54, 55, 0, -63, 56, -163, -163, -163, + 0, 0, 0, 0, 0, 51, 52, 53, 0, 168, + 169, 0, 54, 55, 0, -63, 56, -163, -163, -163, -163, 0, 0, 0, -163, 0, -163, 0, 0, -163, - 0, 0, 0, 0, 0, 0, -163, -163, -163, -163, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 177, 178, -163, -163, -163, -163, + 179, 180, 181, 0, 0, 182, 0, 0, 0, 0, -163, -163, -163, -194, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -163, -194, 0, 0, 0, -163, -163, -163, 0, -194, -163, -163, 0, 0, 0, 0, - 0, 0, 0, 168, 169, 170, 171, 0, 0, 0, + 0, 0, 0, 166, -195, 168, 169, 0, 0, 0, 0, 0, 0, -194, -194, -194, -194, 0, 0, 0, - -194, 0, -194, 0, 0, -194, 0, 0, 177, 178, - 179, 180, -194, -194, -194, -194, 181, 182, 183, 0, - 0, 184, 0, 0, 0, 0, -194, -194, -194, 0, + -194, 0, -194, 0, 0, -194, 0, 0, 0, 0, + 177, 178, -194, -194, -194, -194, 179, 180, 181, 0, + 0, 182, 0, 0, 0, 0, -194, -194, -194, 0, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, -194, 0, 0, 0, 0, -194, -194, -194, 0, 0, -194, -194, 74, 0, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 130, 25, 26, 27, 28, 108, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, - 35, 0, 0, 0, 0, 0, 0, 0, 168, 169, - 170, 171, 0, 0, 36, 0, 37, 38, 39, 40, + 35, 0, 0, 0, 0, 0, 0, 166, 167, 168, + 169, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, - 47, 48, 0, 49, 178, 179, 180, 0, 0, 50, - 0, 181, 182, 183, 0, 0, 184, 0, 0, 0, + 47, 48, 0, 49, 177, 178, 0, 0, 0, 50, + 179, 180, 181, 0, 0, 182, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 54, 55, 0, 74, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, - 0, 0, 0, 0, 0, 0, 168, 169, 170, 171, + 0, 0, 0, 0, 0, 0, -195, 0, 168, 169, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, - 48, 0, 49, 179, 180, 0, 0, 0, 50, 181, - 182, 183, 0, 0, 184, 0, 0, 0, 0, 0, + 48, 0, 49, 177, 178, 0, 0, 0, 50, 179, + 180, 181, 0, 0, 182, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 54, 55, 0, 74, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 136, 25, 26, 27, 28, 0, 29, 30, - 31, 32, 33, 34, 0, 0, 0, 0, 35, 210, - 211, 212, 213, 0, 0, 0, 214, 0, 215, 0, + 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, - 0, 49, 158, 159, 160, 0, 0, 50, 0, 0, + 0, 49, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 54, 55, 0, 0, 56, 16, 103, 17, 18, 19, 20, 21, 22, 23, @@ -647,7 +641,7 @@ static const yytype_int16 yytable[] = 47, 48, 0, 49, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 54, 55, - 0, 229, 56, 16, 0, 17, 18, 19, 20, 21, + 0, 227, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -656,7 +650,7 @@ static const yytype_int16 yytable[] = 48, 0, 49, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 54, 55, 0, - 239, 56, 16, 0, 17, 18, 19, 20, 21, 22, + 237, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -664,7 +658,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 0, 49, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, - 52, 53, 0, 0, 0, 0, 54, 55, 0, 252, + 52, 53, 0, 0, 0, 0, 54, 55, 0, 249, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, @@ -673,7 +667,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 43, 44, 45, 46, 47, 48, 0, 49, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 54, 55, 0, 275, 56, + 53, 0, 0, 0, 0, 54, 55, 0, 272, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, @@ -682,7 +676,7 @@ static const yytype_int16 yytable[] = 0, 0, 43, 44, 45, 46, 47, 48, 0, 49, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, - 0, 0, 0, 0, 54, 55, 0, 316, 56, 16, + 0, 0, 0, 0, 54, 55, 0, 313, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, @@ -691,7 +685,7 @@ static const yytype_int16 yytable[] = 0, 43, 44, 45, 46, 47, 48, 0, 49, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, - 0, 0, 0, 54, 55, 0, 318, 56, 16, 0, + 0, 0, 0, 54, 55, 0, 315, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, @@ -700,95 +694,95 @@ static const yytype_int16 yytable[] = 43, 44, 45, 46, 47, 48, 0, 49, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, - 0, 0, 54, 55, 0, 332, 56, 16, 0, 17, + 0, 0, 54, 55, 0, 328, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 0, 49, 0, 0, 0, - 167, 0, 50, 0, 0, 0, 0, 168, 169, 170, - 171, 0, 0, 0, 51, 52, 53, 0, 0, 0, - 0, 54, 55, 0, 0, 56, 172, 173, 329, 174, - 175, 176, 177, 178, 179, 180, 0, 0, 0, 167, - 181, 182, 183, 0, 0, 184, 168, 169, 170, 171, + 165, 0, 50, 0, 0, 0, 0, 166, 167, 168, + 169, 0, 0, 0, 51, 52, 53, 0, 0, 0, + 0, 54, 55, 0, 0, 56, 170, 171, 325, 172, + 173, 174, 175, 176, 177, 178, 0, 0, 0, 165, + 179, 180, 181, 0, 0, 182, 166, 167, 168, 169, 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, 167, 181, - 182, 183, 0, 0, 184, 168, 169, 170, 171, 0, + 0, 0, 0, 0, 0, 170, 171, 0, 172, 173, + 174, 175, 176, 177, 178, 0, 0, 0, 165, 179, + 180, 181, 0, 0, 182, 166, 167, 168, 169, 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, -195, 181, 182, - 183, 0, 0, 184, 168, 169, 170, 171, 0, 0, + 0, 0, 0, 0, 0, 171, 0, 172, 173, 174, + 175, 176, 177, 178, 0, 0, 0, -195, 179, 180, + 181, 0, 0, 182, 166, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 174, 175, 176, 177, - 178, 179, 180, 0, 0, 0, 0, 181, 182, 183, - 0, 0, 184 + 0, 0, 0, 0, 0, 0, 172, 173, 174, 175, + 176, 177, 178, 0, 0, 0, 0, 179, 180, 181, + 0, 0, 182 }; static const yytype_int16 yycheck[] = { - 9, 42, 99, 68, 127, 116, 0, 16, 15, 50, - 11, 294, 10, 11, 12, 27, 409, 74, 83, 84, - 85, 86, 87, 88, 89, 9, 19, 20, 21, 22, - 23, 142, 25, 26, 21, 9, 45, 11, 15, 16, - 17, 15, 15, 41, 12, 387, 44, 56, 22, 42, - 43, 44, 12, 446, 27, 48, 20, 21, 22, 23, - 77, 25, 26, 11, 343, 294, 12, 82, 297, 9, - 9, 136, 11, 99, 139, 116, 91, 118, 42, 43, - 20, 98, 9, 99, 11, 364, 428, 99, 27, 9, - 286, 11, 90, 134, 87, 68, 97, 99, 221, 97, - 27, 142, 298, 101, 102, 73, 74, 75, 12, 99, - 119, 20, 12, 73, 74, 75, 77, 126, 127, 9, - 9, 290, 99, 292, 122, 99, 99, 73, 74, 75, - 20, 12, 361, 362, 127, 144, 9, 202, 11, 196, - 197, 198, 199, 200, 201, 21, 203, 204, 46, 158, - 159, 160, 20, 162, 163, 438, 12, 166, 99, 12, - 99, 390, 98, 127, 73, 74, 75, 44, 45, 73, - 74, 75, 99, 73, 74, 75, 185, 186, 187, 188, - 189, 190, 24, 98, 191, 73, 74, 75, 73, 74, - 75, 184, 73, 74, 75, 10, 71, 11, 21, 310, - 20, 210, 211, 212, 213, 214, 215, 436, 273, 207, - 98, 334, 221, 17, 18, 21, 21, 73, 74, 75, - 73, 74, 75, 232, 20, 234, 235, 71, 32, 9, - 24, 98, 36, 10, 243, 15, 11, 41, 295, 20, - 44, 21, 75, 47, 99, 49, 26, 51, 52, 53, - 54, 55, 21, 73, 74, 75, 15, 98, 20, 24, - 269, 270, 10, 272, 40, 41, 42, 43, 10, 310, - 10, 47, 10, 49, 385, 21, 98, 73, 74, 75, - 289, 290, 291, 292, 282, 294, 284, 344, 297, 354, - 98, 98, 73, 74, 75, 20, 98, 73, 74, 75, - 293, 73, 74, 75, 389, 59, 391, 61, 62, 411, - 395, 73, 74, 75, 312, 324, 98, 419, 420, 20, - 405, 406, 98, 10, 98, 334, 98, 429, 413, 414, - 93, 94, 86, 87, 97, 437, 9, 422, 92, 93, - 94, 426, 98, 97, 385, 98, 98, 98, 73, 74, - 75, 20, 361, 362, 73, 74, 75, 161, 423, 444, - 445, 61, 62, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 20, 98, - 98, 390, 98, 392, 12, 383, 86, 87, 59, 60, - 61, 62, 92, 93, 94, 97, 403, 97, 396, 438, - 392, 35, 48, 73, 74, 75, 73, 74, 75, 73, - 74, 75, 48, 206, 421, 86, 87, 396, -1, 417, - -1, 92, 93, 94, 0, 1, 97, 436, 98, -1, - -1, 98, -1, 9, 98, 11, 434, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, -1, -1, - 61, 47, 48, 49, 50, 51, -1, 53, 54, 55, - 56, 57, 58, 73, 74, 75, -1, 63, 64, 65, - 66, 67, 68, 69, 70, -1, 87, -1, -1, -1, - 76, 92, 93, 94, -1, -1, 97, -1, 98, -1, - -1, -1, 88, 89, 90, -1, -1, 0, 1, 95, - 96, -1, -1, 99, 100, 329, 9, -1, 11, -1, + 9, 42, 12, 127, 291, 116, 12, 16, 15, 50, + 11, 82, 10, 11, 12, 9, 291, 11, 74, 294, + 91, 339, 9, 15, 11, 0, 19, 20, 21, 22, + 23, 142, 25, 26, 20, 9, 45, 11, 15, 16, + 17, 15, 360, 41, 383, 99, 44, 56, 22, 42, + 43, 44, 12, 405, 9, 48, 20, 21, 22, 23, + 77, 25, 26, 73, 74, 75, 12, 73, 74, 75, + 12, 9, 283, 11, 9, 116, 68, 118, 42, 43, + 15, 98, 357, 358, 295, 424, 21, 73, 74, 75, + 442, 26, 90, 134, 87, 219, 97, 12, 9, 97, + 11, 142, 99, 101, 102, 99, 12, 99, 99, 12, + 119, 386, 99, 73, 74, 75, 11, 126, 127, 73, + 74, 75, 99, 99, 122, 99, 9, 73, 74, 75, + 99, 73, 74, 75, 127, 144, 21, 20, 194, 195, + 196, 197, 198, 199, 98, 201, 202, 434, 77, 158, + 159, 160, 99, 162, 163, 164, 9, 432, 73, 74, + 75, 20, 9, 127, 73, 74, 75, 73, 74, 75, + 73, 74, 75, 20, 183, 184, 185, 186, 187, 188, + 21, 287, 189, 289, 40, 41, 42, 43, 46, 182, + 20, 47, 99, 49, 93, 94, 307, 20, 97, 208, + 209, 210, 211, 212, 213, 99, 330, 205, 20, 99, + 219, 17, 18, 99, 73, 74, 75, 73, 74, 75, + 20, 230, 99, 232, 233, 99, 32, 44, 45, 99, + 36, 98, 241, 20, 24, 41, 292, 98, 44, 99, + 10, 47, 98, 49, 71, 51, 52, 53, 54, 55, + 73, 74, 75, 21, 92, 93, 94, 266, 267, 97, + 269, 73, 74, 75, 11, 21, 307, 21, 99, 71, + 381, 10, 98, 73, 74, 75, 24, 286, 287, 288, + 289, 279, 291, 281, 340, 294, 73, 74, 75, 385, + 407, 387, 73, 74, 75, 391, 11, 290, 415, 416, + 75, 59, 60, 61, 62, 401, 402, 99, 425, 21, + 15, 309, 321, 409, 410, 98, 433, 98, 24, 21, + 61, 330, 418, 10, 10, 10, 422, 85, 86, 87, + 10, 98, 98, 98, 92, 93, 94, 98, 98, 97, + 381, 20, 99, 98, 440, 441, 87, 10, 357, 358, + 9, 92, 93, 94, 98, 161, 97, 99, 98, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 73, 74, 75, 386, 98, 388, + 20, 379, 73, 74, 75, 98, 59, 60, 61, 62, + 20, 98, 399, 12, 392, 40, 41, 42, 43, 98, + 98, 97, 47, 388, 49, 434, 35, 98, 204, 392, + 417, 84, 85, 86, 87, 413, 48, 48, -1, 92, + 93, 94, -1, 432, 97, 0, 1, -1, 73, 74, + 75, -1, 430, -1, 9, -1, 11, -1, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, -1, + -1, -1, 47, 48, 49, 50, 51, -1, 53, 54, + 55, 56, 57, 58, 73, 74, 75, -1, 63, 64, + 65, 66, 67, 68, 69, 70, -1, 73, 74, 75, + 87, 76, 73, 74, 75, 92, 93, 94, -1, 98, + 97, -1, -1, 88, 89, 90, -1, 0, 1, 325, + 95, 96, 98, -1, 99, 100, 9, 98, 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, -1, -1, -1, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, 73, 74, 75, -1, 63, 64, 65, 66, 67, 68, 69, 70, -1, 73, - 74, 75, 87, 76, -1, -1, -1, 92, 93, 94, - -1, 98, 97, -1, -1, 88, 89, 90, -1, -1, + 74, 75, -1, 76, 3, 4, 5, 6, 7, 8, + -1, 98, -1, -1, -1, 88, 89, 90, -1, -1, 1, -1, 95, 96, 98, -1, 99, 100, 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, @@ -796,8 +790,8 @@ static const yytype_int16 yycheck[] = 41, 42, 43, -1, -1, -1, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, 69, 70, - -1, -1, -1, -1, -1, 76, 3, 4, 5, 6, - 7, 8, -1, -1, -1, -1, -1, 88, 89, 90, + -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, -1, -1, 1, -1, 95, 96, -1, -1, 99, 100, 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, 27, 28, @@ -805,7 +799,7 @@ static const yytype_int16 yycheck[] = 39, 40, 41, 42, 43, -1, -1, -1, 47, 48, 49, 50, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, - 69, 70, -1, 92, 93, 94, -1, 76, 97, -1, + 69, 70, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, -1, -1, 1, -1, 95, 96, -1, -1, 99, 100, 9, 10, 11, -1, 13, 14, 15, 16, @@ -852,17 +846,17 @@ static const yytype_int16 yycheck[] = 53, 54, 55, 56, 57, 58, -1, 0, -1, -1, 63, 64, 65, 66, 67, 68, 9, 70, 11, 12, -1, -1, -1, 76, -1, -1, -1, 20, -1, -1, - -1, -1, -1, -1, -1, 88, 89, 90, -1, -1, - -1, -1, 95, 96, -1, 98, 99, 40, 41, 42, + -1, -1, -1, -1, -1, 88, 89, 90, -1, 61, + 62, -1, 95, 96, -1, 98, 99, 40, 41, 42, 43, -1, -1, -1, 47, -1, 49, -1, -1, 52, - -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 86, 87, 59, 60, 61, 62, + 92, 93, 94, -1, -1, 97, -1, -1, -1, -1, 73, 74, 75, 0, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 12, -1, -1, -1, 92, 93, 94, -1, 20, 97, 98, -1, -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, -1, -1, -1, -1, -1, -1, 40, 41, 42, 43, -1, -1, -1, - 47, -1, 49, -1, -1, 52, -1, -1, 84, 85, + 47, -1, 49, -1, -1, 52, -1, -1, -1, -1, 86, 87, 59, 60, 61, 62, 92, 93, 94, -1, -1, 97, -1, -1, -1, -1, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, @@ -870,16 +864,16 @@ static const yytype_int16 yycheck[] = 97, 98, 9, -1, 11, -1, 13, 14, 15, 16, 17, 18, 19, -1, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, - 37, -1, -1, -1, -1, -1, -1, -1, 59, 60, - 61, 62, -1, -1, 51, -1, 53, 54, 55, 56, + 37, -1, -1, -1, -1, -1, -1, 59, 60, 61, + 62, -1, -1, -1, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, - 67, 68, -1, 70, 85, 86, 87, -1, -1, 76, - -1, 92, 93, 94, -1, -1, 97, -1, -1, -1, + 67, 68, -1, 70, 86, 87, -1, -1, -1, 76, + 92, 93, 94, -1, -1, 97, -1, -1, -1, -1, -1, 88, 89, 90, -1, -1, -1, -1, 95, 96, -1, 9, 99, 11, -1, 13, 14, 15, 16, 17, 18, 19, -1, 21, 22, 23, 24, 25, -1, 27, 28, 29, 30, 31, 32, -1, -1, -1, -1, 37, - -1, -1, -1, -1, -1, -1, 59, 60, 61, 62, + -1, -1, -1, -1, -1, -1, 59, -1, 61, 62, -1, -1, -1, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, -1, 70, 86, 87, -1, -1, -1, 76, 92, @@ -887,11 +881,11 @@ static const yytype_int16 yycheck[] = 88, 89, 90, -1, -1, -1, -1, 95, 96, -1, 9, 99, 11, -1, 13, 14, 15, 16, 17, 18, 19, -1, 21, 22, 23, 24, 25, -1, 27, 28, - 29, 30, 31, 32, -1, -1, -1, -1, 37, 40, - 41, 42, 43, -1, -1, -1, 47, -1, 49, -1, + 29, 30, 31, 32, -1, -1, -1, -1, 37, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 51, -1, 53, 54, 55, 56, 57, 58, -1, -1, -1, -1, 63, 64, 65, 66, 67, 68, - -1, 70, 73, 74, 75, -1, -1, 76, -1, -1, + -1, 70, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, -1, -1, -1, -1, 95, 96, -1, -1, 99, 11, 12, 13, 14, 15, 16, 17, 18, 19, @@ -1018,45 +1012,45 @@ static const yytype_uint8 yystos[] = 28, 29, 30, 31, 32, 37, 51, 53, 54, 55, 56, 57, 58, 63, 64, 65, 66, 67, 68, 70, 76, 88, 89, 90, 95, 96, 99, 139, 140, 141, - 144, 145, 146, 147, 148, 149, 150, 153, 157, 158, - 159, 160, 161, 162, 9, 109, 1, 20, 33, 35, + 144, 145, 146, 147, 148, 149, 150, 153, 155, 156, + 157, 158, 159, 160, 9, 109, 1, 20, 33, 35, 36, 38, 39, 40, 41, 42, 43, 47, 48, 49, 50, 69, 100, 109, 117, 120, 139, 34, 115, 116, 117, 114, 114, 12, 139, 149, 149, 21, 26, 109, - 158, 163, 163, 163, 163, 163, 163, 163, 99, 11, + 156, 161, 161, 161, 161, 161, 161, 161, 99, 11, 99, 149, 132, 132, 149, 99, 99, 99, 109, 149, - 21, 140, 152, 158, 163, 163, 21, 109, 149, 158, - 20, 139, 21, 149, 99, 151, 158, 159, 160, 149, + 21, 140, 152, 156, 161, 161, 21, 109, 149, 156, + 20, 139, 21, 149, 99, 151, 156, 157, 158, 149, 140, 149, 149, 149, 149, 149, 98, 139, 73, 74, - 75, 77, 9, 11, 27, 99, 154, 52, 59, 60, - 61, 62, 78, 79, 81, 82, 83, 84, 85, 86, - 87, 92, 93, 94, 97, 154, 9, 11, 9, 11, - 9, 110, 133, 131, 21, 131, 154, 154, 154, 154, - 68, 154, 158, 154, 154, 109, 131, 46, 122, 20, - 40, 41, 42, 43, 47, 49, 116, 117, 115, 12, - 152, 99, 140, 139, 98, 109, 24, 135, 98, 98, - 139, 153, 163, 140, 154, 154, 10, 20, 152, 98, - 139, 71, 137, 11, 98, 139, 139, 139, 149, 139, - 139, 155, 98, 139, 149, 149, 149, 149, 149, 149, - 149, 149, 149, 149, 149, 149, 149, 149, 149, 9, - 11, 22, 99, 143, 158, 98, 139, 139, 139, 139, - 139, 139, 114, 21, 130, 21, 134, 21, 118, 110, - 110, 110, 110, 110, 110, 154, 110, 110, 134, 109, - 139, 126, 139, 139, 139, 139, 139, 153, 98, 12, - 142, 71, 136, 98, 98, 139, 98, 139, 98, 139, - 10, 98, 24, 139, 11, 20, 12, 99, 98, 80, - 139, 139, 98, 139, 154, 98, 20, 12, 20, 12, - 20, 10, 109, 135, 9, 20, 21, 125, 139, 126, - 127, 139, 126, 129, 156, 158, 120, 124, 127, 128, - 139, 110, 111, 127, 135, 98, 152, 24, 109, 98, - 98, 98, 12, 139, 10, 149, 20, 12, 98, 153, - 10, 10, 10, 136, 110, 21, 98, 98, 98, 98, - 154, 98, 20, 127, 127, 98, 136, 12, 10, 98, - 20, 109, 138, 119, 152, 123, 123, 9, 112, 112, - 127, 112, 125, 98, 98, 112, 138, 114, 20, 112, - 112, 113, 44, 45, 121, 121, 98, 122, 20, 112, - 112, 10, 122, 122, 114, 112, 154, 112, 123, 122, - 10, 127, 122, 128, 98, 98, 112, 112, 121 + 75, 77, 9, 11, 99, 52, 59, 60, 61, 62, + 78, 79, 81, 82, 83, 84, 85, 86, 87, 92, + 93, 94, 97, 99, 9, 11, 9, 11, 9, 110, + 133, 131, 21, 131, 99, 99, 99, 99, 68, 99, + 156, 99, 99, 109, 131, 46, 122, 20, 40, 41, + 42, 43, 47, 49, 116, 117, 115, 12, 152, 99, + 140, 139, 98, 109, 24, 135, 98, 98, 139, 153, + 161, 140, 99, 99, 10, 20, 152, 98, 139, 71, + 137, 11, 98, 139, 139, 139, 149, 139, 139, 98, + 139, 149, 149, 149, 149, 149, 149, 149, 149, 149, + 149, 149, 149, 149, 149, 149, 9, 11, 22, 99, + 143, 156, 98, 139, 139, 139, 139, 139, 139, 114, + 21, 130, 21, 134, 21, 118, 110, 110, 110, 110, + 110, 110, 99, 110, 110, 134, 109, 139, 126, 139, + 139, 139, 139, 139, 153, 98, 12, 142, 71, 136, + 98, 98, 139, 98, 139, 98, 139, 10, 98, 24, + 139, 11, 20, 12, 98, 80, 139, 139, 98, 139, + 99, 98, 20, 12, 20, 12, 20, 10, 109, 135, + 9, 20, 21, 125, 139, 126, 127, 139, 126, 129, + 154, 156, 120, 124, 127, 128, 139, 110, 111, 127, + 135, 98, 152, 24, 109, 98, 98, 98, 12, 139, + 10, 149, 20, 12, 98, 153, 10, 10, 10, 136, + 110, 21, 98, 98, 98, 98, 99, 98, 20, 127, + 127, 98, 136, 12, 10, 98, 20, 109, 138, 119, + 152, 123, 123, 9, 112, 112, 127, 112, 125, 98, + 98, 112, 138, 114, 20, 112, 112, 113, 44, 45, + 121, 121, 98, 122, 20, 112, 112, 10, 122, 122, + 114, 112, 99, 112, 123, 122, 10, 127, 122, 128, + 98, 98, 112, 112, 121 }; typedef enum { @@ -1087,12 +1081,11 @@ static const toketypes yy_type_tab[] = toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_i_tkval, toketype_ival, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval + toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval }; /* Generated from: - * 047d7d5048e78a17bc586b7bb9a0f0e9dedd5cd43b30e486482b1ff8f955ddcb perly.y + * ff01d43de6f749eba3bfeffd39928772fe7e1bebe039506b8465c05941209aa8 perly.y * 53f57d7143a42b3c008841a14d158bcf9cab64b2904b07ef5e95051fe9a8a875 regen_perly.pl * ex: set ro: */ @@ -87,8 +87,6 @@ %token <i_tkval> LOCAL MY MYSUB REQUIRE %token <i_tkval> COLONATTR -%type <i_tkval> lpar_or_qw - %type <ival> grammar remember mremember %type <ival> startsub startanonsub startformsub /* FIXME for MAD - are these two ival? */ @@ -364,7 +362,7 @@ barestmt: PLUGSTMT $$ = (OP*)NULL; #endif } - | IF lpar_or_qw remember mexpr ')' mblock else + | IF '(' remember mexpr ')' mblock else { $$ = block_end($3, newCONDOP(0, $4, op_scope($6), $7)); @@ -373,7 +371,7 @@ barestmt: PLUGSTMT TOKEN_GETMAD($5,$$,')'); PL_parser->copline = (line_t)IVAL($1); } - | UNLESS lpar_or_qw remember miexpr ')' mblock else + | UNLESS '(' remember miexpr ')' mblock else { $$ = block_end($3, newCONDOP(0, $4, op_scope($6), $7)); @@ -382,17 +380,17 @@ barestmt: PLUGSTMT TOKEN_GETMAD($5,$$,')'); PL_parser->copline = (line_t)IVAL($1); } - | GIVEN lpar_or_qw remember mydefsv mexpr ')' mblock + | GIVEN '(' remember mydefsv mexpr ')' mblock { $$ = block_end($3, newGIVENOP($5, op_scope($7), (PADOFFSET)$4)); PL_parser->copline = (line_t)IVAL($1); } - | WHEN lpar_or_qw remember mexpr ')' mblock + | WHEN '(' remember mexpr ')' mblock { $$ = block_end($3, newWHENOP($4, op_scope($6))); } | DEFAULT block { $$ = newWHENOP(0, op_scope($2)); } - | WHILE lpar_or_qw remember texpr ')' mintro mblock cont + | WHILE '(' remember texpr ')' mintro mblock cont { $$ = block_end($3, newWHILEOP(0, 1, (LOOP*)(OP*)NULL, @@ -402,7 +400,7 @@ barestmt: PLUGSTMT TOKEN_GETMAD($5,$$,')'); PL_parser->copline = (line_t)IVAL($1); } - | UNTIL lpar_or_qw remember iexpr ')' mintro mblock cont + | UNTIL '(' remember iexpr ')' mintro mblock cont { $$ = block_end($3, newWHILEOP(0, 1, (LOOP*)(OP*)NULL, @@ -412,7 +410,7 @@ barestmt: PLUGSTMT TOKEN_GETMAD($5,$$,')'); PL_parser->copline = (line_t)IVAL($1); } - | FOR lpar_or_qw remember mnexpr ';' texpr ';' mintro mnexpr ')' + | FOR '(' remember mnexpr ';' texpr ';' mintro mnexpr ')' mblock { OP *initop = IF_MAD($4 ? $4 : newOP(OP_NULL, 0), $4); @@ -433,7 +431,7 @@ barestmt: PLUGSTMT TOKEN_GETMAD($10,$$,')'); PL_parser->copline = (line_t)IVAL($1); } - | FOR MY remember my_scalar lpar_or_qw mexpr ')' mblock cont + | FOR MY remember my_scalar '(' mexpr ')' mblock cont { $$ = block_end($3, newFOROP(0, $4, $6, $8, $9)); TOKEN_GETMAD($1,$$,'W'); @@ -442,7 +440,7 @@ barestmt: PLUGSTMT TOKEN_GETMAD($7,$$,')'); PL_parser->copline = (line_t)IVAL($1); } - | FOR scalar lpar_or_qw remember mexpr ')' mblock cont + | FOR scalar '(' remember mexpr ')' mblock cont { $$ = block_end($4, newFOROP(0, op_lvalue($2, OP_ENTERLOOP), $5, $7, $8)); @@ -451,7 +449,7 @@ barestmt: PLUGSTMT TOKEN_GETMAD($6,$$,')'); PL_parser->copline = (line_t)IVAL($1); } - | FOR lpar_or_qw remember mexpr ')' mblock cont + | FOR '(' remember mexpr ')' mblock cont { $$ = block_end($3, newFOROP(0, (OP*)NULL, $4, $6, $7)); @@ -546,7 +544,7 @@ else : /* NULL */ $$ = op_scope($2); TOKEN_GETMAD($1,$$,'o'); } - | ELSIF lpar_or_qw mexpr ')' mblock else + | ELSIF '(' mexpr ')' mblock else { PL_parser->copline = (line_t)IVAL($1); $$ = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,$3), @@ -734,7 +732,7 @@ listop : LSTOP indirob listexpr /* map {...} @args or print $fh @args */ TOKEN_GETMAD($2,$$,'('); TOKEN_GETMAD($5,$$,')'); } - | term ARROW method lpar_or_qw optexpr ')' /* $foo->bar(list) */ + | term ARROW method '(' optexpr ')' /* $foo->bar(list) */ { $$ = convert(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, scalar($1), $5), @@ -860,14 +858,14 @@ subscripted: star '{' expr ';' '}' /* *main::{something} */ TOKEN_GETMAD($5,$$,')'); } - | subscripted lpar_or_qw expr ')' /* $foo->{bar}->(@args) */ + | subscripted '(' expr ')' /* $foo->{bar}->(@args) */ { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, $3, newCVREF(0, scalar($1)))); TOKEN_GETMAD($2,$$,'('); TOKEN_GETMAD($4,$$,')'); } - | subscripted lpar_or_qw ')' /* $foo->{bar}->() */ + | subscripted '(' ')' /* $foo->{bar}->() */ { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, newCVREF(0, scalar($1))); TOKEN_GETMAD($2,$$,'('); @@ -1051,7 +1049,7 @@ termdo : DO term %prec UNIOP /* do $filename */ { $$ = newUNOP(OP_NULL, OPf_SPECIAL, op_scope($2)); TOKEN_GETMAD($1,$$,'D'); } - | DO WORD lpar_or_qw ')' /* do somesub() */ + | DO WORD '(' ')' /* do somesub() */ { $$ = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, op_prepend_elem(OP_LIST, @@ -1063,7 +1061,7 @@ termdo : DO term %prec UNIOP /* do $filename */ TOKEN_GETMAD($3,$$,'('); TOKEN_GETMAD($4,$$,')'); } - | DO WORD lpar_or_qw expr ')' /* do somesub(@args) */ + | DO WORD '(' expr ')' /* do somesub(@args) */ { $$ = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, op_append_elem(OP_LIST, @@ -1076,7 +1074,7 @@ termdo : DO term %prec UNIOP /* do $filename */ TOKEN_GETMAD($3,$$,'('); TOKEN_GETMAD($5,$$,')'); } - | DO scalar lpar_or_qw ')' /* do $subref () */ + | DO scalar '(' ')' /* do $subref () */ { $$ = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, op_prepend_elem(OP_LIST, scalar(newCVREF(0,scalar($2))), (OP*)NULL)); dep(); @@ -1084,7 +1082,7 @@ termdo : DO term %prec UNIOP /* do $filename */ TOKEN_GETMAD($3,$$,'('); TOKEN_GETMAD($4,$$,')'); } - | DO scalar lpar_or_qw expr ')' /* do $subref (@args) */ + | DO scalar '(' expr ')' /* do $subref (@args) */ { $$ = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED, op_prepend_elem(OP_LIST, $4, @@ -1163,12 +1161,12 @@ term : termbinop { $$ = $1; } | amper /* &foo; */ { $$ = newUNOP(OP_ENTERSUB, 0, scalar($1)); } - | amper lpar_or_qw ')' /* &foo() */ + | amper '(' ')' /* &foo() */ { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar($1)); TOKEN_GETMAD($2,$$,'('); TOKEN_GETMAD($3,$$,')'); } - | amper lpar_or_qw expr ')' /* &foo(@args) */ + | amper '(' expr ')' /* &foo(@args) */ { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, $3, scalar($1))); @@ -1322,14 +1320,6 @@ optexpr: /* NULL */ { $$ = $1; } ; -lpar_or_qw: '(' - { $$ = $1; } - | QWLIST - { munge_qwlist_to_paren_list($1); } - '(' - { $$ = $3; } - ; - /* A little bit of trickery to make "for my $foo (@bar)" actually be lexical */ my_scalar: scalar diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 026afbcef6..301f6b4896 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -48,6 +48,19 @@ XXX For a release on a stable branch, this section aspires to be: [ List each incompatible change as a =head2 entry ] +=head2 qw(...) can no longer be used as parentheses + +C<qw> lists used to fool the parser into thinking they were always +surrounded by parentheses. This permitted some surprising constructions +such as C<foreach $x qw(a b c) {...}>, which should really be written +C<foreach $x (qw(a b c)) {...}>. These would sometimes get the lexer into +the wrong state, so they didn't fully work, and the similar C<foreach qw(a +b c) {...}> that one might expect to be permitted never worked at all. + +This side effect of C<qw> has now been abolished. It has been deprecated +since Perl 5.13.11. It is now necessary to use real parentheses +everywhere that the grammar calls for them. + =head2 C<\s> in regular expressions now matches a Vertical Tab (experimental) This is an experiment early in the development cycle to see what diff --git a/pod/perldiag.pod b/pod/perldiag.pod index 31ce464f06..01b92029c7 100644 --- a/pod/perldiag.pod +++ b/pod/perldiag.pod @@ -5468,17 +5468,6 @@ will be available for use in new operators in the future. Write C<m?\w?> instead, explicitly using the C<m> operator: the question mark delimiter still invokes match-once behaviour. -=item Use of qw(...) as parentheses is deprecated - -(D deprecated) You have something like C<foreach $x qw(a b c) {...}>, -using a C<qw(...)> list literal where a parenthesised expression is -expected. Historically the parser fooled itself into thinking that -C<qw(...)> literals were always enclosed in parentheses, and as a result -you could sometimes omit parentheses around them. (You could never do -the C<foreach qw(a b c) {...}> that you might have expected, though.) -The parser no longer lies to itself in this way. Wrap the list literal -in parentheses, like C<foreach $x (qw(a b c)) {...}>. - =item Use of reference "%s" as array index (W misc) You tried to use a reference as an array index; this probably @@ -2475,11 +2475,6 @@ PERL_CALLCONV SV* Perl_mro_set_private_data(pTHX_ struct mro_meta *const smeta, #define PERL_ARGS_ASSERT_MRO_SET_PRIVATE_DATA \ assert(smeta); assert(which); assert(data) -PERL_CALLCONV void Perl_munge_qwlist_to_paren_list(pTHX_ OP* qwlist) - __attribute__nonnull__(pTHX_1); -#define PERL_ARGS_ASSERT_MUNGE_QWLIST_TO_PAREN_LIST \ - assert(qwlist) - PERL_CALLCONV NV Perl_my_atof(pTHX_ const char *s) __attribute__nonnull__(pTHX_1); #define PERL_ARGS_ASSERT_MY_ATOF \ diff --git a/t/lib/warnings/perly b/t/lib/warnings/perly index d2b95607c0..c912c0ea3c 100644 --- a/t/lib/warnings/perly +++ b/t/lib/warnings/perly @@ -8,23 +8,6 @@ sub fred {} $a = "fred" ; do $a() sub fred {} $a = "fred" ; do $a(1) - Use of qw(...) as parentheses is deprecated - - if qw(a) {} - unless qw(a) {} - if (0) {} elsif qw(a) {} - given qw(a) {} - when qw(a) {} - while qw(a) {} - until qw(a) {} - foreach $x qw(a b c) {} - foreach my $x qw(a b c) {} - $obj->meth qw(a b c) - do foo qw(a b c) - do $subref qw(a b c) - &foo qw(a b c) - $a[0] qw(a b c) - __END__ # perly.y use warnings 'deprecated' ; @@ -45,222 +28,3 @@ Use of "do" to call subroutines is deprecated at - line 4. Use of "do" to call subroutines is deprecated at - line 5. Use of "do" to call subroutines is deprecated at - line 7. Use of "do" to call subroutines is deprecated at - line 8. -######## -use warnings qw(deprecated void); -if qw(a) { print "x0\n"; } else { } -if qw(0) { print "x1\n"; } else { } -if qw(z a) { print "x2\n"; } else { } -if qw(z 0) { print "x3\n"; } else { } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 2. -Use of qw(...) as parentheses is deprecated at - line 3. -Use of qw(...) as parentheses is deprecated at - line 4. -Useless use of a constant ("z") in void context at - line 4. -Use of qw(...) as parentheses is deprecated at - line 5. -Useless use of a constant ("z") in void context at - line 5. -x0 -x2 -######## -if qw() { print "x0\n"; } else { } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 1. -syntax error at - line 1, near "if qw()" -Execution of - aborted due to compilation errors. -######## -use warnings qw(deprecated void); -unless qw(a) { print "x0\n"; } else { } -unless qw(0) { print "x1\n"; } else { } -unless qw(z a) { print "x2\n"; } else { } -unless qw(z 0) { print "x3\n"; } else { } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 2. -Use of qw(...) as parentheses is deprecated at - line 3. -Use of qw(...) as parentheses is deprecated at - line 4. -Useless use of a constant ("z") in void context at - line 4. -Use of qw(...) as parentheses is deprecated at - line 5. -Useless use of a constant ("z") in void context at - line 5. -x1 -x3 -######## -unless qw() { print "x0\n"; } else { } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 1. -syntax error at - line 1, near "unless qw()" -Execution of - aborted due to compilation errors. -######## -use warnings qw(deprecated void); -if(0) { print "eek\n"; } elsif qw(a) { print "x0\n"; } else { } -if(0) { print "eek\n"; } elsif qw(0) { print "x1\n"; } else { } -if(0) { print "eek\n"; } elsif qw(z a) { print "x2\n"; } else { } -if(0) { print "eek\n"; } elsif qw(z 0) { print "x3\n"; } else { } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 2. -Use of qw(...) as parentheses is deprecated at - line 3. -Use of qw(...) as parentheses is deprecated at - line 4. -Useless use of a constant ("z") in void context at - line 4. -Use of qw(...) as parentheses is deprecated at - line 5. -Useless use of a constant ("z") in void context at - line 5. -x0 -x2 -######## -if(0) { print "eek\n"; } elsif qw() { print "x0\n"; } else { } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 1. -syntax error at - line 1, near "elsif qw()" -Execution of - aborted due to compilation errors. -######## -use warnings qw(deprecated void); use feature "switch"; -given qw(a) { print "x0 $_\n"; } -given qw(z a) { print "x1 $_\n"; } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 2. -Use of qw(...) as parentheses is deprecated at - line 3. -Useless use of a constant ("z") in void context at - line 3. -x0 a -x1 a -######## -use feature "switch"; -given qw() { print "x0\n"; } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 2. -syntax error at - line 2, near "given qw()" -Execution of - aborted due to compilation errors. -######## -use warnings qw(deprecated void); use feature "switch"; -given("a") { when qw(a) { print "x0\n"; } } -given("a") { when qw(b) { print "x1\n"; } } -given("a") { when qw(z a) { print "x2\n"; } } -given("a") { when qw(z b) { print "x3\n"; } } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 2. -Use of qw(...) as parentheses is deprecated at - line 3. -Use of qw(...) as parentheses is deprecated at - line 4. -Useless use of a constant ("z") in void context at - line 4. -Use of qw(...) as parentheses is deprecated at - line 5. -Useless use of a constant ("z") in void context at - line 5. -x0 -x2 -######## -use feature "switch"; -given("a") { when qw() { print "x0\n"; } } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 2. -syntax error at - line 2, near "when qw()" -syntax error at - line 2, near "} }" -Execution of - aborted due to compilation errors. -######## -use warnings qw(deprecated void); -while qw(a) { print "x0\n"; last; } {;} -while qw(0) { print "x1\n"; last; } {;} -while qw(z a) { print "x2\n"; last; } {;} -while qw(z 0) { print "x3\n"; last; } {;} -EXPECT -Use of qw(...) as parentheses is deprecated at - line 2. -Use of qw(...) as parentheses is deprecated at - line 3. -Use of qw(...) as parentheses is deprecated at - line 4. -Useless use of a constant ("z") in void context at - line 4. -Use of qw(...) as parentheses is deprecated at - line 5. -Useless use of a constant ("z") in void context at - line 5. -x0 -x2 -######## -while qw() { print "x0\n"; last; } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 1. -x0 -######## -use warnings qw(deprecated void); -until qw(a) { print "x0\n"; last; } {;} -until qw(0) { print "x1\n"; last; } {;} -until qw(z a) { print "x2\n"; last; } {;} -until qw(z 0) { print "x3\n"; last; } {;} -EXPECT -Use of qw(...) as parentheses is deprecated at - line 2. -Use of qw(...) as parentheses is deprecated at - line 3. -Use of qw(...) as parentheses is deprecated at - line 4. -Useless use of a constant ("z") in void context at - line 4. -Use of qw(...) as parentheses is deprecated at - line 5. -Useless use of a constant ("z") in void context at - line 5. -x1 -x3 -######## -until qw() { print "x0\n"; } else { } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 1. -syntax error at - line 1, near "until qw()" -Execution of - aborted due to compilation errors. -######## -foreach $x qw(a b c) { print $x, "\n"; } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 1. -a -b -c -######## -foreach $x qw() { print $x, "\n"; } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 1. -syntax error at - line 1, near "$x qw()" -Execution of - aborted due to compilation errors. -######## -foreach my $x qw(a b c) { print $x, "\n"; } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 1. -a -b -c -######## -foreach my $x qw() { print $x, "\n"; } -EXPECT -Use of qw(...) as parentheses is deprecated at - line 1. -syntax error at - line 1, near "$x qw()" -Execution of - aborted due to compilation errors. -######## -sub a5c85eef3bf30129e20989e96b099d13::foo { print "+", join(":", @_), "\n"; } -"a5c85eef3bf30129e20989e96b099d13"->foo qw(); {;} -"a5c85eef3bf30129e20989e96b099d13"->foo qw(a b c); {;} -EXPECT -Use of qw(...) as parentheses is deprecated at - line 2. -Use of qw(...) as parentheses is deprecated at - line 3. -+a5c85eef3bf30129e20989e96b099d13 -+a5c85eef3bf30129e20989e96b099d13:a:b:c -######## -sub fd4de2af1449cec72693c36842d41862 { print "+", join(":", @_), "\n"; } -do fd4de2af1449cec72693c36842d41862 qw(); {;} -do fd4de2af1449cec72693c36842d41862 qw(a b c); {;} -EXPECT -Use of qw(...) as parentheses is deprecated at - line 2. -Use of "do" to call subroutines is deprecated at - line 2. -Use of qw(...) as parentheses is deprecated at - line 3. -Use of "do" to call subroutines is deprecated at - line 3. -+ -+a:b:c -######## -$subref = sub { print "+", join(":", @_), "\n"; }; -do $subref qw(); -do $subref qw(a b c); -EXPECT -Use of qw(...) as parentheses is deprecated at - line 2. -Use of "do" to call subroutines is deprecated at - line 2. -Use of qw(...) as parentheses is deprecated at - line 3. -Use of "do" to call subroutines is deprecated at - line 3. -+ -+a:b:c -######## -sub e293a8f7cb38880a48867fcb336448e5 { print "+", join(":", @_), "\n"; } -&e293a8f7cb38880a48867fcb336448e5 qw(); -&e293a8f7cb38880a48867fcb336448e5 qw(a b c); -EXPECT -Use of qw(...) as parentheses is deprecated at - line 2. -Use of qw(...) as parentheses is deprecated at - line 3. -+ -+a:b:c -######## -my @a = (sub { print "+", join(":", @_), "\n"; }); -$a[0] qw(); -$a[0] qw(a b c); -EXPECT -Use of qw(...) as parentheses is deprecated at - line 2. -Use of qw(...) as parentheses is deprecated at - line 3. -+ -+a:b:c @@ -11629,23 +11629,6 @@ Perl_parse_stmtseq(pTHX_ U32 flags) return stmtseqop; } -void -Perl_munge_qwlist_to_paren_list(pTHX_ OP *qwlist) -{ - PERL_ARGS_ASSERT_MUNGE_QWLIST_TO_PAREN_LIST; - deprecate("qw(...) as parentheses"); - force_next((4<<24)|')'); - if (qwlist->op_type == OP_STUB) { - op_free(qwlist); - } - else { - start_force(PL_curforce); - NEXTVAL_NEXTTOKE.opval = qwlist; - force_next(THING); - } - force_next((2<<24)|'('); -} - /* * Local variables: * c-indentation-style: bsd |