From 2d0e3c969830d8462aa2c3cb9255ecf35a4905b5 Mon Sep 17 00:00:00 2001 From: Father Chrysostomos Date: Thu, 21 Aug 2014 12:47:58 -0700 Subject: [PATCH] Set PL_expect less often when parsing semicolons As it worked before, the parser (perly.y) would set PL_expect to XSTATE after encountering a statement-terminating semicolon. Two functions in op.c--package and utilize--had to set the value to XSTATE as a result. Also, in the case of a closing brace, the lexer emits an implicit semicolon followed by '}' (emitted via force_next). force_next records the value of PL_expect and restores it when emitting the token. So in this case the value of PL_expect was flipping back and forth between two values. Instead of having the parser set it to XSTATE, we can have the lexer set it to XSTATE by default when emitting an explicit semicolon. (It was setting it to XTERM.) The parser can set it to XTERM in the only place that matters; viz., the header of a for-loop. This simplifies things conceptually, and makes the code a whole line shorter. (The diff stat shows more savings in line count, but that is because the version of bison I used to regenerate the tables produces smaller headers than what was already committed.) --- op.c | 2 - perly.act | 901 ++++++++++++++++++++++++++++---------------------------- perly.h | 64 ++-- perly.tab | 990 +++++++++++++++++++++++++++++++------------------------------- perly.y | 14 +- toke.c | 3 +- 6 files changed, 979 insertions(+), 995 deletions(-) diff --git a/op.c b/op.c index e988517..2bc03ae 100644 --- a/op.c +++ b/op.c @@ -5297,7 +5297,6 @@ Perl_package(pTHX_ OP *o) PL_hints |= HINT_BLOCK_SCOPE; PL_parser->copline = NOLINE; - PL_parser->expect = XSTATE; op_free(o); } @@ -5436,7 +5435,6 @@ Perl_utilize(pTHX_ int aver, I32 floor, OP *version, OP *idop, OP *arg) PL_hints |= HINT_BLOCK_SCOPE; PL_parser->copline = NOLINE; - PL_parser->expect = XSTATE; PL_cop_seqmax++; /* Purely for B::*'s benefit */ if (PL_cop_seqmax == PERL_PADSEQ_INTRO) /* not a legal value */ PL_cop_seqmax++; diff --git a/perly.act b/perly.act index 61850f4..ff02708 100644 --- a/perly.act +++ b/perly.act @@ -8,7 +8,7 @@ case 2: #line 114 "perly.y" { PL_parser->expect = XSTATE; - } + ;} break; case 3: @@ -16,14 +16,14 @@ case 2: { newPROG(block_end((ps[(3) - (4)].val.ival),(ps[(4) - (4)].val.opval))); (yyval.ival) = 0; - } + ;} break; case 4: #line 123 "perly.y" { parser->expect = XTERM; - } + ;} break; case 5: @@ -31,14 +31,14 @@ case 2: { PL_eval_root = (ps[(3) - (3)].val.opval); (yyval.ival) = 0; - } + ;} break; case 6: #line 132 "perly.y" { parser->expect = XBLOCK; - } + ;} break; case 7: @@ -49,14 +49,14 @@ case 2: (yyval.ival) = 0; yyunlex(); parser->yychar = YYEOF; - } + ;} break; case 8: #line 144 "perly.y" { parser->expect = XSTATE; - } + ;} break; case 9: @@ -67,14 +67,14 @@ case 2: (yyval.ival) = 0; yyunlex(); parser->yychar = YYEOF; - } + ;} break; case 10: #line 156 "perly.y" { parser->expect = XSTATE; - } + ;} break; case 11: @@ -85,14 +85,14 @@ case 2: (yyval.ival) = 0; yyunlex(); parser->yychar = YYEOF; - } + ;} break; case 12: #line 168 "perly.y" { parser->expect = XSTATE; - } + ;} break; case 13: @@ -100,7 +100,7 @@ case 2: { PL_eval_root = (ps[(3) - (3)].val.opval); (yyval.ival) = 0; - } + ;} break; case 14: @@ -108,7 +108,7 @@ case 2: { if (PL_parser->copline > (line_t)(ps[(1) - (4)].val.ival)) PL_parser->copline = (line_t)(ps[(1) - (4)].val.ival); (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval)); - } + ;} break; case 15: @@ -116,12 +116,12 @@ case 2: { if (PL_parser->copline > (line_t)(ps[(1) - (7)].val.ival)) PL_parser->copline = (line_t)(ps[(1) - (7)].val.ival); (yyval.opval) = block_end((ps[(2) - (7)].val.ival), (ps[(5) - (7)].val.opval)); - } + ;} break; case 16: #line 195 "perly.y" - { (yyval.ival) = block_start(TRUE); } + { (yyval.ival) = block_start(TRUE); ;} break; case 17: @@ -129,17 +129,17 @@ case 2: { if (PL_parser->copline > (line_t)(ps[(1) - (4)].val.ival)) PL_parser->copline = (line_t)(ps[(1) - (4)].val.ival); (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval)); - } + ;} break; case 18: #line 206 "perly.y" - { (yyval.ival) = block_start(FALSE); } + { (yyval.ival) = block_start(FALSE); ;} break; case 19: #line 211 "perly.y" - { (yyval.opval) = (OP*)NULL; } + { (yyval.opval) = (OP*)NULL; ;} break; case 20: @@ -148,12 +148,12 @@ case 2: PL_pad_reset_pending = TRUE; if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval)) PL_hints |= HINT_BLOCK_SCOPE; - } + ;} break; case 21: #line 222 "perly.y" - { (yyval.opval) = (OP*)NULL; } + { (yyval.opval) = (OP*)NULL; ;} break; case 22: @@ -162,38 +162,38 @@ case 2: PL_pad_reset_pending = TRUE; if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval)) PL_hints |= HINT_BLOCK_SCOPE; - } + ;} break; case 23: #line 233 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval) ? newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval)) : NULL; - } + ;} break; case 24: #line 237 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 25: #line 241 "perly.y" { (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[(1) - (2)].val.pval)[strlen((ps[(1) - (2)].val.pval))+1], (ps[(1) - (2)].val.pval), (ps[(2) - (2)].val.opval)); - } + ;} break; case 26: #line 245 "perly.y" { (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[(1) - (2)].val.pval)[strlen((ps[(1) - (2)].val.pval))+1], (ps[(1) - (2)].val.pval), (ps[(2) - (2)].val.opval)); - } + ;} break; case 27: #line 252 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 28: @@ -206,7 +206,7 @@ case 2: SvREFCNT_inc_simple_void(fmtcv); pad_add_anon(fmtcv, OP_NULL); } - } + ;} break; case 29: @@ -231,7 +231,7 @@ case 2: CvCLONE_on(PL_compcv); PL_parser->in_my = 0; PL_parser->in_my_stash = NULL; - } + ;} break; case 30: @@ -244,7 +244,7 @@ case 2: ; (yyval.opval) = (OP*)NULL; intro_my(); - } + ;} break; case 31: @@ -254,12 +254,12 @@ case 2: if ((ps[(2) - (4)].val.opval)) package_version((ps[(2) - (4)].val.opval)); (yyval.opval) = (OP*)NULL; - } + ;} break; case 32: #line 303 "perly.y" - { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ } + { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;} break; case 33: @@ -268,7 +268,7 @@ case 2: SvREFCNT_inc_simple_void(PL_compcv); utilize((ps[(1) - (7)].val.ival), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval)); (yyval.opval) = (OP*)NULL; - } + ;} break; case 34: @@ -277,7 +277,7 @@ case 2: (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))); PL_parser->copline = (line_t)(ps[(1) - (7)].val.ival); - } + ;} break; case 35: @@ -286,7 +286,7 @@ case 2: (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))); PL_parser->copline = (line_t)(ps[(1) - (7)].val.ival); - } + ;} break; case 36: @@ -300,17 +300,17 @@ case 2: ? 0 : offset)); PL_parser->copline = (line_t)(ps[(1) - (6)].val.ival); - } + ;} break; case 37: #line 334 "perly.y" - { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); } + { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;} break; case 38: #line 336 "perly.y" - { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); } + { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;} break; case 39: @@ -320,7 +320,7 @@ case 2: newWHILEOP(0, 1, (LOOP*)(OP*)NULL, (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival))); PL_parser->copline = (line_t)(ps[(1) - (8)].val.ival); - } + ;} break; case 40: @@ -330,101 +330,109 @@ case 2: newWHILEOP(0, 1, (LOOP*)(OP*)NULL, (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval), (ps[(6) - (8)].val.ival))); PL_parser->copline = (line_t)(ps[(1) - (8)].val.ival); - } + ;} break; case 41: -#line 353 "perly.y" +#line 352 "perly.y" + { parser->expect = XTERM; ;} + break; + + case 42: +#line 354 "perly.y" + { parser->expect = XTERM; ;} + break; + + case 43: +#line 357 "perly.y" { - OP *initop = (ps[(4) - (11)].val.opval); + OP *initop = (ps[(4) - (13)].val.opval); OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL, - scalar((ps[(6) - (11)].val.opval)), (ps[(11) - (11)].val.opval), (ps[(9) - (11)].val.opval), (ps[(8) - (11)].val.ival)); + scalar((ps[(7) - (13)].val.opval)), (ps[(13) - (13)].val.opval), (ps[(11) - (13)].val.opval), (ps[(10) - (13)].val.ival)); if (initop) { forop = op_prepend_elem(OP_LINESEQ, initop, op_append_elem(OP_LINESEQ, newOP(OP_UNSTACK, OPf_SPECIAL), forop)); } - (yyval.opval) = block_end((ps[(3) - (11)].val.ival), forop); - PL_parser->copline = (line_t)(ps[(1) - (11)].val.ival); - } + (yyval.opval) = block_end((ps[(3) - (13)].val.ival), forop); + PL_parser->copline = (line_t)(ps[(1) - (13)].val.ival); + ;} break; - case 42: -#line 367 "perly.y" + case 44: +#line 371 "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))); PL_parser->copline = (line_t)(ps[(1) - (9)].val.ival); - } + ;} break; - case 43: -#line 372 "perly.y" + case 45: +#line 376 "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))); PL_parser->copline = (line_t)(ps[(1) - (8)].val.ival); - } + ;} break; - case 44: -#line 378 "perly.y" + case 46: +#line 382 "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))); PL_parser->copline = (line_t)(ps[(1) - (7)].val.ival); - } + ;} break; - case 45: -#line 384 "perly.y" + case 47: +#line 388 "perly.y" { /* a block is a loop that happens once */ (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL, (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0); - } + ;} break; - case 46: -#line 390 "perly.y" + case 48: +#line 394 "perly.y" { package((ps[(3) - (5)].val.opval)); if ((ps[(2) - (5)].val.opval)) { package_version((ps[(2) - (5)].val.opval)); } - } + ;} break; - case 47: -#line 397 "perly.y" + case 49: +#line 401 "perly.y" { /* a block is a loop that happens once */ (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL, (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0); if (PL_parser->copline > (line_t)(ps[(4) - (8)].val.ival)) PL_parser->copline = (line_t)(ps[(4) - (8)].val.ival); - } + ;} break; - case 48: -#line 405 "perly.y" + case 50: +#line 409 "perly.y" { - PL_parser->expect = XSTATE; (yyval.opval) = (ps[(1) - (2)].val.opval); - } + ;} break; - case 49: -#line 410 "perly.y" + case 51: +#line 413 "perly.y" { - PL_parser->expect = XSTATE; (yyval.opval) = (OP*)NULL; PL_parser->copline = NOLINE; - } + ;} break; - case 50: -#line 419 "perly.y" + case 52: +#line 421 "perly.y" { OP *list; if ((ps[(2) - (2)].val.opval)) { OP *term = (ps[(2) - (2)].val.opval); @@ -438,197 +446,197 @@ case 2: else PL_parser->copline--; (yyval.opval) = newSTATEOP(0, NULL, convert(OP_FORMLINE, 0, list)); - } - break; - - case 51: -#line 436 "perly.y" - { (yyval.opval) = NULL; } - break; - - case 52: -#line 438 "perly.y" - { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); } + ;} break; case 53: -#line 443 "perly.y" - { (yyval.opval) = (OP*)NULL; } +#line 438 "perly.y" + { (yyval.opval) = NULL; ;} break; case 54: -#line 445 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 440 "perly.y" + { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); ;} break; case 55: -#line 447 "perly.y" - { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); } +#line 445 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; case 56: -#line 449 "perly.y" - { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); } +#line 447 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 57: -#line 451 "perly.y" - { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); } +#line 449 "perly.y" + { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;} break; case 58: -#line 453 "perly.y" - { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); } +#line 451 "perly.y" + { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;} break; case 59: -#line 455 "perly.y" - { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL); - PL_parser->copline = (line_t)(ps[(2) - (3)].val.ival); } +#line 453 "perly.y" + { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); ;} break; case 60: -#line 458 "perly.y" - { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); } +#line 455 "perly.y" + { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;} break; case 61: -#line 463 "perly.y" - { (yyval.opval) = (OP*)NULL; } +#line 457 "perly.y" + { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL); + PL_parser->copline = (line_t)(ps[(2) - (3)].val.ival); ;} break; case 62: +#line 460 "perly.y" + { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;} + break; + + case 63: #line 465 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} + break; + + case 64: +#line 467 "perly.y" { ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); - } + ;} break; - case 63: -#line 470 "perly.y" + case 65: +#line 472 "perly.y" { PL_parser->copline = (line_t)(ps[(1) - (6)].val.ival); (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)), op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval)); PL_hints |= HINT_BLOCK_SCOPE; - } + ;} break; - case 64: -#line 480 "perly.y" - { (yyval.opval) = (OP*)NULL; } + case 66: +#line 482 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; - case 65: -#line 482 "perly.y" - { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); } + case 67: +#line 484 "perly.y" + { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); ;} break; - case 66: -#line 487 "perly.y" + case 68: +#line 489 "perly.y" { (yyval.ival) = (PL_min_intro_pending && PL_max_intro_pending >= PL_min_intro_pending); - intro_my(); } - break; - - case 67: -#line 493 "perly.y" - { (yyval.opval) = (OP*)NULL; } + intro_my(); ;} break; case 69: -#line 499 "perly.y" - { YYSTYPE tmplval; - (void)scan_num("1", &tmplval); - (yyval.opval) = tmplval.opval; } +#line 495 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; case 71: -#line 507 "perly.y" - { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); } - break; - - case 72: -#line 512 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); } +#line 501 "perly.y" + { YYSTYPE tmplval; + (void)scan_num("1", &tmplval); + (yyval.opval) = tmplval.opval; ;} break; case 73: -#line 516 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); } +#line 509 "perly.y" + { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;} break; case 74: -#line 520 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); } +#line 514 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;} break; case 75: -#line 523 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 518 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;} break; case 76: -#line 524 "perly.y" - { (yyval.opval) = (OP*)NULL; } +#line 522 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;} break; case 77: -#line 528 "perly.y" - { (yyval.ival) = start_subparse(FALSE, 0); - SAVEFREESV(PL_compcv); } +#line 525 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 78: -#line 534 "perly.y" - { (yyval.ival) = start_subparse(FALSE, CVf_ANON); - SAVEFREESV(PL_compcv); } +#line 526 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; case 79: -#line 539 "perly.y" - { (yyval.ival) = start_subparse(TRUE, 0); - SAVEFREESV(PL_compcv); } +#line 530 "perly.y" + { (yyval.ival) = start_subparse(FALSE, 0); + SAVEFREESV(PL_compcv); ;} break; - case 82: -#line 550 "perly.y" - { (yyval.opval) = (OP*)NULL; } + case 80: +#line 536 "perly.y" + { (yyval.ival) = start_subparse(FALSE, CVf_ANON); + SAVEFREESV(PL_compcv); ;} break; - case 84: -#line 556 "perly.y" - { (yyval.opval) = (OP*)NULL; } + case 81: +#line 541 "perly.y" + { (yyval.ival) = start_subparse(TRUE, 0); + SAVEFREESV(PL_compcv); ;} break; - case 85: -#line 558 "perly.y" - { (yyval.opval) = (ps[(2) - (2)].val.opval); } + case 84: +#line 552 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; case 86: -#line 560 "perly.y" - { (yyval.opval) = (OP*)NULL; } +#line 558 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; case 87: -#line 565 "perly.y" - { (yyval.opval) = (ps[(2) - (2)].val.opval); } +#line 560 "perly.y" + { (yyval.opval) = (ps[(2) - (2)].val.opval); ;} break; case 88: -#line 567 "perly.y" - { (yyval.opval) = (OP*)NULL; } +#line 562 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; case 89: -#line 571 "perly.y" - { (yyval.opval) = (OP*)NULL; } +#line 567 "perly.y" + { (yyval.opval) = (ps[(2) - (2)].val.opval); ;} break; case 90: +#line 569 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} + break; + + case 91: #line 573 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} + break; + + case 92: +#line 575 "perly.y" { if (!FEATURE_SIGNATURES_IS_ENABLED) Perl_croak(aTHX_ "Experimental " @@ -637,342 +645,340 @@ case 2: packWARN(WARN_EXPERIMENTAL__SIGNATURES), "The signatures feature is experimental"); (yyval.opval) = parse_subsignature(); - } + ;} break; - case 91: -#line 583 "perly.y" + case 93: +#line 585 "perly.y" { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval), newSTATEOP(0, NULL, sawparens(newNULLLIST()))); PL_parser->expect = XBLOCK; - } + ;} break; - case 92: -#line 592 "perly.y" + case 94: +#line 594 "perly.y" { if (PL_parser->copline > (line_t)(ps[(3) - (5)].val.ival)) PL_parser->copline = (line_t)(ps[(3) - (5)].val.ival); (yyval.opval) = block_end((ps[(1) - (5)].val.ival), op_append_list(OP_LINESEQ, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval))); - } + ;} break; - case 93: -#line 601 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + case 95: +#line 603 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 94: -#line 602 "perly.y" - { (yyval.opval) = (OP*)NULL; - PL_parser->expect = XSTATE; - } + case 96: +#line 604 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; - case 95: + case 97: #line 609 "perly.y" - { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } + { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;} break; - case 96: + case 98: #line 611 "perly.y" - { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } + { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;} break; - case 97: + case 99: #line 613 "perly.y" - { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } + { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;} break; - case 99: + case 101: #line 619 "perly.y" - { (yyval.opval) = (ps[(1) - (2)].val.opval); } + { (yyval.opval) = (ps[(1) - (2)].val.opval); ;} break; - case 100: + case 102: #line 621 "perly.y" { OP* term = (ps[(3) - (3)].val.opval); (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term); - } + ;} break; - case 102: + case 104: #line 630 "perly.y" { (yyval.opval) = convert((ps[(1) - (3)].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) ); - } + ;} break; - case 103: + case 105: #line 634 "perly.y" { (yyval.opval) = convert((ps[(1) - (5)].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) ); - } + ;} break; - case 104: + case 106: #line 638 "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)), newUNOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval)))); - } + ;} break; - case 105: + case 107: #line 644 "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)))); - } + ;} break; - case 106: + case 108: #line 649 "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)), newUNOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval)))); - } + ;} break; - case 107: + case 109: #line 655 "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)), newUNOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval)))); - } + ;} break; - case 108: + case 110: #line 661 "perly.y" - { (yyval.opval) = convert((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); } + { (yyval.opval) = convert((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;} break; - case 109: + case 111: #line 663 "perly.y" - { (yyval.opval) = convert((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); } + { (yyval.opval) = convert((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;} break; - case 110: + case 112: #line 665 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); - (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); } + (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;} break; - case 111: + case 113: #line 668 "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))); - } + ;} break; - case 114: + case 116: #line 683 "perly.y" { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); PL_parser->expect = XOPERATOR; - } + ;} break; - case 115: + case 117: #line 687 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval))); - } + ;} break; - case 116: + case 118: #line 690 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV), scalar((ps[(4) - (5)].val.opval))); - } + ;} break; - case 117: + case 119: #line 695 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV), scalar((ps[(3) - (4)].val.opval))); - } + ;} break; - case 118: + case 120: #line 700 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval))); PL_parser->expect = XOPERATOR; - } + ;} break; - case 119: + case 121: #line 704 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV), jmaybe((ps[(4) - (6)].val.opval))); PL_parser->expect = XOPERATOR; - } + ;} break; - case 120: + case 122: #line 710 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV), jmaybe((ps[(3) - (5)].val.opval))); PL_parser->expect = XOPERATOR; - } + ;} break; - case 121: + case 123: #line 716 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, - newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); } + newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); ;} break; - case 122: + case 124: #line 719 "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))))); } + newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); ;} break; - case 123: + case 125: #line 724 "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))))); } + newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); ;} break; - case 124: + case 126: #line 728 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, - newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); } + newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); ;} break; - case 125: + case 127: #line 731 "perly.y" - { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); } + { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); ;} break; - case 126: + case 128: #line 733 "perly.y" - { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); } + { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); ;} break; - case 127: + case 129: #line 735 "perly.y" - { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); } + { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); ;} break; - case 128: + case 130: #line 740 "perly.y" - { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); } + { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); ;} break; - case 129: + case 131: #line 742 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } + { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; - case 130: + case 132: #line 744 "perly.y" { if ((ps[(2) - (3)].val.ival) != OP_REPEAT) scalar((ps[(1) - (3)].val.opval)); (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval))); - } + ;} break; - case 131: + case 133: #line 749 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } + { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; - case 132: + case 134: #line 751 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } + { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; - case 133: + case 135: #line 753 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } + { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; - case 134: + case 136: #line 755 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } + { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; - case 135: + case 137: #line 757 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } + { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; - case 136: + case 138: #line 759 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } + { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; - case 137: + case 139: #line 761 "perly.y" - { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } + { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; - case 138: + case 140: #line 763 "perly.y" - { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } + { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;} break; - case 139: + case 141: #line 765 "perly.y" - { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } + { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;} break; - case 140: + case 142: #line 767 "perly.y" - { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } + { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;} break; - case 141: + case 143: #line 769 "perly.y" - { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } + { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;} break; - case 142: + case 144: #line 774 "perly.y" - { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); } + { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); ;} break; - case 143: + case 145: #line 776 "perly.y" - { (yyval.opval) = (ps[(2) - (2)].val.opval); } + { (yyval.opval) = (ps[(2) - (2)].val.opval); ;} break; - case 144: + case 146: #line 779 "perly.y" - { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); } + { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;} break; - case 145: + case 147: #line 781 "perly.y" - { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); } + { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); ;} break; - case 146: + case 148: #line 783 "perly.y" { (yyval.opval) = newUNOP(OP_POSTINC, 0, - op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); } + op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); ;} break; - case 147: + case 149: #line 786 "perly.y" { (yyval.opval) = newUNOP(OP_POSTDEC, 0, - op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));} + op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));;} break; - case 148: + case 150: #line 789 "perly.y" { (yyval.opval) = convert(OP_JOIN, 0, op_append_elem( @@ -983,123 +989,123 @@ case 2: )), (ps[(1) - (2)].val.opval) )); - } + ;} break; - case 149: + case 151: #line 800 "perly.y" { (yyval.opval) = newUNOP(OP_PREINC, 0, - op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); } + op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); ;} break; - case 150: + case 152: #line 803 "perly.y" { (yyval.opval) = newUNOP(OP_PREDEC, 0, - op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); } + op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); ;} break; - case 151: + case 153: #line 810 "perly.y" - { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); } + { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); ;} break; - case 152: + case 154: #line 812 "perly.y" - { (yyval.opval) = newANONLIST((OP*)NULL);} + { (yyval.opval) = newANONLIST((OP*)NULL);;} break; - case 153: + case 155: #line 814 "perly.y" - { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); } + { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); ;} break; - case 154: + case 156: #line 816 "perly.y" - { (yyval.opval) = newANONHASH((OP*)NULL); } + { (yyval.opval) = newANONHASH((OP*)NULL); ;} break; - case 155: + case 157: #line 818 "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)); } + (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;} break; - case 156: + case 158: #line 825 "perly.y" - { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));} + { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));;} break; - case 157: + case 159: #line 827 "perly.y" - { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));} + { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));;} break; - case 162: + case 164: #line 835 "perly.y" - { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); } + { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;} break; - case 163: + case 165: #line 837 "perly.y" - { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN)); } + { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN)); ;} break; - case 164: + case 166: #line 839 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 165: + case 167: #line 841 "perly.y" - { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); } + { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;} break; - case 166: + case 168: #line 843 "perly.y" - { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); } + { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;} break; - case 167: + case 169: #line 845 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 168: + case 170: #line 847 "perly.y" - { (yyval.opval) = sawparens(newNULLLIST()); } + { (yyval.opval) = sawparens(newNULLLIST()); ;} break; - case 169: + case 171: #line 849 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 170: + case 172: #line 851 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 171: + case 173: #line 853 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 172: + case 174: #line 855 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 173: + case 175: #line 857 "perly.y" - { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));} + { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;} break; - case 174: + case 176: #line 859 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 175: + case 177: #line 861 "perly.y" { (yyval.opval) = op_prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), @@ -1109,10 +1115,10 @@ case 2: if ((yyval.opval) && (ps[(1) - (4)].val.opval)) (yyval.opval)->op_private |= (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING; - } + ;} break; - case 176: + case 178: #line 871 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVASLICE, newOP(OP_PUSHMARK, 0), @@ -1122,10 +1128,10 @@ case 2: if ((yyval.opval) && (ps[(1) - (4)].val.opval)) (yyval.opval)->op_private |= (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING; - } + ;} break; - case 177: + case 179: #line 881 "perly.y" { (yyval.opval) = op_prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), @@ -1136,10 +1142,10 @@ case 2: (yyval.opval)->op_private |= (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING; PL_parser->expect = XOPERATOR; - } + ;} break; - case 178: + case 180: #line 892 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, newOP(OP_PUSHMARK, 0), @@ -1150,156 +1156,156 @@ case 2: (yyval.opval)->op_private |= (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING; PL_parser->expect = XOPERATOR; - } + ;} break; - case 179: + case 181: #line 903 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 180: + case 182: #line 905 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); } + { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;} break; - case 181: + case 183: #line 907 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval))); - } + ;} break; - case 182: + case 184: #line 910 "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)))); - } + ;} break; - case 183: + case 185: #line 915 "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)))); - } + ;} break; - case 184: + case 186: #line 919 "perly.y" - { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); } + { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); ;} break; - case 185: + case 187: #line 921 "perly.y" - { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); } + { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;} break; - case 186: + case 188: #line 923 "perly.y" - { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); } + { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); ;} break; - case 187: + case 189: #line 925 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, - scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); } + scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); ;} break; - case 188: + case 190: #line 928 "perly.y" - { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); } + { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); ;} break; - case 189: + case 191: #line 930 "perly.y" { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL); - PL_hints |= HINT_BLOCK_SCOPE; } + PL_hints |= HINT_BLOCK_SCOPE; ;} break; - case 190: + case 192: #line 933 "perly.y" - { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); } + { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;} break; - case 191: + case 193: #line 935 "perly.y" - { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); } + { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;} break; - case 192: + case 194: #line 937 "perly.y" - { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); } + { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;} break; - case 193: + case 195: #line 939 "perly.y" - { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); } + { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;} break; - case 194: + case 196: #line 941 "perly.y" - { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); } + { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;} break; - case 195: + case 197: #line 943 "perly.y" - { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); } + { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); ;} break; - case 196: + case 198: #line 945 "perly.y" - { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); } + { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); ;} break; - case 197: + case 199: #line 947 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); } + { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;} break; - case 198: + case 200: #line 949 "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)))); } + op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;} break; - case 199: + case 201: #line 952 "perly.y" - { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); } + { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;} break; - case 200: + case 202: #line 954 "perly.y" - { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);} + { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);;} break; - case 201: + case 203: #line 956 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 202: + case 204: #line 958 "perly.y" - { (yyval.opval) = (ps[(1) - (3)].val.opval); } + { (yyval.opval) = (ps[(1) - (3)].val.opval); ;} break; - case 203: + case 205: #line 960 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); } + { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;} break; - case 204: + case 206: #line 962 "perly.y" { (yyval.opval) = ((ps[(1) - (3)].val.ival) == OP_NOT) ? newUNOP((ps[(1) - (3)].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0))) - : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); } + : newOP((ps[(1) - (3)].val.ival), OPf_SPECIAL); ;} break; - case 205: + case 207: #line 966 "perly.y" - { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); } + { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;} break; - case 206: + case 208: #line 968 "perly.y" { if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS @@ -1310,160 +1316,163 @@ case 2: SAVEFREESV(PL_compcv); } else (yyval.ival) = 0; - } + ;} break; - case 207: + case 209: #line 979 "perly.y" - { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival)); } + { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival)); ;} break; - case 210: + case 212: #line 983 "perly.y" { (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); - } + ;} break; - case 212: + case 214: #line 992 "perly.y" - { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); } + { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); ;} break; - case 213: + case 215: #line 994 "perly.y" - { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); } + { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;} break; - case 214: + case 216: #line 999 "perly.y" - { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); } + { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;} break; - case 215: + case 217: #line 1001 "perly.y" - { (yyval.opval) = sawparens(newNULLLIST()); } + { (yyval.opval) = sawparens(newNULLLIST()); ;} break; - case 216: + case 218: #line 1004 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 217: + case 219: #line 1006 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 218: + case 220: #line 1008 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 219: + case 221: #line 1013 "perly.y" - { (yyval.opval) = (OP*)NULL; } + { (yyval.opval) = (OP*)NULL; ;} break; - case 220: + case 222: #line 1015 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 221: + case 223: #line 1019 "perly.y" - { (yyval.opval) = (OP*)NULL; } + { (yyval.opval) = (OP*)NULL; ;} break; - case 222: + case 224: #line 1021 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 223: + case 225: #line 1027 "perly.y" - { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); } + { PL_parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;} break; - case 224: + case 226: #line 1031 "perly.y" - { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); } + { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;} break; - case 225: + case 227: #line 1035 "perly.y" - { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); } + { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); ;} break; - case 226: + case 228: #line 1039 "perly.y" { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival); - } + ;} break; - case 227: + case 229: #line 1045 "perly.y" { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival); - } + ;} break; - case 228: + case 230: #line 1051 "perly.y" - { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); } + { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); ;} break; - case 229: + case 231: #line 1053 "perly.y" - { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); } + { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;} break; - case 230: + case 232: #line 1057 "perly.y" - { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); } + { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); ;} break; - case 232: + case 234: #line 1062 "perly.y" - { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); } + { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); ;} break; - case 234: + case 236: #line 1067 "perly.y" - { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); } + { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); ;} break; - case 236: + case 238: #line 1072 "perly.y" - { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); } + { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); ;} break; - case 237: + case 239: #line 1077 "perly.y" - { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); } + { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;} break; - case 238: + case 240: #line 1079 "perly.y" - { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); } + { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;} break; - case 239: + case 241: #line 1081 "perly.y" - { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); } + { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;} break; - case 240: + case 242: #line 1084 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; + +/* Line 1267 of yacc.c. */ + default: break; /* Generated from: - * 7e6c275bbd1dbc800c205a8a8b0cd785e4859f94976ee7372149598471f16f81 perly.y + * e89acf986fa79bb74d827a4fd4823d07ff25bd99c2087cf4e7a7e6ae41d7a246 perly.y * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl * ex: set ro: */ diff --git a/perly.h b/perly.h index cd92798..ad117a7 100644 --- a/perly.h +++ b/perly.h @@ -5,24 +5,27 @@ */ #ifdef PERL_CORE -/* A Bison parser, made by GNU Bison 2.7.12-4996. */ +/* A Bison parser, made by GNU Bison 2.3. */ -/* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify +/* 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 it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - + the Free Software Foundation; either version 2, or (at your option) + any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -33,18 +36,10 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -133,7 +128,6 @@ extern int yydebug; ARROW = 337 }; #endif - /* Tokens. */ #define GRAMPROG 258 #define GRAMEXPR 259 @@ -217,6 +211,8 @@ extern int yydebug; #define ARROW 337 + + #ifdef PERL_IN_TOKE_C static bool S_is_opval_token(int type) { @@ -243,39 +239,23 @@ S_is_opval_token(int type) { #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { -/* Line 2053 of yacc.c */ - I32 ival; /* __DEFAULT__ (marker for regen_perly.pl; must always be 1st union member) */ char *pval; OP *opval; GV *gvval; - - -/* Line 2053 of yacc.c */ -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 +} +/* Line 1529 of yacc.c. */ + YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ /* Generated from: - * 7e6c275bbd1dbc800c205a8a8b0cd785e4859f94976ee7372149598471f16f81 perly.y + * e89acf986fa79bb74d827a4fd4823d07ff25bd99c2087cf4e7a7e6ae41d7a246 perly.y * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl * ex: set ro: */ diff --git a/perly.tab b/perly.tab index bd3a25c..a371c09 100644 --- a/perly.tab +++ b/perly.tab @@ -11,11 +11,11 @@ /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 104 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 72 +#define YYNNTS 74 /* YYNRULES -- Number of rules. */ -#define YYNRULES 240 +#define YYNRULES 242 /* YYNRULES -- Number of states. */ -#define YYNSTATES 474 +#define YYNSTATES 476 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -72,115 +72,116 @@ static const yytype_uint16 yyprhs[] = 24, 25, 29, 30, 34, 39, 47, 48, 53, 54, 55, 58, 59, 62, 64, 66, 69, 72, 74, 79, 80, 88, 93, 94, 102, 110, 118, 125, 132, 135, - 144, 153, 165, 175, 184, 192, 195, 196, 205, 208, - 210, 213, 214, 218, 220, 222, 226, 230, 234, 238, - 242, 246, 247, 250, 257, 258, 261, 262, 263, 265, - 266, 268, 270, 272, 274, 276, 278, 279, 280, 281, - 282, 284, 286, 287, 289, 290, 293, 295, 298, 300, - 301, 302, 306, 312, 314, 316, 320, 324, 328, 330, - 333, 337, 339, 343, 349, 356, 360, 364, 370, 373, - 378, 379, 385, 387, 389, 395, 400, 406, 411, 417, - 424, 430, 435, 441, 446, 450, 457, 462, 468, 472, - 476, 480, 484, 488, 492, 496, 500, 504, 508, 512, - 516, 520, 524, 527, 530, 533, 536, 539, 542, 545, - 548, 551, 555, 558, 563, 567, 573, 576, 579, 581, - 583, 585, 587, 593, 596, 598, 601, 605, 607, 610, - 612, 614, 616, 618, 620, 622, 627, 632, 638, 644, - 646, 648, 652, 657, 661, 666, 671, 676, 681, 686, - 688, 691, 694, 696, 699, 702, 704, 707, 709, 712, - 714, 718, 720, 724, 726, 730, 735, 736, 742, 744, - 746, 748, 750, 754, 757, 761, 764, 766, 768, 770, - 771, 773, 774, 776, 778, 781, 784, 787, 790, 793, - 798, 801, 803, 807, 809, 813, 815, 819, 821, 823, - 825 + 144, 153, 154, 155, 169, 179, 188, 196, 199, 200, + 209, 212, 214, 217, 218, 222, 224, 226, 230, 234, + 238, 242, 246, 250, 251, 254, 261, 262, 265, 266, + 267, 269, 270, 272, 274, 276, 278, 280, 282, 283, + 284, 285, 286, 288, 290, 291, 293, 294, 297, 299, + 302, 304, 305, 306, 310, 316, 318, 320, 324, 328, + 332, 334, 337, 341, 343, 347, 353, 360, 364, 368, + 374, 377, 382, 383, 389, 391, 393, 399, 404, 410, + 415, 421, 428, 434, 439, 445, 450, 454, 461, 466, + 472, 476, 480, 484, 488, 492, 496, 500, 504, 508, + 512, 516, 520, 524, 528, 531, 534, 537, 540, 543, + 546, 549, 552, 555, 559, 562, 567, 571, 577, 580, + 583, 585, 587, 589, 591, 597, 600, 602, 605, 609, + 611, 614, 616, 618, 620, 622, 624, 626, 631, 636, + 642, 648, 650, 652, 656, 661, 665, 670, 675, 680, + 685, 690, 692, 695, 698, 700, 703, 706, 708, 711, + 713, 716, 718, 722, 724, 728, 730, 734, 739, 740, + 746, 748, 750, 752, 754, 758, 761, 765, 768, 770, + 772, 774, 775, 777, 778, 780, 782, 785, 788, 791, + 794, 797, 802, 805, 807, 811, 813, 817, 819, 823, + 825, 827, 829 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { 105, 0, -1, -1, 3, 106, 114, 117, -1, -1, - 4, 107, 164, -1, -1, 5, 108, 112, -1, -1, + 4, 107, 166, -1, -1, 5, 108, 112, -1, -1, 6, 109, 121, -1, -1, 7, 110, 119, -1, -1, 8, 111, 117, -1, 9, 114, 117, 10, -1, 21, 114, 20, 74, 118, 20, 22, -1, -1, 9, 116, 117, 10, -1, -1, -1, 117, 119, -1, -1, 118, - 125, -1, 121, -1, 120, -1, 36, 121, -1, 36, - 120, -1, 35, -1, 37, 140, 137, 113, -1, -1, - 38, 141, 138, 122, 142, 143, 148, -1, 40, 23, - 23, 20, -1, -1, 41, 138, 123, 23, 23, 163, - 20, -1, 44, 103, 114, 134, 102, 115, 128, -1, - 45, 103, 114, 136, 102, 115, 128, -1, 50, 103, - 114, 134, 102, 115, -1, 51, 103, 114, 134, 102, - 115, -1, 52, 112, -1, 42, 103, 114, 132, 102, - 130, 115, 129, -1, 43, 103, 114, 133, 102, 130, - 115, 129, -1, 49, 103, 114, 135, 20, 132, 20, - 130, 135, 102, 115, -1, 49, 70, 114, 165, 103, - 134, 102, 115, 129, -1, 49, 167, 103, 114, 134, - 102, 115, 129, -1, 49, 103, 114, 134, 102, 115, - 129, -1, 112, 129, -1, -1, 40, 23, 23, 9, - 114, 124, 117, 10, -1, 127, 20, -1, 20, -1, - 26, 126, -1, -1, 73, 117, 74, -1, 1, -1, - 149, -1, 149, 44, 149, -1, 149, 45, 149, -1, - 149, 42, 149, -1, 149, 43, 133, -1, 149, 49, - 149, -1, 149, 51, 149, -1, -1, 46, 115, -1, - 47, 103, 134, 102, 115, 128, -1, -1, 48, 112, - -1, -1, -1, 127, -1, -1, 149, -1, 149, -1, - 149, -1, 131, -1, 133, -1, 23, -1, -1, -1, - -1, -1, 23, -1, 28, -1, -1, 26, -1, -1, - 72, 26, -1, 72, -1, 72, 26, -1, 72, -1, - -1, -1, 103, 146, 102, -1, 114, 145, 9, 117, - 10, -1, 147, -1, 20, -1, 149, 78, 149, -1, - 149, 77, 149, -1, 149, 76, 149, -1, 150, -1, - 150, 80, -1, 150, 80, 159, -1, 159, -1, 60, - 175, 150, -1, 58, 103, 175, 149, 102, -1, 159, - 101, 153, 103, 164, 102, -1, 159, 101, 153, -1, - 24, 175, 163, -1, 25, 175, 103, 164, 102, -1, - 60, 163, -1, 58, 103, 164, 102, -1, -1, 33, - 139, 112, 152, 163, -1, 24, -1, 167, -1, 174, - 9, 149, 20, 10, -1, 167, 11, 149, 12, -1, - 159, 101, 11, 149, 12, -1, 154, 11, 149, 12, - -1, 167, 9, 149, 20, 10, -1, 159, 101, 9, - 149, 20, 10, -1, 154, 9, 149, 20, 10, -1, - 159, 101, 103, 102, -1, 159, 101, 103, 149, 102, - -1, 154, 103, 149, 102, -1, 154, 103, 102, -1, - 103, 149, 102, 11, 149, 12, -1, 29, 11, 149, - 12, -1, 103, 102, 11, 149, 12, -1, 159, 81, - 159, -1, 159, 95, 159, -1, 159, 63, 159, -1, - 159, 64, 159, -1, 159, 89, 159, -1, 159, 61, - 159, -1, 159, 62, 159, -1, 159, 88, 159, -1, - 159, 87, 159, -1, 159, 54, 159, -1, 159, 86, - 159, -1, 159, 85, 159, -1, 159, 84, 159, -1, - 159, 90, 159, -1, 13, 159, -1, 14, 159, -1, - 91, 159, -1, 92, 159, -1, 159, 98, -1, 159, - 97, -1, 159, 96, -1, 100, 159, -1, 99, 159, - -1, 11, 149, 12, -1, 11, 12, -1, 67, 149, - 20, 10, -1, 67, 20, 10, -1, 39, 139, 142, - 143, 147, -1, 66, 159, -1, 66, 112, -1, 155, - -1, 156, -1, 157, -1, 158, -1, 159, 82, 159, - 83, 159, -1, 93, 159, -1, 161, -1, 69, 159, - -1, 103, 149, 102, -1, 29, -1, 103, 102, -1, - 167, -1, 171, -1, 169, -1, 168, -1, 170, -1, - 154, -1, 172, 11, 149, 12, -1, 173, 11, 149, - 12, -1, 172, 9, 149, 20, 10, -1, 173, 9, - 149, 20, 10, -1, 26, -1, 166, -1, 166, 103, - 102, -1, 166, 103, 149, 102, -1, 68, 141, 163, - -1, 159, 101, 15, 18, -1, 159, 101, 16, 18, - -1, 159, 101, 17, 18, -1, 159, 101, 19, 18, - -1, 159, 101, 18, 18, -1, 53, -1, 53, 159, - -1, 79, 150, -1, 59, -1, 59, 112, -1, 59, - 159, -1, 71, -1, 71, 159, -1, 32, -1, 32, - 159, -1, 56, -1, 56, 103, 102, -1, 30, -1, - 30, 103, 102, -1, 31, -1, 57, 103, 102, -1, - 57, 103, 149, 102, -1, -1, 27, 160, 103, 150, - 102, -1, 23, -1, 151, -1, 55, -1, 34, -1, - 70, 162, 144, -1, 70, 162, -1, 103, 149, 102, - -1, 103, 102, -1, 167, -1, 169, -1, 168, -1, - -1, 150, -1, -1, 149, -1, 167, -1, 19, 175, - -1, 15, 175, -1, 16, 175, -1, 17, 175, -1, - 65, 175, -1, 159, 101, 65, 18, -1, 18, 175, - -1, 168, -1, 159, 101, 16, -1, 169, -1, 159, - 101, 17, -1, 171, -1, 159, 101, 18, -1, 23, - -1, 167, -1, 112, -1, 28, -1 + 127, -1, 121, -1, 120, -1, 36, 121, -1, 36, + 120, -1, 35, -1, 37, 142, 139, 113, -1, -1, + 38, 143, 140, 122, 144, 145, 150, -1, 40, 23, + 23, 20, -1, -1, 41, 140, 123, 23, 23, 165, + 20, -1, 44, 103, 114, 136, 102, 115, 130, -1, + 45, 103, 114, 138, 102, 115, 130, -1, 50, 103, + 114, 136, 102, 115, -1, 51, 103, 114, 136, 102, + 115, -1, 52, 112, -1, 42, 103, 114, 134, 102, + 132, 115, 131, -1, 43, 103, 114, 135, 102, 132, + 115, 131, -1, -1, -1, 49, 103, 114, 137, 20, + 124, 134, 20, 125, 132, 137, 102, 115, -1, 49, + 70, 114, 167, 103, 136, 102, 115, 131, -1, 49, + 169, 103, 114, 136, 102, 115, 131, -1, 49, 103, + 114, 136, 102, 115, 131, -1, 112, 131, -1, -1, + 40, 23, 23, 9, 114, 126, 117, 10, -1, 129, + 20, -1, 20, -1, 26, 128, -1, -1, 73, 117, + 74, -1, 1, -1, 151, -1, 151, 44, 151, -1, + 151, 45, 151, -1, 151, 42, 151, -1, 151, 43, + 135, -1, 151, 49, 151, -1, 151, 51, 151, -1, + -1, 46, 115, -1, 47, 103, 136, 102, 115, 130, + -1, -1, 48, 112, -1, -1, -1, 129, -1, -1, + 151, -1, 151, -1, 151, -1, 133, -1, 135, -1, + 23, -1, -1, -1, -1, -1, 23, -1, 28, -1, + -1, 26, -1, -1, 72, 26, -1, 72, -1, 72, + 26, -1, 72, -1, -1, -1, 103, 148, 102, -1, + 114, 147, 9, 117, 10, -1, 149, -1, 20, -1, + 151, 78, 151, -1, 151, 77, 151, -1, 151, 76, + 151, -1, 152, -1, 152, 80, -1, 152, 80, 161, + -1, 161, -1, 60, 177, 152, -1, 58, 103, 177, + 151, 102, -1, 161, 101, 155, 103, 166, 102, -1, + 161, 101, 155, -1, 24, 177, 165, -1, 25, 177, + 103, 166, 102, -1, 60, 165, -1, 58, 103, 166, + 102, -1, -1, 33, 141, 112, 154, 165, -1, 24, + -1, 169, -1, 176, 9, 151, 20, 10, -1, 169, + 11, 151, 12, -1, 161, 101, 11, 151, 12, -1, + 156, 11, 151, 12, -1, 169, 9, 151, 20, 10, + -1, 161, 101, 9, 151, 20, 10, -1, 156, 9, + 151, 20, 10, -1, 161, 101, 103, 102, -1, 161, + 101, 103, 151, 102, -1, 156, 103, 151, 102, -1, + 156, 103, 102, -1, 103, 151, 102, 11, 151, 12, + -1, 29, 11, 151, 12, -1, 103, 102, 11, 151, + 12, -1, 161, 81, 161, -1, 161, 95, 161, -1, + 161, 63, 161, -1, 161, 64, 161, -1, 161, 89, + 161, -1, 161, 61, 161, -1, 161, 62, 161, -1, + 161, 88, 161, -1, 161, 87, 161, -1, 161, 54, + 161, -1, 161, 86, 161, -1, 161, 85, 161, -1, + 161, 84, 161, -1, 161, 90, 161, -1, 13, 161, + -1, 14, 161, -1, 91, 161, -1, 92, 161, -1, + 161, 98, -1, 161, 97, -1, 161, 96, -1, 100, + 161, -1, 99, 161, -1, 11, 151, 12, -1, 11, + 12, -1, 67, 151, 20, 10, -1, 67, 20, 10, + -1, 39, 141, 144, 145, 149, -1, 66, 161, -1, + 66, 112, -1, 157, -1, 158, -1, 159, -1, 160, + -1, 161, 82, 161, 83, 161, -1, 93, 161, -1, + 163, -1, 69, 161, -1, 103, 151, 102, -1, 29, + -1, 103, 102, -1, 169, -1, 173, -1, 171, -1, + 170, -1, 172, -1, 156, -1, 174, 11, 151, 12, + -1, 175, 11, 151, 12, -1, 174, 9, 151, 20, + 10, -1, 175, 9, 151, 20, 10, -1, 26, -1, + 168, -1, 168, 103, 102, -1, 168, 103, 151, 102, + -1, 68, 143, 165, -1, 161, 101, 15, 18, -1, + 161, 101, 16, 18, -1, 161, 101, 17, 18, -1, + 161, 101, 19, 18, -1, 161, 101, 18, 18, -1, + 53, -1, 53, 161, -1, 79, 152, -1, 59, -1, + 59, 112, -1, 59, 161, -1, 71, -1, 71, 161, + -1, 32, -1, 32, 161, -1, 56, -1, 56, 103, + 102, -1, 30, -1, 30, 103, 102, -1, 31, -1, + 57, 103, 102, -1, 57, 103, 151, 102, -1, -1, + 27, 162, 103, 152, 102, -1, 23, -1, 153, -1, + 55, -1, 34, -1, 70, 164, 146, -1, 70, 164, + -1, 103, 151, 102, -1, 103, 102, -1, 169, -1, + 171, -1, 170, -1, -1, 152, -1, -1, 151, -1, + 169, -1, 19, 177, -1, 15, 177, -1, 16, 177, + -1, 17, 177, -1, 65, 177, -1, 161, 101, 65, + 18, -1, 18, 177, -1, 170, -1, 161, 101, 16, + -1, 171, -1, 161, 101, 17, -1, 173, -1, 161, + 101, 18, -1, 23, -1, 169, -1, 112, -1, 28, + -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -190,31 +191,31 @@ static const yytype_uint16 yyrline[] = 156, 155, 168, 167, 179, 187, 195, 198, 206, 211, 212, 222, 223, 232, 236, 240, 244, 251, 253, 264, 263, 295, 303, 302, 310, 316, 322, 333, 335, 337, - 344, 351, 366, 371, 377, 383, 390, 389, 404, 409, - 418, 436, 437, 442, 444, 446, 448, 450, 452, 454, - 457, 463, 464, 469, 480, 481, 487, 493, 494, 499, - 502, 506, 511, 515, 519, 523, 524, 528, 534, 539, - 544, 545, 550, 551, 556, 557, 559, 564, 566, 571, - 573, 572, 591, 601, 602, 608, 610, 612, 614, 618, - 620, 625, 629, 633, 637, 643, 648, 654, 660, 662, - 665, 664, 675, 676, 680, 686, 689, 694, 699, 703, - 709, 715, 718, 723, 727, 730, 732, 734, 739, 741, - 743, 748, 750, 752, 754, 756, 758, 760, 762, 764, - 766, 768, 773, 775, 778, 780, 782, 785, 788, 799, - 802, 809, 811, 813, 815, 817, 824, 826, 830, 831, - 832, 833, 834, 836, 838, 840, 842, 844, 846, 848, - 850, 852, 854, 856, 858, 860, 870, 880, 891, 902, - 904, 906, 909, 914, 918, 920, 922, 924, 927, 929, - 932, 934, 936, 938, 940, 942, 944, 946, 948, 951, - 953, 955, 957, 959, 961, 965, 968, 967, 980, 981, - 982, 987, 991, 993, 998, 1000, 1003, 1005, 1007, 1012, - 1014, 1019, 1020, 1026, 1030, 1034, 1038, 1044, 1050, 1052, - 1056, 1060, 1061, 1065, 1066, 1070, 1071, 1076, 1078, 1080, - 1083 + 344, 352, 354, 351, 370, 375, 381, 387, 394, 393, + 408, 412, 420, 438, 439, 444, 446, 448, 450, 452, + 454, 456, 459, 465, 466, 471, 482, 483, 489, 495, + 496, 501, 504, 508, 513, 517, 521, 525, 526, 530, + 536, 541, 546, 547, 552, 553, 558, 559, 561, 566, + 568, 573, 575, 574, 593, 603, 604, 608, 610, 612, + 614, 618, 620, 625, 629, 633, 637, 643, 648, 654, + 660, 662, 665, 664, 675, 676, 680, 686, 689, 694, + 699, 703, 709, 715, 718, 723, 727, 730, 732, 734, + 739, 741, 743, 748, 750, 752, 754, 756, 758, 760, + 762, 764, 766, 768, 773, 775, 778, 780, 782, 785, + 788, 799, 802, 809, 811, 813, 815, 817, 824, 826, + 830, 831, 832, 833, 834, 836, 838, 840, 842, 844, + 846, 848, 850, 852, 854, 856, 858, 860, 870, 880, + 891, 902, 904, 906, 909, 914, 918, 920, 922, 924, + 927, 929, 932, 934, 936, 938, 940, 942, 944, 946, + 948, 951, 953, 955, 957, 959, 961, 965, 968, 967, + 980, 981, 982, 987, 991, 993, 998, 1000, 1003, 1005, + 1007, 1012, 1014, 1019, 1020, 1026, 1030, 1034, 1038, 1044, + 1050, 1052, 1056, 1060, 1061, 1065, 1066, 1070, 1071, 1076, + 1078, 1080, 1083 }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = @@ -233,18 +234,18 @@ static const char *const yytname[] = "ANDOP", "NOTOP", "','", "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR", "ANDAND", "BITOROP", "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "REFGEN", "UMINUS", "POWOP", "POSTJOIN", "POSTDEC", "POSTINC", "PREDEC", - "PREINC", "ARROW", "')'", "'('", "$accept", "grammar", "$@1", "$@2", - "$@3", "$@4", "$@5", "$@6", "block", "formblock", "remember", "mblock", + "PREINC", "ARROW", "')'", "'('", "$accept", "grammar", "@1", "@2", "@3", + "@4", "@5", "@6", "block", "formblock", "remember", "mblock", "mremember", "stmtseq", "formstmtseq", "fullstmt", "labfullstmt", - "barestmt", "$@7", "$@8", "$@9", "formline", "formarg", "sideff", "else", - "cont", "mintro", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "miexpr", - "formname", "startsub", "startanonsub", "startformsub", "subname", - "proto", "subattrlist", "myattrlist", "subsignature", "@10", - "realsubbody", "optsubbody", "expr", "listexpr", "listop", "@11", - "method", "subscripted", "termbinop", "termunop", "anonymous", "termdo", - "term", "@12", "myattrterm", "myterm", "optlistexpr", "optexpr", - "my_scalar", "amper", "scalar", "ary", "hsh", "arylen", "star", - "sliceme", "kvslice", "gelem", "indirob", YY_NULL + "barestmt", "@7", "@8", "@9", "@10", "@11", "formline", "formarg", + "sideff", "else", "cont", "mintro", "nexpr", "texpr", "iexpr", "mexpr", + "mnexpr", "miexpr", "formname", "startsub", "startanonsub", + "startformsub", "subname", "proto", "subattrlist", "myattrlist", + "subsignature", "@12", "realsubbody", "optsubbody", "expr", "listexpr", + "listop", "@13", "method", "subscripted", "termbinop", "termunop", + "anonymous", "termdo", "term", "@14", "myattrterm", "myterm", + "optlistexpr", "optexpr", "my_scalar", "amper", "scalar", "ary", "hsh", + "arylen", "star", "sliceme", "kvslice", "gelem", "indirob", 0 }; #endif @@ -274,27 +275,27 @@ static const yytype_uint8 yyr1[] = 110, 105, 111, 105, 112, 113, 114, 115, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 121, 121, 123, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 124, 121, 121, 121, - 125, 126, 126, 127, 127, 127, 127, 127, 127, 127, - 127, 128, 128, 128, 129, 129, 130, 131, 131, 132, - 132, 133, 134, 135, 136, 137, 137, 138, 139, 140, - 141, 141, 142, 142, 143, 143, 143, 144, 144, 145, - 146, 145, 147, 148, 148, 149, 149, 149, 149, 150, - 150, 150, 151, 151, 151, 151, 151, 151, 151, 151, - 152, 151, 153, 153, 154, 154, 154, 154, 154, 154, - 154, 154, 154, 154, 154, 154, 154, 154, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 157, 157, 157, 157, 157, 158, 158, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 160, 159, 159, 159, - 159, 159, 161, 161, 162, 162, 162, 162, 162, 163, - 163, 164, 164, 165, 166, 167, 168, 169, 170, 170, - 171, 172, 172, 173, 173, 174, 174, 175, 175, 175, - 175 + 121, 124, 125, 121, 121, 121, 121, 121, 126, 121, + 121, 121, 127, 128, 128, 129, 129, 129, 129, 129, + 129, 129, 129, 130, 130, 130, 131, 131, 132, 133, + 133, 134, 134, 135, 136, 137, 138, 139, 139, 140, + 141, 142, 143, 143, 144, 144, 145, 145, 145, 146, + 146, 147, 148, 147, 149, 150, 150, 151, 151, 151, + 151, 152, 152, 152, 153, 153, 153, 153, 153, 153, + 153, 153, 154, 153, 155, 155, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, + 157, 157, 157, 157, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 159, 159, 159, 159, 159, 160, 160, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 162, 161, + 161, 161, 161, 161, 163, 163, 164, 164, 164, 164, + 164, 165, 165, 166, 166, 167, 168, 169, 170, 171, + 172, 172, 173, 174, 174, 175, 175, 176, 176, 177, + 177, 177, 177 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -304,82 +305,82 @@ static const yytype_uint8 yyr2[] = 0, 3, 0, 3, 4, 7, 0, 4, 0, 0, 2, 0, 2, 1, 1, 2, 2, 1, 4, 0, 7, 4, 0, 7, 7, 7, 6, 6, 2, 8, - 8, 11, 9, 8, 7, 2, 0, 8, 2, 1, - 2, 0, 3, 1, 1, 3, 3, 3, 3, 3, - 3, 0, 2, 6, 0, 2, 0, 0, 1, 0, - 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, - 1, 1, 0, 1, 0, 2, 1, 2, 1, 0, - 0, 3, 5, 1, 1, 3, 3, 3, 1, 2, - 3, 1, 3, 5, 6, 3, 3, 5, 2, 4, - 0, 5, 1, 1, 5, 4, 5, 4, 5, 6, - 5, 4, 5, 4, 3, 6, 4, 5, 3, 3, + 8, 0, 0, 13, 9, 8, 7, 2, 0, 8, + 2, 1, 2, 0, 3, 1, 1, 3, 3, 3, + 3, 3, 3, 0, 2, 6, 0, 2, 0, 0, + 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 0, 1, 0, 2, 1, 2, + 1, 0, 0, 3, 5, 1, 1, 3, 3, 3, + 1, 2, 3, 1, 3, 5, 6, 3, 3, 5, + 2, 4, 0, 5, 1, 1, 5, 4, 5, 4, + 5, 6, 5, 4, 5, 4, 3, 6, 4, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 2, 4, 3, 5, 2, 2, 1, 1, - 1, 1, 5, 2, 1, 2, 3, 1, 2, 1, - 1, 1, 1, 1, 1, 4, 4, 5, 5, 1, - 1, 3, 4, 3, 4, 4, 4, 4, 4, 1, - 2, 2, 1, 2, 2, 1, 2, 1, 2, 1, - 3, 1, 3, 1, 3, 4, 0, 5, 1, 1, - 1, 1, 3, 2, 3, 2, 1, 1, 1, 0, - 1, 0, 1, 1, 2, 2, 2, 2, 2, 4, - 2, 1, 3, 1, 3, 1, 3, 1, 1, 1, - 1 + 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 2, 4, 3, 5, 2, 2, + 1, 1, 1, 1, 5, 2, 1, 2, 3, 1, + 2, 1, 1, 1, 1, 1, 1, 4, 4, 5, + 5, 1, 1, 3, 4, 3, 4, 4, 4, 4, + 4, 1, 2, 2, 1, 2, 2, 1, 2, 1, + 2, 1, 3, 1, 3, 1, 3, 4, 0, 5, + 1, 1, 1, 1, 3, 2, 3, 2, 1, 1, + 1, 0, 1, 0, 1, 1, 2, 2, 2, 2, + 2, 4, 2, 1, 3, 1, 3, 1, 3, 1, + 1, 1, 1 }; -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE doesn't specify something else to do. Zero +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 2, 4, 6, 8, 10, 12, 0, 16, 221, + 0, 2, 4, 6, 8, 10, 12, 0, 16, 223, 0, 0, 0, 19, 1, 19, 0, 0, 0, 0, - 0, 0, 0, 0, 208, 0, 0, 179, 206, 167, - 201, 203, 197, 78, 211, 78, 189, 210, 199, 0, - 0, 192, 219, 0, 0, 0, 0, 0, 0, 195, - 0, 0, 0, 0, 0, 0, 0, 222, 98, 209, - 174, 158, 159, 160, 161, 101, 164, 5, 180, 169, - 172, 171, 173, 170, 0, 0, 0, 16, 7, 53, - 49, 27, 79, 0, 0, 77, 0, 0, 0, 0, - 0, 0, 0, 0, 64, 9, 0, 54, 0, 11, - 24, 23, 0, 0, 152, 0, 142, 143, 237, 240, - 239, 238, 225, 226, 227, 230, 224, 219, 0, 0, - 0, 0, 198, 0, 82, 190, 0, 0, 221, 193, - 194, 237, 220, 108, 238, 0, 228, 157, 156, 0, - 0, 80, 81, 219, 165, 0, 213, 216, 218, 217, - 196, 191, 144, 145, 163, 150, 149, 168, 0, 0, - 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 210, 0, 0, 181, 208, 169, + 203, 205, 199, 80, 213, 80, 191, 212, 201, 0, + 0, 194, 221, 0, 0, 0, 0, 0, 0, 197, + 0, 0, 0, 0, 0, 0, 0, 224, 100, 211, + 176, 160, 161, 162, 163, 103, 166, 5, 182, 171, + 174, 173, 175, 172, 0, 0, 0, 16, 7, 55, + 51, 27, 81, 0, 0, 79, 0, 0, 0, 0, + 0, 0, 0, 0, 66, 9, 0, 56, 0, 11, + 24, 23, 0, 0, 154, 0, 144, 145, 239, 242, + 241, 240, 227, 228, 229, 232, 226, 221, 0, 0, + 0, 0, 200, 0, 84, 192, 0, 0, 223, 195, + 196, 239, 222, 110, 240, 0, 230, 159, 158, 0, + 0, 82, 83, 221, 167, 0, 215, 218, 220, 219, + 198, 193, 146, 147, 165, 152, 151, 170, 0, 0, + 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 148, 147, 146, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 19, 76, 77, 0, 32, 16, 16, - 16, 16, 16, 16, 0, 16, 16, 38, 0, 45, - 48, 0, 0, 0, 0, 0, 0, 26, 25, 20, - 151, 106, 221, 0, 0, 202, 110, 83, 84, 200, - 204, 0, 0, 0, 102, 154, 0, 183, 215, 0, - 88, 212, 0, 166, 97, 96, 95, 100, 0, 0, - 124, 0, 137, 133, 134, 130, 131, 128, 0, 140, - 139, 138, 136, 135, 132, 141, 129, 0, 0, 0, - 232, 234, 236, 0, 112, 0, 0, 105, 113, 181, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, - 0, 29, 0, 0, 69, 0, 0, 0, 0, 0, - 16, 0, 0, 65, 57, 58, 71, 55, 56, 59, - 60, 0, 0, 126, 219, 86, 16, 205, 109, 0, - 153, 214, 87, 0, 0, 0, 117, 123, 0, 0, - 0, 184, 185, 186, 188, 187, 229, 121, 0, 221, - 182, 0, 115, 0, 175, 0, 176, 0, 14, 16, - 28, 82, 16, 31, 0, 0, 70, 0, 0, 72, - 74, 0, 0, 223, 68, 73, 0, 0, 54, 0, - 0, 0, 107, 207, 111, 85, 89, 155, 103, 127, - 0, 120, 162, 0, 116, 122, 0, 118, 177, 178, - 114, 0, 84, 46, 219, 66, 66, 0, 0, 0, - 0, 69, 0, 0, 0, 90, 0, 125, 119, 104, - 0, 16, 19, 0, 0, 0, 18, 61, 61, 0, - 64, 0, 0, 36, 37, 0, 19, 21, 94, 93, - 30, 0, 33, 64, 64, 19, 0, 0, 34, 35, - 0, 44, 66, 64, 91, 0, 0, 47, 39, 40, - 0, 62, 0, 64, 0, 43, 92, 0, 51, 22, - 17, 0, 42, 0, 15, 19, 50, 0, 0, 0, - 61, 41, 52, 63 + 0, 150, 149, 148, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 19, 78, 79, 0, 32, 16, 16, + 16, 16, 16, 16, 0, 16, 16, 38, 0, 47, + 50, 0, 0, 0, 0, 0, 0, 26, 25, 20, + 153, 108, 223, 0, 0, 204, 112, 85, 86, 202, + 206, 0, 0, 0, 104, 156, 0, 185, 217, 0, + 90, 214, 0, 168, 99, 98, 97, 102, 0, 0, + 126, 0, 139, 135, 136, 132, 133, 130, 0, 142, + 141, 140, 138, 137, 134, 143, 131, 0, 0, 0, + 234, 236, 238, 0, 114, 0, 0, 107, 115, 183, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, + 0, 29, 0, 0, 71, 0, 0, 0, 0, 0, + 16, 0, 0, 67, 59, 60, 73, 57, 58, 61, + 62, 0, 0, 128, 221, 88, 16, 207, 111, 0, + 155, 216, 89, 0, 0, 0, 119, 125, 0, 0, + 0, 186, 187, 188, 190, 189, 231, 123, 0, 223, + 184, 0, 117, 0, 177, 0, 178, 0, 14, 16, + 28, 84, 16, 31, 0, 0, 72, 0, 0, 74, + 76, 0, 0, 225, 70, 75, 0, 0, 56, 0, + 0, 0, 109, 209, 113, 87, 91, 157, 105, 129, + 0, 122, 164, 0, 118, 124, 0, 120, 179, 180, + 116, 0, 86, 48, 221, 68, 68, 0, 0, 0, + 0, 41, 0, 0, 0, 92, 0, 127, 121, 106, + 0, 16, 19, 0, 0, 0, 18, 63, 63, 0, + 66, 71, 0, 36, 37, 0, 19, 21, 96, 95, + 30, 0, 33, 66, 66, 19, 0, 0, 34, 35, + 0, 46, 0, 66, 93, 0, 0, 49, 39, 40, + 0, 64, 0, 66, 42, 45, 94, 0, 53, 22, + 17, 0, 44, 68, 15, 19, 52, 0, 0, 0, + 63, 0, 54, 65, 0, 43 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -387,161 +388,162 @@ static const yytype_int16 yydefgoto[] = { -1, 7, 8, 9, 10, 11, 12, 13, 110, 350, 376, 417, 435, 102, 446, 219, 100, 101, 351, 293, - 412, 459, 466, 96, 438, 209, 414, 365, 355, 305, - 358, 367, 361, 290, 197, 123, 194, 143, 228, 316, - 241, 406, 425, 377, 430, 97, 58, 59, 314, 277, - 60, 61, 62, 63, 64, 65, 119, 66, 146, 133, - 67, 362, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 112 + 421, 463, 412, 459, 466, 96, 438, 209, 414, 365, + 355, 305, 358, 367, 361, 290, 197, 123, 194, 143, + 228, 316, 241, 406, 425, 377, 430, 97, 58, 59, + 314, 277, 60, 61, 62, 63, 64, 65, 119, 66, + 146, 133, 67, 362, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 112 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -408 +#define YYPACT_NINF -409 static const yytype_int16 yypact[] = { - 714, -408, -408, -408, -408, -408, -408, 5, -408, 2549, - 20, 1201, 1108, -408, -408, -408, 1809, 2549, 2549, 608, - 608, 608, 608, 608, -408, 608, 608, -408, -408, 48, - -67, -408, 2549, -408, -408, -408, 2549, -408, -54, -41, - -26, 1716, 1623, 608, 1716, 1900, 50, 2549, 40, 2549, - 2549, 2549, 2549, 2549, 2549, 2549, 1991, 226, 21, -408, - 11, -408, -408, -408, -408, 2617, -408, -408, -8, 107, - 136, 155, -408, 98, 220, 251, 110, -408, -408, -408, - -408, -408, -408, 50, 77, -408, 19, 26, 37, 41, - 1, 45, 51, 20, 93, -408, 135, 367, 1108, -408, - -408, -408, 447, 542, -408, -2, 614, 614, -408, -408, - -408, -408, -408, -408, -408, -408, -408, 2549, 56, 100, - 2549, 92, 1701, 20, 188, 2617, 124, 2084, 1623, -408, - 1701, 1529, 21, -408, 1450, 2549, -408, -408, 1701, 225, - 3, -408, -408, 2549, 1701, 2177, 168, -408, -408, -408, - 1701, 21, 614, 614, 614, 354, 354, 232, -50, 2549, + 706, -409, -409, -409, -409, -409, -409, 19, -409, 2549, + 2, 1201, 1108, -409, -409, -409, 1809, 2549, 2549, 50, + 50, 50, 50, 50, -409, 50, 50, -409, -409, 52, + -74, -409, 2549, -409, -409, -409, 2549, -409, -67, -54, + -9, 1716, 1623, 50, 1716, 1900, 46, 2549, 40, 2549, + 2549, 2549, 2549, 2549, 2549, 2549, 1991, 274, 20, -409, + 11, -409, -409, -409, -409, 2617, -409, -409, -8, 98, + 107, 220, -409, 61, 229, 263, 92, -409, -409, -409, + -409, -409, -409, 46, 106, -409, 37, 41, 47, 63, + 1, 100, 111, 2, 73, -409, 135, 368, 1108, -409, + -409, -409, 447, 542, -409, 9, 432, 432, -409, -409, + -409, -409, -409, -409, -409, -409, -409, 2549, 130, 134, + 2549, 124, 280, 2, 137, 2617, 141, 2084, 1623, -409, + 280, 1529, 20, -409, 1450, 2549, -409, -409, 280, 184, + 3, -409, -409, 2549, 280, 2177, 170, -409, -409, -409, + 280, 20, 432, 432, 432, 296, 296, 251, -50, 2549, 2549, 2549, 2549, 2549, 2549, 2270, 2549, 2549, 2549, 2549, 2549, 2549, 2549, 2549, 2549, 2549, 2549, 2549, 2549, 2549, - 2549, -408, -408, -408, 252, 2363, 2549, 2549, 2549, 2549, - 2549, 2549, 2549, -408, 221, -408, 259, -408, -408, -408, - -408, -408, -408, -408, 171, -408, -408, -408, 20, -408, - -408, 2549, 2549, 2549, 2549, 2549, 2549, -408, -408, -408, - -408, -408, 2549, 2549, 9, -408, -408, -408, 211, -408, - -408, 140, 184, 2549, 21, -408, 295, -408, -408, 212, - 284, -408, 2549, 302, 240, 240, -408, 2617, 74, 13, - -408, 291, 341, 1608, 245, 529, 432, 2617, 2572, 289, - 289, 1279, 1420, 1499, 1332, 614, 614, 2549, 2549, 257, - 309, 313, 321, 326, -408, 327, 2456, 217, -408, -408, - 304, 101, 60, 119, 91, 129, 94, 156, 637, -408, - 328, -408, 15, 324, 2549, 2549, 2549, 2549, 339, 1294, - -408, 2549, 2549, -408, 226, -408, 226, 226, 226, 226, - 226, 254, -48, -408, 2549, 334, -408, -408, -408, 433, - -408, -408, -408, 97, 2549, 352, -408, -408, 2549, 160, - 115, -408, -408, -408, -408, -408, -408, -408, 443, 2549, - -408, 353, -408, 360, -408, 362, -408, 363, -408, -408, - -408, 188, -408, -408, 365, 287, 226, 290, 292, 226, - -408, 297, 288, -408, -408, -408, 299, 377, 281, 2549, - 306, 311, -408, -408, -408, -408, 312, -408, -408, -408, - 123, -408, 2662, 407, -408, -408, 317, -408, -408, -408, - -408, 400, 211, -408, 2549, -408, -408, 413, 413, 2549, - 413, 2549, 322, 413, 413, -408, 423, -408, -408, -408, - 359, 414, -408, 421, 413, 413, -408, 23, 23, 344, - 93, 434, 413, -408, -408, 355, -408, -408, -408, -408, - -408, 732, -408, 93, 93, -408, 413, 366, -408, -408, - 413, -408, -408, 93, -408, 827, 38, -408, -408, -408, - 922, -408, 2549, 93, 1387, -408, -408, 446, 402, -408, - -408, 391, -408, 392, -408, -408, -408, 413, 413, 1015, - 23, -408, -408, -408 + 2549, -409, -409, -409, 252, 2363, 2549, 2549, 2549, 2549, + 2549, 2549, 2549, -409, 243, -409, 256, -409, -409, -409, + -409, -409, -409, -409, 172, -409, -409, -409, 2, -409, + -409, 2549, 2549, 2549, 2549, 2549, 2549, -409, -409, -409, + -409, -409, 2549, 2549, 13, -409, -409, -409, 210, -409, + -409, 71, 181, 2549, 20, -409, 275, -409, -409, 158, + 260, -409, 2549, 293, 228, 228, -409, 2617, 99, 60, + -409, 261, 341, 1794, 1608, 527, 217, 2617, 2572, 1280, + 1280, 1420, 1499, 1701, 290, 432, 432, 2549, 2549, 136, + 292, 310, 311, 313, -409, 322, 2456, 208, -409, -409, + 271, 102, 91, 119, 94, 212, 115, 224, 637, -409, + 321, -409, 15, 323, 2549, 2549, 2549, 2549, 345, 1294, + -409, 2549, 2549, -409, 274, -409, 274, 274, 274, 274, + 274, 254, -48, -409, 2549, 336, -409, -409, -409, 417, + -409, -409, -409, 123, 2549, 354, -409, -409, 2549, 257, + 129, -409, -409, -409, -409, -409, -409, -409, 433, 2549, + -409, 355, -409, 357, -409, 358, -409, 372, -409, -409, + -409, 137, -409, -409, 361, 287, 274, 288, 297, 274, + -409, 299, 295, -409, -409, -409, 304, 388, 281, 2549, + 307, 314, -409, -409, -409, -409, 312, -409, -409, -409, + 140, -409, 2662, 410, -409, -409, 320, -409, -409, -409, + -409, 404, 210, -409, 2549, -409, -409, 423, 423, 2549, + 423, -409, 331, 423, 423, -409, 425, -409, -409, -409, + 367, 430, -409, 431, 423, 423, -409, 30, 30, 350, + 73, 2549, 423, -409, -409, 352, -409, -409, -409, -409, + -409, 732, -409, 73, 73, -409, 423, 340, -409, -409, + 423, -409, 435, 73, -409, 827, 38, -409, -409, -409, + 922, -409, 2549, 73, -409, -409, -409, 446, 384, -409, + -409, 373, -409, -409, -409, -409, -409, 423, 1387, 1015, + 30, 399, -409, -409, 423, -409 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -408, -408, -408, -408, -408, -408, -408, -408, -10, -408, - 22, -103, -408, -12, -408, 489, 410, 7, -408, -408, - -408, -408, -408, -291, -407, -105, -377, -408, 122, -18, - -287, 70, -408, -408, 330, 496, -408, 449, 183, 144, - -408, -408, -408, 126, -408, -3, -33, -408, -408, -408, - -408, -408, -408, -408, -408, 79, -408, -408, -408, -110, - -124, -408, -408, 18, 493, 500, -408, -408, -408, -408, - -408, 25 + -409, -409, -409, -409, -409, -409, -409, -409, -10, -409, + 22, -95, -409, -12, -409, 457, 422, 7, -409, -409, + -409, -409, -409, -409, -409, -294, -408, 88, -388, -409, + 103, 0, -287, 55, -409, -409, 330, 497, -409, 451, + 185, 145, -409, -409, -409, 133, -409, -3, -33, -409, + -409, -409, -409, -409, -409, -409, -409, 79, -409, -409, + -409, -110, -124, -409, -409, 18, 500, 501, -409, -409, + -409, -409, -409, 25 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which - number is the opposite. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -236 + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -238 static const yytype_int16 yytable[] = { - 78, 94, 94, 103, 232, 14, 57, 221, 364, 132, - 220, 439, 366, 105, 370, 371, 19, 151, 95, 415, - 163, 313, 164, 236, 352, 326, 159, 160, 161, 77, - 15, 129, 162, 237, 137, 353, 121, 111, 111, 111, - 111, 111, 140, 111, 111, 113, 114, 115, 116, 126, - 117, 118, 243, 158, 373, 19, 20, 21, 457, 120, - 134, 111, 127, 473, 458, 454, 147, 135, 136, 436, - 437, 202, 342, 141, 159, 160, 161, 128, 142, 159, + 78, 94, 94, 103, 232, 364, 57, 221, 415, 132, + 439, 77, 366, 105, 370, 371, 19, 151, 95, 14, + 163, 220, 164, 236, 352, 313, 159, 160, 161, 121, + 15, 129, 162, 237, 137, 353, 126, 111, 111, 111, + 111, 111, 140, 111, 111, 113, 114, 115, 116, 127, + 117, 118, 243, 158, 373, 19, 20, 21, 457, 77, + 134, 111, 473, 120, 458, 19, 147, 135, 136, 141, + -237, 202, 326, 108, 142, 468, 436, 437, 109, 159, 160, 161, 402, 207, 132, 159, 160, 161, 94, 159, - 160, 161, 94, 94, 325, 185, 106, 107, 311, 193, - 196, 162, 234, 344, 203, 218, 346, -235, 204, 379, - 132, 122, 419, 226, 165, 125, 186, 224, 187, 192, - 130, 341, 198, 138, 231, 57, 144, 384, 150, 199, - 152, 153, 154, 155, 156, 407, 159, 160, 161, 343, - 200, 208, 239, 145, 201, -231, 134, -231, 205, 345, - 159, 160, 161, 233, 206, 210, 244, 245, 246, 222, - 248, 249, 251, 364, -233, 461, -233, 159, 160, 161, - 159, 160, 161, 159, 160, 161, 347, 159, 160, 161, - 383, 288, 280, 281, 282, 283, 284, 285, 286, 287, - 312, 159, 160, 161, 225, 159, 160, 161, 303, 159, - 160, 161, 278, 223, 374, 159, 160, 161, 304, 306, - 307, 308, 309, 310, 227, 386, 159, 160, 161, 57, - 294, 295, 296, 297, 298, 299, 229, 301, 302, 188, - 319, 189, 159, 160, 161, 235, 159, 160, 161, 323, - 240, 247, 317, 242, 289, 252, 253, 254, 255, 256, + 160, 161, 94, 94, 128, 185, 106, 107, 311, 193, + 162, 192, 234, 342, 203, 218, 344, 186, 204, 187, + 132, 122, 419, 226, 165, 125, -233, 224, -233, 325, + 130, 208, 341, 138, 231, 57, 144, 346, 150, 196, + 152, 153, 154, 155, 156, 379, 159, 160, 161, 343, + 198, 384, 239, 145, 199, 77, 134, 159, 160, 161, + 200, 19, 407, 233, 331, 210, 244, 245, 246, 108, + 248, 249, 251, 227, 109, 461, 201, 159, 160, 161, + 159, 160, 161, 317, 364, 159, 160, 161, 159, 160, + 161, 288, 280, 281, 282, 283, 284, 285, 286, 287, + 312, 159, 160, 161, 235, 159, 160, 161, 303, 159, + 160, 161, 278, 205, 374, 159, 160, 161, 304, 306, + 307, 308, 309, 310, 206, 386, 159, 160, 161, 57, + 294, 295, 296, 297, 298, 299, 225, 301, 302, -235, + 319, -235, 345, 222, 159, 160, 161, 223, 188, 323, + 189, 247, 240, 229, 347, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 190, 267, 191, 268, 329, 330, 77, 269, 270, 271, - 272, 273, 19, 338, 300, 331, 274, 357, 94, 360, - 108, 132, 292, 315, 413, 109, 318, 111, 159, 160, - 161, 356, 306, 359, 306, 418, 368, 420, 359, 359, - 423, 424, 159, 160, 161, 320, 167, -236, 169, 170, - 322, 433, 434, 324, 321, 441, 363, 275, 161, 443, - 339, 380, 369, 211, 212, 213, 214, 332, 448, 449, - 215, 333, 216, 451, 178, 179, 57, 453, 455, 334, - 180, 181, 182, 183, 335, 336, 184, 354, 462, 349, - 167, 168, 169, 170, 19, 276, 372, 159, 160, 161, - 375, 132, 381, 387, 470, 471, 359, 159, 160, 161, - 388, 391, 389, 390, 393, 175, 176, 177, 178, 179, - 159, 160, 161, -72, 180, 181, 182, 183, 394, 395, - 184, 399, 396, 327, 397, -236, 359, 401, 356, 398, - 431, 400, 167, 168, 169, 170, 340, 382, 403, 211, - 212, 213, 214, 404, 445, 405, 215, 408, 216, 409, - 410, 94, 416, 450, 422, 173, 174, 175, 176, 177, - 178, 179, 426, 427, 428, 94, 180, 181, 182, 183, - 94, 432, 184, 159, 160, 161, 440, -13, 79, 359, - -236, -236, -236, 469, 442, 184, 77, 444, 16, 94, - 17, 18, 19, 20, 21, 22, 23, 80, 464, 452, - 24, 25, 26, 27, 28, 465, 29, 30, 31, 32, + 321, 267, 242, 268, 329, 330, 289, 269, 270, 271, + 272, 273, 190, 338, 191, 300, 274, 383, 94, 292, + 169, 132, 315, 318, 413, 320, 322, 111, 159, 160, + 161, 356, 306, 359, 306, 357, 368, 360, 359, 359, + 159, 160, 161, 418, 324, 420, 161, 179, 423, 424, + 332, 339, 180, 181, 182, 183, 363, 275, 184, 433, + 434, 380, 369, 211, 212, 213, 214, 443, 333, 334, + 215, 335, 216, 159, 160, 161, 57, 159, 160, 161, + 336, 451, 349, 169, 170, 453, 354, 159, 160, 161, + 159, 160, 161, 169, 170, 276, 372, 159, 160, 161, + 19, 132, 375, 327, 381, 387, 359, 388, 389, 178, + 179, 391, 470, 340, 393, 180, 181, 182, 183, 475, + 179, 184, 390, -74, 394, 180, 181, 182, 183, 395, + 396, 184, -238, -238, -238, -238, 359, 184, 399, 397, + 431, 398, 167, 168, 169, 170, 400, 382, 401, 403, + 211, 212, 213, 214, 445, 405, 404, 215, 356, 216, + 408, 94, 409, 450, 410, 173, 174, 175, 176, 177, + 178, 179, 416, 422, 426, 94, 180, 181, 182, 183, + 94, 427, 184, 452, 159, 160, 161, -13, 79, 359, + 428, 432, 440, 469, 444, 454, 77, 465, 16, 94, + 17, 18, 19, 20, 21, 22, 23, 80, 464, 99, + 24, 25, 26, 27, 28, 467, 29, 30, 31, 32, 33, 34, 81, 98, 82, 83, 35, 84, 85, 86, - 87, 88, 89, 467, 468, 169, 90, 91, 92, 93, - 36, 99, 37, 38, 39, 40, 41, 42, 217, 159, - 160, 161, 43, 44, 45, 46, 47, 48, 49, 159, - 160, 161, 179, 421, 463, 291, 50, 180, 181, 182, - 183, 124, 195, 184, 392, 378, 411, 429, 51, 52, - 53, 148, -3, 79, 0, 385, 54, 55, 149, 0, + 87, 88, 89, 159, 160, 161, 90, 91, 92, 93, + 36, 474, 37, 38, 39, 40, 41, 42, 441, 159, + 160, 161, 43, 44, 45, 46, 47, 48, 49, 378, + 217, 448, 449, 471, 442, 291, 50, 180, 181, 182, + 183, 455, 124, 184, 195, 385, 392, 411, 51, 52, + 53, 462, -3, 79, 429, 0, 54, 55, 148, 149, 56, 77, 0, 16, 0, 17, 18, 19, 20, 21, 22, 23, 80, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 81, 98, 82, 83, 35, 84, 85, 86, 87, 88, 89, 0, 0, 0, 90, 91, 92, 93, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, - 46, 47, 48, 49, 0, 0, 0, 77, 0, 179, - 0, 50, 0, 19, 180, 181, 182, 183, 0, 0, - 184, 108, 0, 51, 52, 53, 109, 0, 79, 0, + 46, 47, 48, 49, 0, 0, 0, 179, 0, 0, + 0, 50, 180, 181, 182, 183, 0, 0, 184, 0, + 0, 0, 0, 51, 52, 53, 0, 0, 79, 0, 0, 54, 55, 0, 0, 56, 77, 348, 16, 0, 17, 18, 19, 20, 21, 22, 23, 80, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 81, 98, 82, 83, 35, 84, 85, 86, 87, 88, 89, 0, 0, 0, 90, 91, 92, 93, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, - 0, 0, 43, 44, 45, 46, 47, 48, 49, 180, - 181, 182, 183, 0, 0, 184, 50, 1, 2, 3, - 4, 5, 6, 0, 0, 0, 0, 0, 51, 52, + 0, 0, 43, 44, 45, 46, 47, 48, 49, 1, + 2, 3, 4, 5, 6, 0, 50, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, 79, 0, 0, 54, 55, 0, 0, 56, 77, 447, 16, 0, 17, 18, 19, 20, 21, 22, 23, 80, 0, 0, 24, 25, 26, 27, 28, @@ -600,43 +602,43 @@ static const yytype_int16 yytable[] = 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 79, 0, 0, 0, 0, 54, 55, 0, 0, 56, 16, 0, 17, 18, 19, - 20, 21, 22, 23, -67, 0, 0, 24, 25, 26, + 20, 21, 22, 23, -69, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, - 167, 168, 169, 170, 0, 0, 0, 36, 0, 37, + 0, 167, 168, 169, 170, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, - 44, 45, 46, 47, 48, 49, 176, 177, 178, 179, - 0, 0, 0, 50, 180, 181, 182, 183, 0, 0, - 184, 0, 0, 0, 0, 51, 52, 53, 79, 0, - 0, 0, 0, 54, 55, 169, 170, 56, 16, 0, + 44, 45, 46, 47, 48, 49, 175, 176, 177, 178, + 179, 0, 0, 50, 0, 180, 181, 182, 183, 0, + 0, 184, 0, 0, 0, 51, 52, 53, 79, 0, + 0, 0, 0, 54, 55, 0, 0, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, - 33, 34, 179, 0, 0, 0, 35, 180, 181, 182, - 183, 0, 0, 184, 0, 0, 0, 0, 0, 0, + 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, - -169, 0, 43, 44, 45, 46, 47, 48, 49, 186, - 0, 187, -169, 0, 0, 0, 50, 0, 0, 0, - -169, 0, 0, 0, 0, 0, 0, 0, 51, 52, - 53, 167, 168, 169, 170, 0, 54, 55, 0, -67, - 56, 0, -169, -169, -169, -169, 0, 0, 0, -169, - 0, -169, 0, 0, -169, 0, 0, 0, 177, 178, - 179, -169, -169, -169, -169, 180, 181, 182, 183, 0, - 0, 184, 0, 0, 0, 0, -169, -169, -169, -208, - -169, -169, -169, -169, -169, -169, -169, -169, -169, -169, - -169, -208, 0, 0, 0, -169, -169, -169, -169, -208, - 0, -169, -169, 0, 0, 0, 0, 0, 0, 0, + -171, 0, 43, 44, 45, 46, 47, 48, 49, 186, + 0, 187, -171, 0, 0, 0, 50, 0, 0, 0, + -171, 0, 0, 0, 0, 0, 0, 0, 51, 52, + 53, 167, 168, 169, 170, 0, 54, 55, 0, -69, + 56, 0, -171, -171, -171, -171, 0, 0, 0, -171, + 0, -171, 0, 0, -171, 0, 0, 176, 177, 178, + 179, -171, -171, -171, -171, 180, 181, 182, 183, 0, + 0, 184, 0, 0, 0, 0, -171, -171, -171, -210, + -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, + -171, -210, 0, 0, 0, -171, -171, -171, -171, -210, + 0, -171, -171, 0, 0, 0, 0, 0, 0, 0, 167, 168, 169, 170, 0, 0, 0, 0, 0, 0, - 0, -208, -208, -208, -208, 0, 0, 0, -208, 0, - -208, 0, 0, -208, 0, 0, 0, 0, 178, 179, - -208, -208, -208, -208, 180, 181, 182, 183, 0, 0, - 184, 0, 0, 0, 0, -208, -208, -208, 0, -208, - -208, -208, -208, -208, -208, -208, -208, -208, -208, -208, - 0, 0, 0, 0, -208, -208, -208, -208, 0, 0, - -208, -208, 77, 0, 16, 0, 17, 18, 19, 20, + 0, -210, -210, -210, -210, 0, 0, 0, -210, 0, + -210, 0, 0, -210, 0, 0, 0, 177, 178, 179, + -210, -210, -210, -210, 180, 181, 182, 183, 0, 0, + 184, 0, 0, 0, 0, -210, -210, -210, 0, -210, + -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, + 0, 0, 0, 0, -210, -210, -210, -210, 0, 0, + -210, -210, 77, 0, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 131, 25, 26, 27, 28, 109, 29, 30, 31, 32, 33, 34, 0, 0, - 0, 0, 35, 0, 0, 0, 0, 0, 0, -236, - 0, 169, 170, 0, 0, 0, 36, 0, 37, 38, + 0, 0, 35, 0, 0, 0, 0, 0, 0, 167, + -238, 169, 170, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 0, 0, 178, 179, 0, 0, 0, 50, 180, 181, 182, 183, 0, 0, 184, @@ -645,7 +647,7 @@ static const yytype_int16 yytable[] = 18, 19, 20, 21, 22, 23, 0, 0, 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, 169, 170, 0, 0, 0, 36, + 0, 0, 167, 168, 169, 170, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 0, 0, 178, 179, 0, 0, 0, 50, 180, 181, 182, 183, @@ -654,11 +656,11 @@ static const yytype_int16 yytable[] = 16, 104, 17, 18, 19, 20, 21, 22, 23, 0, 0, 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, 0, 0, 0, -238, 0, 169, 170, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, - 49, 0, 0, 0, 0, 0, 0, 0, 50, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 0, 0, 178, 179, 0, 0, 0, 50, 180, + 181, 182, 183, 0, 0, 184, 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, 54, 55, 0, 16, 56, 17, 18, 19, 20, 21, 22, 23, 139, 0, 0, 24, 25, 26, 27, 28, 0, 29, @@ -748,87 +750,81 @@ static const yytype_int16 yytable[] = 183, 0, 0, 184 }; -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-408))) - -#define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-236))) - static const yytype_int16 yycheck[] = { - 10, 11, 12, 15, 128, 0, 9, 117, 299, 42, - 12, 418, 299, 16, 301, 302, 15, 50, 11, 396, - 9, 12, 11, 20, 9, 12, 76, 77, 78, 9, + 10, 11, 12, 15, 128, 299, 9, 117, 396, 42, + 418, 9, 299, 16, 301, 302, 15, 50, 11, 0, + 9, 12, 11, 20, 9, 12, 76, 77, 78, 103, 8, 41, 80, 143, 44, 20, 103, 19, 20, 21, 22, 23, 45, 25, 26, 20, 21, 22, 23, 103, - 25, 26, 102, 56, 102, 15, 16, 17, 20, 11, - 42, 43, 103, 470, 26, 442, 48, 42, 43, 46, - 47, 70, 12, 23, 76, 77, 78, 103, 28, 76, + 25, 26, 102, 56, 102, 15, 16, 17, 20, 9, + 42, 43, 470, 11, 26, 15, 48, 42, 43, 23, + 9, 70, 12, 23, 28, 463, 46, 47, 28, 76, 77, 78, 369, 93, 117, 76, 77, 78, 98, 76, - 77, 78, 102, 103, 20, 103, 17, 18, 222, 77, - 23, 80, 135, 12, 103, 98, 12, 9, 90, 12, - 143, 32, 399, 123, 103, 36, 9, 120, 11, 9, - 41, 20, 103, 44, 127, 128, 47, 12, 49, 103, + 77, 78, 102, 103, 103, 103, 17, 18, 222, 77, + 80, 9, 135, 12, 103, 98, 12, 9, 90, 11, + 143, 32, 399, 123, 103, 36, 9, 120, 11, 20, + 41, 48, 20, 44, 127, 128, 47, 12, 49, 23, 51, 52, 53, 54, 55, 12, 76, 77, 78, 20, - 103, 48, 145, 103, 103, 9, 128, 11, 103, 20, - 76, 77, 78, 128, 103, 20, 159, 160, 161, 103, - 163, 164, 165, 454, 9, 452, 11, 76, 77, 78, - 76, 77, 78, 76, 77, 78, 20, 76, 77, 78, - 20, 193, 185, 186, 187, 188, 189, 190, 191, 192, - 223, 76, 77, 78, 102, 76, 77, 78, 208, 76, + 103, 12, 145, 103, 103, 9, 128, 76, 77, 78, + 103, 15, 12, 128, 18, 20, 159, 160, 161, 23, + 163, 164, 165, 26, 28, 452, 103, 76, 77, 78, + 76, 77, 78, 102, 468, 76, 77, 78, 76, 77, + 78, 193, 185, 186, 187, 188, 189, 190, 191, 192, + 223, 76, 77, 78, 10, 76, 77, 78, 208, 76, 77, 78, 184, 103, 314, 76, 77, 78, 211, 212, - 213, 214, 215, 216, 26, 339, 76, 77, 78, 222, + 213, 214, 215, 216, 103, 339, 76, 77, 78, 222, 198, 199, 200, 201, 202, 203, 102, 205, 206, 9, - 233, 11, 76, 77, 78, 10, 76, 77, 78, 242, - 72, 162, 102, 11, 23, 166, 167, 168, 169, 170, + 233, 11, 20, 103, 76, 77, 78, 103, 9, 242, + 11, 162, 72, 102, 20, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 9, 9, 11, 11, 267, 268, 9, 15, 16, 17, - 18, 19, 15, 276, 103, 18, 24, 295, 288, 297, - 23, 314, 23, 72, 394, 28, 102, 269, 76, 77, - 78, 294, 295, 296, 297, 398, 299, 400, 301, 302, - 403, 404, 76, 77, 78, 10, 61, 62, 63, 64, - 26, 414, 415, 11, 102, 420, 298, 65, 78, 422, - 103, 324, 300, 42, 43, 44, 45, 18, 433, 434, - 49, 18, 51, 436, 89, 90, 339, 440, 443, 18, - 95, 96, 97, 98, 18, 18, 101, 23, 453, 21, - 61, 62, 63, 64, 15, 103, 102, 76, 77, 78, - 26, 394, 10, 10, 467, 468, 369, 76, 77, 78, - 10, 349, 10, 10, 352, 86, 87, 88, 89, 90, - 76, 77, 78, 102, 95, 96, 97, 98, 23, 102, - 101, 103, 102, 102, 102, 54, 399, 20, 401, 102, - 412, 102, 61, 62, 63, 64, 102, 328, 102, 42, - 43, 44, 45, 102, 426, 103, 49, 10, 51, 102, - 20, 431, 9, 435, 102, 84, 85, 86, 87, 88, - 89, 90, 9, 74, 20, 445, 95, 96, 97, 98, - 450, 20, 101, 76, 77, 78, 102, 0, 1, 452, - 96, 97, 98, 465, 20, 101, 9, 102, 11, 469, - 13, 14, 15, 16, 17, 18, 19, 20, 22, 103, - 23, 24, 25, 26, 27, 73, 29, 30, 31, 32, + 102, 9, 11, 11, 267, 268, 23, 15, 16, 17, + 18, 19, 9, 276, 11, 103, 24, 20, 288, 23, + 63, 314, 72, 102, 394, 10, 26, 269, 76, 77, + 78, 294, 295, 296, 297, 295, 299, 297, 301, 302, + 76, 77, 78, 398, 11, 400, 78, 90, 403, 404, + 18, 103, 95, 96, 97, 98, 298, 65, 101, 414, + 415, 324, 300, 42, 43, 44, 45, 422, 18, 18, + 49, 18, 51, 76, 77, 78, 339, 76, 77, 78, + 18, 436, 21, 63, 64, 440, 23, 76, 77, 78, + 76, 77, 78, 63, 64, 103, 102, 76, 77, 78, + 15, 394, 26, 102, 10, 10, 369, 10, 10, 89, + 90, 349, 467, 102, 352, 95, 96, 97, 98, 474, + 90, 101, 10, 102, 23, 95, 96, 97, 98, 102, + 102, 101, 96, 97, 98, 54, 399, 101, 103, 102, + 412, 102, 61, 62, 63, 64, 102, 328, 20, 102, + 42, 43, 44, 45, 426, 103, 102, 49, 421, 51, + 10, 431, 102, 435, 20, 84, 85, 86, 87, 88, + 89, 90, 9, 102, 9, 445, 95, 96, 97, 98, + 450, 74, 101, 103, 76, 77, 78, 0, 1, 452, + 20, 20, 102, 465, 102, 20, 9, 73, 11, 469, + 13, 14, 15, 16, 17, 18, 19, 20, 22, 12, + 23, 24, 25, 26, 27, 102, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 102, 102, 63, 49, 50, 51, 52, - 53, 12, 55, 56, 57, 58, 59, 60, 98, 76, - 77, 78, 65, 66, 67, 68, 69, 70, 71, 76, - 77, 78, 90, 401, 454, 195, 79, 95, 96, 97, - 98, 35, 83, 101, 351, 102, 392, 411, 91, 92, - 93, 48, 0, 1, -1, 102, 99, 100, 48, -1, + 43, 44, 45, 76, 77, 78, 49, 50, 51, 52, + 53, 102, 55, 56, 57, 58, 59, 60, 420, 76, + 77, 78, 65, 66, 67, 68, 69, 70, 71, 102, + 98, 433, 434, 468, 421, 195, 79, 95, 96, 97, + 98, 443, 35, 101, 83, 102, 351, 392, 91, 92, + 93, 453, 0, 1, 411, -1, 99, 100, 48, 48, 103, 9, -1, 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, - 68, 69, 70, 71, -1, -1, -1, 9, -1, 90, - -1, 79, -1, 15, 95, 96, 97, 98, -1, -1, - 101, 23, -1, 91, 92, 93, 28, -1, 1, -1, + 68, 69, 70, 71, -1, -1, -1, 90, -1, -1, + -1, 79, 95, 96, 97, 98, -1, -1, 101, -1, + -1, -1, -1, 91, 92, 93, -1, -1, 1, -1, -1, 99, 100, -1, -1, 103, 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 95, - 96, 97, 98, -1, -1, 101, 79, 3, 4, 5, - 6, 7, 8, -1, -1, -1, -1, -1, 91, 92, + -1, -1, 65, 66, 67, 68, 69, 70, 71, 3, + 4, 5, 6, 7, 8, -1, 79, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, 93, -1, -1, 1, -1, -1, 99, 100, -1, -1, 103, 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, 23, 24, 25, 26, 27, @@ -890,23 +886,23 @@ static const yytype_int16 yycheck[] = 16, 17, 18, 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, - 61, 62, 63, 64, -1, -1, -1, 53, -1, 55, + -1, 61, 62, 63, 64, -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, - 66, 67, 68, 69, 70, 71, 87, 88, 89, 90, - -1, -1, -1, 79, 95, 96, 97, 98, -1, -1, - 101, -1, -1, -1, -1, 91, 92, 93, 1, -1, - -1, -1, -1, 99, 100, 63, 64, 103, 11, -1, + 66, 67, 68, 69, 70, 71, 86, 87, 88, 89, + 90, -1, -1, 79, -1, 95, 96, 97, 98, -1, + -1, 101, -1, -1, -1, 91, 92, 93, 1, -1, + -1, -1, -1, 99, 100, -1, -1, 103, 11, -1, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, - 33, 34, 90, -1, -1, -1, 39, 95, 96, 97, - 98, -1, -1, 101, -1, -1, -1, -1, -1, -1, + 33, 34, -1, -1, -1, -1, 39, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, 0, -1, 65, 66, 67, 68, 69, 70, 71, 9, -1, 11, 12, -1, -1, -1, 79, -1, -1, -1, 20, -1, -1, -1, -1, -1, -1, -1, 91, 92, 93, 61, 62, 63, 64, -1, 99, 100, -1, 102, 103, -1, 42, 43, 44, 45, -1, -1, -1, 49, - -1, 51, -1, -1, 54, -1, -1, -1, 88, 89, + -1, 51, -1, -1, 54, -1, -1, 87, 88, 89, 90, 61, 62, 63, 64, 95, 96, 97, 98, -1, -1, 101, -1, -1, -1, -1, 76, 77, 78, 0, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, @@ -914,7 +910,7 @@ static const yytype_int16 yycheck[] = -1, 101, 102, -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, 64, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, 45, -1, -1, -1, 49, -1, - 51, -1, -1, 54, -1, -1, -1, -1, 89, 90, + 51, -1, -1, 54, -1, -1, -1, 88, 89, 90, 61, 62, 63, 64, 95, 96, 97, 98, -1, -1, 101, -1, -1, -1, -1, 76, 77, 78, -1, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, @@ -923,7 +919,7 @@ static const yytype_int16 yycheck[] = 17, 18, 19, -1, -1, -1, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, 61, - -1, 63, 64, -1, -1, -1, 53, -1, 55, 56, + 62, 63, 64, -1, -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, -1, -1, 89, 90, -1, -1, -1, 79, 95, 96, 97, 98, -1, -1, 101, @@ -932,7 +928,7 @@ static const yytype_int16 yycheck[] = 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, -1, -1, - -1, -1, -1, -1, 63, 64, -1, -1, -1, 53, + -1, -1, 61, 62, 63, 64, -1, -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, -1, -1, 89, 90, -1, -1, -1, 79, 95, 96, 97, 98, @@ -941,11 +937,11 @@ static const yytype_int16 yycheck[] = 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 61, -1, 63, 64, -1, -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, - 71, -1, -1, -1, -1, -1, -1, -1, 79, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 71, -1, -1, 89, 90, -1, -1, -1, 79, 95, + 96, 97, 98, -1, -1, 101, -1, -1, -1, -1, 91, 92, 93, -1, -1, -1, -1, -1, 99, 100, -1, 11, 103, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, 29, @@ -1044,49 +1040,49 @@ static const yytype_uint8 yystos[] = 16, 17, 18, 19, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 39, 53, 55, 56, 57, 58, 59, 60, 65, 66, 67, 68, 69, 70, 71, - 79, 91, 92, 93, 99, 100, 103, 149, 150, 151, - 154, 155, 156, 157, 158, 159, 161, 164, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 9, 112, 1, + 79, 91, 92, 93, 99, 100, 103, 151, 152, 153, + 156, 157, 158, 159, 160, 161, 163, 166, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 9, 112, 1, 20, 35, 37, 38, 40, 41, 42, 43, 44, 45, - 49, 50, 51, 52, 112, 121, 127, 149, 36, 119, - 120, 121, 117, 117, 12, 149, 159, 159, 23, 28, - 112, 167, 175, 175, 175, 175, 175, 175, 175, 160, - 11, 103, 159, 139, 139, 159, 103, 103, 103, 112, - 159, 23, 150, 163, 167, 175, 175, 112, 159, 20, - 149, 23, 28, 141, 159, 103, 162, 167, 168, 169, - 159, 150, 159, 159, 159, 159, 159, 102, 149, 76, + 49, 50, 51, 52, 112, 121, 129, 151, 36, 119, + 120, 121, 117, 117, 12, 151, 161, 161, 23, 28, + 112, 169, 177, 177, 177, 177, 177, 177, 177, 162, + 11, 103, 161, 141, 141, 161, 103, 103, 103, 112, + 161, 23, 152, 165, 169, 177, 177, 112, 161, 20, + 151, 23, 28, 143, 161, 103, 164, 169, 170, 171, + 161, 152, 161, 161, 161, 161, 161, 102, 151, 76, 77, 78, 80, 9, 11, 103, 54, 61, 62, 63, 64, 81, 82, 84, 85, 86, 87, 88, 89, 90, 95, 96, 97, 98, 101, 103, 9, 11, 9, 11, - 9, 11, 9, 114, 140, 141, 23, 138, 103, 103, - 103, 103, 70, 103, 167, 103, 103, 112, 48, 129, + 9, 11, 9, 114, 142, 143, 23, 140, 103, 103, + 103, 103, 70, 103, 169, 103, 103, 112, 48, 131, 20, 42, 43, 44, 45, 49, 51, 120, 121, 119, - 12, 163, 103, 103, 149, 102, 112, 26, 142, 102, - 102, 149, 164, 175, 150, 10, 20, 163, 102, 149, - 72, 144, 11, 102, 149, 149, 149, 159, 149, 149, - 102, 149, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 159, 159, 9, 11, 15, - 16, 17, 18, 19, 24, 65, 103, 153, 167, 102, - 149, 149, 149, 149, 149, 149, 149, 149, 117, 23, - 137, 138, 23, 123, 114, 114, 114, 114, 114, 114, - 103, 114, 114, 112, 149, 133, 149, 149, 149, 149, - 149, 164, 150, 12, 152, 72, 143, 102, 102, 149, - 10, 102, 26, 149, 11, 20, 12, 102, 83, 149, - 149, 18, 18, 18, 18, 18, 18, 102, 149, 103, + 12, 165, 103, 103, 151, 102, 112, 26, 144, 102, + 102, 151, 166, 177, 152, 10, 20, 165, 102, 151, + 72, 146, 11, 102, 151, 151, 151, 161, 151, 151, + 102, 151, 161, 161, 161, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 9, 11, 15, + 16, 17, 18, 19, 24, 65, 103, 155, 169, 102, + 151, 151, 151, 151, 151, 151, 151, 151, 117, 23, + 139, 140, 23, 123, 114, 114, 114, 114, 114, 114, + 103, 114, 114, 112, 151, 135, 151, 151, 151, 151, + 151, 166, 152, 12, 154, 72, 145, 102, 102, 151, + 10, 102, 26, 151, 11, 20, 12, 102, 83, 151, + 151, 18, 18, 18, 18, 18, 18, 102, 151, 103, 102, 20, 12, 20, 12, 20, 12, 20, 10, 21, - 113, 122, 9, 20, 23, 132, 149, 133, 134, 149, - 133, 136, 165, 167, 127, 131, 134, 135, 149, 114, - 134, 134, 102, 102, 163, 26, 114, 147, 102, 12, - 149, 10, 159, 20, 12, 102, 164, 10, 10, 10, - 10, 114, 142, 114, 23, 102, 102, 102, 102, 103, - 102, 20, 134, 102, 102, 103, 145, 12, 10, 102, - 20, 143, 124, 163, 130, 130, 9, 115, 115, 134, - 115, 132, 102, 115, 115, 146, 9, 74, 20, 147, - 148, 117, 20, 115, 115, 116, 46, 47, 128, 128, - 102, 129, 20, 115, 102, 117, 118, 10, 129, 129, - 117, 115, 103, 115, 130, 129, 10, 20, 26, 125, - 10, 134, 129, 135, 22, 73, 126, 102, 102, 117, - 115, 115, 74, 128 + 113, 122, 9, 20, 23, 134, 151, 135, 136, 151, + 135, 138, 167, 169, 129, 133, 136, 137, 151, 114, + 136, 136, 102, 102, 165, 26, 114, 149, 102, 12, + 151, 10, 161, 20, 12, 102, 166, 10, 10, 10, + 10, 114, 144, 114, 23, 102, 102, 102, 102, 103, + 102, 20, 136, 102, 102, 103, 147, 12, 10, 102, + 20, 145, 126, 165, 132, 132, 9, 115, 115, 136, + 115, 124, 102, 115, 115, 148, 9, 74, 20, 149, + 150, 117, 20, 115, 115, 116, 46, 47, 130, 130, + 102, 131, 134, 115, 102, 117, 118, 10, 131, 131, + 117, 115, 103, 115, 20, 131, 10, 20, 26, 127, + 10, 136, 131, 125, 22, 73, 128, 102, 132, 117, + 115, 137, 74, 130, 102, 115 }; typedef enum { @@ -1110,21 +1106,21 @@ static const toketypes yy_type_tab[] = toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, - toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, - toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_ival, toketype_opval, + toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, + toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_ival, toketype_ival, toketype_ival, 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_ival, toketype_ival, toketype_ival, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, - 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_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, 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_ival, toketype_ival, + toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_ival, 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_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 }; /* Generated from: - * 7e6c275bbd1dbc800c205a8a8b0cd785e4859f94976ee7372149598471f16f81 perly.y + * e89acf986fa79bb74d827a4fd4823d07ff25bd99c2087cf4e7a7e6ae41d7a246 perly.y * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl * ex: set ro: */ diff --git a/perly.y b/perly.y index de90b2a..e3df831 100644 --- a/perly.y +++ b/perly.y @@ -348,12 +348,16 @@ barestmt: PLUGSTMT $4, $7, $8, $6)); PL_parser->copline = (line_t)$1; } - | FOR '(' remember mnexpr ';' texpr ';' mintro mnexpr ')' + | FOR '(' remember mnexpr ';' + { parser->expect = XTERM; } + texpr ';' + { parser->expect = XTERM; } + mintro mnexpr ')' mblock { OP *initop = $4; OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL, - scalar($6), $11, $9, $8); + scalar($7), $13, $11, $10); if (initop) { forop = op_prepend_elem(OP_LINESEQ, initop, op_append_elem(OP_LINESEQ, @@ -403,12 +407,10 @@ barestmt: PLUGSTMT } | sideff ';' { - PL_parser->expect = XSTATE; $$ = $1; } | ';' { - PL_parser->expect = XSTATE; $$ = (OP*)NULL; PL_parser->copline = NOLINE; } @@ -599,9 +601,7 @@ realsubbody: remember subsignature '{' stmtseq '}' /* Optional subroutine body, for named subroutine declaration */ optsubbody: realsubbody { $$ = $1; } - | ';' { $$ = (OP*)NULL; - PL_parser->expect = XSTATE; - } + | ';' { $$ = (OP*)NULL; } ; /* Ordinary expressions; logical combinations */ diff --git a/toke.c b/toke.c index b0e9518..13c7e93 100644 --- a/toke.c +++ b/toke.c @@ -5379,7 +5379,8 @@ Perl_yylex(pTHX) TOKEN(0); CLINE; s++; - OPERATOR(';'); + PL_expect = XSTATE; + TOKEN(';'); case ')': if (!PL_lex_allbrackets && PL_lex_fakeeof >= LEX_FAKEEOF_CLOSING) TOKEN(0); -- 1.8.3.1