From 1d1ce7c6bc5cc90b78e8231319dab65f969e7682 Mon Sep 17 00:00:00 2001 From: Zefram Date: Tue, 16 Jan 2018 08:04:08 +0000 Subject: [PATCH] fix parsing of braced subscript after parens MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Where an arrow is omitted between subscripts, if a parenthesised subscript is followed by a braced one, PL_expect was getting set to XBLOCK due to code intended for "foreach (...) {...}". This broke bareword autoquotation, and the parsing of operators following the braced subscript. Alter PL_expect from XBLOCK to XOPERATOR following a parenthesised subscript. Fixes [perl #8045]. Petr Písař: Ported to 5.24.3. Signed-off-by: Petr Písař --- perly.act | 1256 ++++++++++++++++++++++++++++------------------- perly.h | 297 ++++------- perly.tab | 1352 +++++++++++++++++++++++---------------------------- perly.y | 20 +- t/op/postfixderef.t | 25 +- 5 files changed, 1502 insertions(+), 1448 deletions(-) diff --git a/perly.act b/perly.act index 0d1d5fc..b1457f8 100644 --- a/perly.act +++ b/perly.act @@ -1,223 +1,250 @@ /* -*- buffer-read-only: t -*- !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - This file is built by regen_perly.pl from perly.y. + This file is built by ./regen_perly.pl from perly.y. Any changes made here will be lost! */ case 2: -#line 115 "perly.y" +#line 115 "perly.y" /* yacc.c:1646 */ { parser->expect = XSTATE; } + break; case 3: -#line 119 "perly.y" +#line 119 "perly.y" /* yacc.c:1646 */ { - newPROG(block_end((ps[(3) - (4)].val.ival),(ps[(4) - (4)].val.opval))); + newPROG(block_end((ps[-1].val.ival),(ps[0].val.opval))); PL_compiling.cop_seq = 0; (yyval.ival) = 0; } + break; case 4: -#line 125 "perly.y" +#line 125 "perly.y" /* yacc.c:1646 */ { parser->expect = XTERM; } + break; case 5: -#line 129 "perly.y" +#line 129 "perly.y" /* yacc.c:1646 */ { - PL_eval_root = (ps[(3) - (3)].val.opval); + PL_eval_root = (ps[0].val.opval); (yyval.ival) = 0; } + break; case 6: -#line 134 "perly.y" +#line 134 "perly.y" /* yacc.c:1646 */ { parser->expect = XBLOCK; } + break; case 7: -#line 138 "perly.y" +#line 138 "perly.y" /* yacc.c:1646 */ { PL_pad_reset_pending = TRUE; - PL_eval_root = (ps[(3) - (3)].val.opval); + PL_eval_root = (ps[0].val.opval); (yyval.ival) = 0; yyunlex(); parser->yychar = YYEOF; } + break; case 8: -#line 146 "perly.y" +#line 146 "perly.y" /* yacc.c:1646 */ { parser->expect = XSTATE; } + break; case 9: -#line 150 "perly.y" +#line 150 "perly.y" /* yacc.c:1646 */ { PL_pad_reset_pending = TRUE; - PL_eval_root = (ps[(3) - (3)].val.opval); + PL_eval_root = (ps[0].val.opval); (yyval.ival) = 0; yyunlex(); parser->yychar = YYEOF; } + break; case 10: -#line 158 "perly.y" +#line 158 "perly.y" /* yacc.c:1646 */ { parser->expect = XSTATE; } + break; case 11: -#line 162 "perly.y" +#line 162 "perly.y" /* yacc.c:1646 */ { PL_pad_reset_pending = TRUE; - PL_eval_root = (ps[(3) - (3)].val.opval); + PL_eval_root = (ps[0].val.opval); (yyval.ival) = 0; yyunlex(); parser->yychar = YYEOF; } + break; case 12: -#line 170 "perly.y" +#line 170 "perly.y" /* yacc.c:1646 */ { parser->expect = XSTATE; } + break; case 13: -#line 174 "perly.y" +#line 174 "perly.y" /* yacc.c:1646 */ { - PL_eval_root = (ps[(3) - (3)].val.opval); + PL_eval_root = (ps[0].val.opval); (yyval.ival) = 0; } + break; case 14: -#line 182 "perly.y" - { if (parser->copline > (line_t)(ps[(1) - (4)].val.ival)) - parser->copline = (line_t)(ps[(1) - (4)].val.ival); - (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval)); +#line 182 "perly.y" /* yacc.c:1646 */ + { if (parser->copline > (line_t)(ps[-3].val.ival)) + parser->copline = (line_t)(ps[-3].val.ival); + (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval)); } + break; case 15: -#line 190 "perly.y" - { if (parser->copline > (line_t)(ps[(1) - (7)].val.ival)) - parser->copline = (line_t)(ps[(1) - (7)].val.ival); - (yyval.opval) = block_end((ps[(2) - (7)].val.ival), (ps[(5) - (7)].val.opval)); +#line 190 "perly.y" /* yacc.c:1646 */ + { if (parser->copline > (line_t)(ps[-6].val.ival)) + parser->copline = (line_t)(ps[-6].val.ival); + (yyval.opval) = block_end((ps[-5].val.ival), (ps[-2].val.opval)); } + break; case 16: -#line 197 "perly.y" +#line 197 "perly.y" /* yacc.c:1646 */ { (yyval.ival) = block_start(TRUE); parser->parsed_sub = 0; } + break; case 17: -#line 202 "perly.y" - { if (parser->copline > (line_t)(ps[(1) - (4)].val.ival)) - parser->copline = (line_t)(ps[(1) - (4)].val.ival); - (yyval.opval) = block_end((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval)); +#line 202 "perly.y" /* yacc.c:1646 */ + { if (parser->copline > (line_t)(ps[-3].val.ival)) + parser->copline = (line_t)(ps[-3].val.ival); + (yyval.opval) = block_end((ps[-2].val.ival), (ps[-1].val.opval)); } + break; case 18: -#line 209 "perly.y" +#line 209 "perly.y" /* yacc.c:1646 */ { (yyval.ival) = block_start(FALSE); parser->parsed_sub = 0; } + break; case 19: -#line 215 "perly.y" +#line 215 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 20: -#line 217 "perly.y" - { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval)); +#line 217 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval)); PL_pad_reset_pending = TRUE; - if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval)) + if ((ps[-1].val.opval) && (ps[0].val.opval)) PL_hints |= HINT_BLOCK_SCOPE; } + break; case 21: -#line 226 "perly.y" +#line 226 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 22: -#line 228 "perly.y" - { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval)); +#line 228 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), (ps[0].val.opval)); PL_pad_reset_pending = TRUE; - if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval)) + if ((ps[-1].val.opval) && (ps[0].val.opval)) PL_hints |= HINT_BLOCK_SCOPE; } + break; case 23: -#line 237 "perly.y" +#line 237 "perly.y" /* yacc.c:1646 */ { - (yyval.opval) = (ps[(1) - (1)].val.opval) ? newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval)) : NULL; + (yyval.opval) = (ps[0].val.opval) ? newSTATEOP(0, NULL, (ps[0].val.opval)) : NULL; } + break; case 24: -#line 241 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 241 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 25: -#line 245 "perly.y" +#line 245 "perly.y" /* yacc.c:1646 */ { - (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)); + (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[-1].val.pval)[strlen((ps[-1].val.pval))+1], (ps[-1].val.pval), (ps[0].val.opval)); } + break; case 26: -#line 249 "perly.y" +#line 249 "perly.y" /* yacc.c:1646 */ { - (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)); + (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[-1].val.pval)[strlen((ps[-1].val.pval))+1], (ps[-1].val.pval), (ps[0].val.opval)); } + break; case 27: -#line 256 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 256 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 28: -#line 258 "perly.y" +#line 258 "perly.y" /* yacc.c:1646 */ { CV *fmtcv = PL_compcv; - newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval)); + newFORM((ps[-2].val.ival), (ps[-1].val.opval), (ps[0].val.opval)); (yyval.opval) = (OP*)NULL; if (CvOUTSIDE(fmtcv) && !CvEVAL(CvOUTSIDE(fmtcv))) { pad_add_weakref(fmtcv); } parser->parsed_sub = 1; } + break; case 29: -#line 268 "perly.y" +#line 268 "perly.y" /* yacc.c:1646 */ { - if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) { + if ((ps[-1].val.opval)->op_type == OP_CONST) { const char *const name = - SvPV_nolen_const(((SVOP*)(ps[(2) - (3)].val.opval))->op_sv); + SvPV_nolen_const(((SVOP*)(ps[-1].val.opval))->op_sv); if (strEQ(name, "BEGIN") || strEQ(name, "END") || strEQ(name, "INIT") || strEQ(name, "CHECK") || strEQ(name, "UNITCHECK")) @@ -230,33 +257,35 @@ case 2: || CvCLONE(CvOUTSIDE(PL_compcv)) || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST( CvOUTSIDE(PL_compcv) - ))[(ps[(2) - (3)].val.opval)->op_targ])) + ))[(ps[-1].val.opval)->op_targ])) CvCLONE_on(PL_compcv); parser->in_my = 0; parser->in_my_stash = NULL; } + break; case 30: -#line 290 "perly.y" +#line 290 "perly.y" /* yacc.c:1646 */ { SvREFCNT_inc_simple_void(PL_compcv); - (ps[(2) - (7)].val.opval)->op_type == OP_CONST - ? newATTRSUB((ps[(3) - (7)].val.ival), (ps[(2) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)) - : newMYSUB((ps[(3) - (7)].val.ival), (ps[(2) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval)) + (ps[-5].val.opval)->op_type == OP_CONST + ? newATTRSUB((ps[-4].val.ival), (ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)) + : newMYSUB((ps[-4].val.ival), (ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)) ; (yyval.opval) = (OP*)NULL; intro_my(); parser->parsed_sub = 1; } + break; case 31: -#line 301 "perly.y" +#line 301 "perly.y" /* yacc.c:1646 */ { - if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) { + if ((ps[-1].val.opval)->op_type == OP_CONST) { const char *const name = - SvPV_nolen_const(((SVOP*)(ps[(2) - (3)].val.opval))->op_sv); + SvPV_nolen_const(((SVOP*)(ps[-1].val.opval))->op_sv); if (strEQ(name, "BEGIN") || strEQ(name, "END") || strEQ(name, "INIT") || strEQ(name, "CHECK") || strEQ(name, "UNITCHECK")) @@ -269,130 +298,144 @@ case 2: || CvCLONE(CvOUTSIDE(PL_compcv)) || !PadnameIsSTATE(PadlistNAMESARRAY(CvPADLIST( CvOUTSIDE(PL_compcv) - ))[(ps[(2) - (3)].val.opval)->op_targ])) + ))[(ps[-1].val.opval)->op_targ])) CvCLONE_on(PL_compcv); parser->in_my = 0; parser->in_my_stash = NULL; } + break; case 32: -#line 323 "perly.y" +#line 323 "perly.y" /* yacc.c:1646 */ { OP *body; - if (parser->copline > (line_t)(ps[(8) - (10)].val.ival)) - parser->copline = (line_t)(ps[(8) - (10)].val.ival); - body = block_end((ps[(5) - (10)].val.ival), - op_append_list(OP_LINESEQ, (ps[(6) - (10)].val.opval), (ps[(9) - (10)].val.opval))); + if (parser->copline > (line_t)(ps[-2].val.ival)) + parser->copline = (line_t)(ps[-2].val.ival); + body = block_end((ps[-5].val.ival), + op_append_list(OP_LINESEQ, (ps[-4].val.opval), (ps[-1].val.opval))); SvREFCNT_inc_simple_void(PL_compcv); - (ps[(2) - (10)].val.opval)->op_type == OP_CONST - ? newATTRSUB((ps[(3) - (10)].val.ival), (ps[(2) - (10)].val.opval), NULL, (ps[(7) - (10)].val.opval), body) - : newMYSUB((ps[(3) - (10)].val.ival), (ps[(2) - (10)].val.opval), NULL, (ps[(7) - (10)].val.opval), body) + (ps[-8].val.opval)->op_type == OP_CONST + ? newATTRSUB((ps[-7].val.ival), (ps[-8].val.opval), NULL, (ps[-3].val.opval), body) + : newMYSUB((ps[-7].val.ival), (ps[-8].val.opval), NULL, (ps[-3].val.opval), body) ; (yyval.opval) = (OP*)NULL; intro_my(); parser->parsed_sub = 1; } + break; case 33: -#line 340 "perly.y" +#line 340 "perly.y" /* yacc.c:1646 */ { - package((ps[(3) - (4)].val.opval)); - if ((ps[(2) - (4)].val.opval)) - package_version((ps[(2) - (4)].val.opval)); + package((ps[-1].val.opval)); + if ((ps[-2].val.opval)) + package_version((ps[-2].val.opval)); (yyval.opval) = (OP*)NULL; } + break; case 34: -#line 347 "perly.y" +#line 347 "perly.y" /* yacc.c:1646 */ { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ } + break; case 35: -#line 349 "perly.y" +#line 349 "perly.y" /* yacc.c:1646 */ { 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)); + utilize((ps[-6].val.ival), (ps[-5].val.ival), (ps[-3].val.opval), (ps[-2].val.opval), (ps[-1].val.opval)); parser->parsed_sub = 1; (yyval.opval) = (OP*)NULL; } + break; case 36: -#line 356 "perly.y" +#line 356 "perly.y" /* yacc.c:1646 */ { - (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))); - parser->copline = (line_t)(ps[(1) - (7)].val.ival); + (yyval.opval) = block_end((ps[-4].val.ival), + newCONDOP(0, (ps[-3].val.opval), op_scope((ps[-1].val.opval)), (ps[0].val.opval))); + parser->copline = (line_t)(ps[-6].val.ival); } + break; case 37: -#line 362 "perly.y" +#line 362 "perly.y" /* yacc.c:1646 */ { - (yyval.opval) = block_end((ps[(3) - (7)].val.ival), - newCONDOP(0, (ps[(4) - (7)].val.opval), (ps[(7) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)))); - parser->copline = (line_t)(ps[(1) - (7)].val.ival); + (yyval.opval) = block_end((ps[-4].val.ival), + newCONDOP(0, (ps[-3].val.opval), (ps[0].val.opval), op_scope((ps[-1].val.opval)))); + parser->copline = (line_t)(ps[-6].val.ival); } + break; case 38: -#line 368 "perly.y" +#line 368 "perly.y" /* yacc.c:1646 */ { - (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newGIVENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)), 0)); - parser->copline = (line_t)(ps[(1) - (6)].val.ival); + (yyval.opval) = block_end((ps[-3].val.ival), newGIVENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)), 0)); + parser->copline = (line_t)(ps[-5].val.ival); } + break; case 39: -#line 373 "perly.y" - { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); } +#line 373 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = block_end((ps[-3].val.ival), newWHENOP((ps[-2].val.opval), op_scope((ps[0].val.opval)))); } + break; case 40: -#line 375 "perly.y" - { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); } +#line 375 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newWHENOP(0, op_scope((ps[0].val.opval))); } + break; case 41: -#line 377 "perly.y" +#line 377 "perly.y" /* yacc.c:1646 */ { - (yyval.opval) = block_end((ps[(3) - (8)].val.ival), + (yyval.opval) = block_end((ps[-5].val.ival), 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))); - parser->copline = (line_t)(ps[(1) - (8)].val.ival); + (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival))); + parser->copline = (line_t)(ps[-7].val.ival); } + break; case 42: -#line 384 "perly.y" +#line 384 "perly.y" /* yacc.c:1646 */ { - (yyval.opval) = block_end((ps[(3) - (8)].val.ival), + (yyval.opval) = block_end((ps[-5].val.ival), 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))); - parser->copline = (line_t)(ps[(1) - (8)].val.ival); + (ps[-4].val.opval), (ps[-1].val.opval), (ps[0].val.opval), (ps[-2].val.ival))); + parser->copline = (line_t)(ps[-7].val.ival); } + break; case 43: -#line 391 "perly.y" +#line 391 "perly.y" /* yacc.c:1646 */ { parser->expect = XTERM; } + break; case 44: -#line 393 "perly.y" +#line 393 "perly.y" /* yacc.c:1646 */ { parser->expect = XTERM; } + break; case 45: -#line 396 "perly.y" +#line 396 "perly.y" /* yacc.c:1646 */ { - OP *initop = (ps[(4) - (13)].val.opval); + OP *initop = (ps[-9].val.opval); OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL, - scalar((ps[(7) - (13)].val.opval)), (ps[(13) - (13)].val.opval), (ps[(11) - (13)].val.opval), (ps[(10) - (13)].val.ival)); + scalar((ps[-6].val.opval)), (ps[0].val.opval), (ps[-2].val.opval), (ps[-3].val.ival)); if (initop) { forop = op_prepend_elem(OP_LINESEQ, initop, op_append_elem(OP_LINESEQ, @@ -400,123 +443,135 @@ case 2: forop)); } PL_hints |= HINT_BLOCK_SCOPE; - (yyval.opval) = block_end((ps[(3) - (13)].val.ival), forop); - parser->copline = (line_t)(ps[(1) - (13)].val.ival); + (yyval.opval) = block_end((ps[-10].val.ival), forop); + parser->copline = (line_t)(ps[-12].val.ival); } + break; case 46: -#line 411 "perly.y" +#line 411 "perly.y" /* yacc.c:1646 */ { - (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))); - parser->copline = (line_t)(ps[(1) - (9)].val.ival); + (yyval.opval) = block_end((ps[-6].val.ival), newFOROP(0, (ps[-5].val.opval), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); + parser->copline = (line_t)(ps[-8].val.ival); } + break; case 47: -#line 416 "perly.y" +#line 416 "perly.y" /* yacc.c:1646 */ { - (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))); - parser->copline = (line_t)(ps[(1) - (8)].val.ival); + (yyval.opval) = block_end((ps[-4].val.ival), newFOROP(0, + op_lvalue((ps[-6].val.opval), OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); + parser->copline = (line_t)(ps[-7].val.ival); } + break; case 48: -#line 422 "perly.y" - { parser->in_my = 0; (yyval.opval) = my((ps[(5) - (5)].val.opval)); } +#line 422 "perly.y" /* yacc.c:1646 */ + { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } + break; case 49: -#line 424 "perly.y" +#line 424 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = block_end( - (ps[(4) - (11)].val.ival), + (ps[-7].val.ival), newFOROP(0, op_lvalue( newUNOP(OP_REFGEN, 0, - (ps[(6) - (11)].val.opval)), + (ps[-5].val.opval)), OP_ENTERLOOP), - (ps[(8) - (11)].val.opval), (ps[(10) - (11)].val.opval), (ps[(11) - (11)].val.opval)) + (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval)) ); - parser->copline = (line_t)(ps[(1) - (11)].val.ival); + parser->copline = (line_t)(ps[-10].val.ival); } + break; case 50: -#line 437 "perly.y" +#line 437 "perly.y" /* yacc.c:1646 */ { - (yyval.opval) = block_end((ps[(5) - (9)].val.ival), newFOROP( + (yyval.opval) = block_end((ps[-4].val.ival), newFOROP( 0, op_lvalue(newUNOP(OP_REFGEN, 0, - (ps[(3) - (9)].val.opval)), - OP_ENTERLOOP), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval))); - parser->copline = (line_t)(ps[(1) - (9)].val.ival); + (ps[-6].val.opval)), + OP_ENTERLOOP), (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); + parser->copline = (line_t)(ps[-8].val.ival); } + break; case 51: -#line 445 "perly.y" +#line 445 "perly.y" /* yacc.c:1646 */ { - (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))); - parser->copline = (line_t)(ps[(1) - (7)].val.ival); + (yyval.opval) = block_end((ps[-4].val.ival), + newFOROP(0, (OP*)NULL, (ps[-3].val.opval), (ps[-1].val.opval), (ps[0].val.opval))); + parser->copline = (line_t)(ps[-6].val.ival); } + break; case 52: -#line 451 "perly.y" +#line 451 "perly.y" /* yacc.c:1646 */ { /* 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); + (OP*)NULL, (ps[-1].val.opval), (ps[0].val.opval), 0); } + break; case 53: -#line 457 "perly.y" +#line 457 "perly.y" /* yacc.c:1646 */ { - package((ps[(3) - (5)].val.opval)); - if ((ps[(2) - (5)].val.opval)) { - package_version((ps[(2) - (5)].val.opval)); + package((ps[-2].val.opval)); + if ((ps[-3].val.opval)) { + package_version((ps[-3].val.opval)); } } + break; case 54: -#line 464 "perly.y" +#line 464 "perly.y" /* yacc.c:1646 */ { /* 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 (parser->copline > (line_t)(ps[(4) - (8)].val.ival)) - parser->copline = (line_t)(ps[(4) - (8)].val.ival); + (OP*)NULL, block_end((ps[-3].val.ival), (ps[-1].val.opval)), (OP*)NULL, 0); + if (parser->copline > (line_t)(ps[-4].val.ival)) + parser->copline = (line_t)(ps[-4].val.ival); } + break; case 55: -#line 472 "perly.y" +#line 472 "perly.y" /* yacc.c:1646 */ { - (yyval.opval) = (ps[(1) - (2)].val.opval); + (yyval.opval) = (ps[-1].val.opval); } + break; case 56: -#line 476 "perly.y" +#line 476 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; parser->copline = NOLINE; } + break; case 57: -#line 484 "perly.y" +#line 484 "perly.y" /* yacc.c:1646 */ { OP *list; - if ((ps[(2) - (2)].val.opval)) { - OP *term = (ps[(2) - (2)].val.opval); - list = op_append_elem(OP_LIST, (ps[(1) - (2)].val.opval), term); + if ((ps[0].val.opval)) { + OP *term = (ps[0].val.opval); + list = op_append_elem(OP_LIST, (ps[-1].val.opval), term); } else { - list = (ps[(1) - (2)].val.opval); + list = (ps[-1].val.opval); } if (parser->copline == NOLINE) parser->copline = CopLINE(PL_curcop)-1; @@ -524,186 +579,219 @@ case 2: (yyval.opval) = newSTATEOP(0, NULL, op_convert_list(OP_FORMLINE, 0, list)); } + break; case 58: -#line 501 "perly.y" +#line 501 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = NULL; } + break; case 59: -#line 503 "perly.y" - { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); } +#line 503 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = op_unscope((ps[-1].val.opval)); } + break; case 60: -#line 508 "perly.y" +#line 508 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 61: -#line 510 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 510 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 62: -#line 512 "perly.y" - { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); } +#line 512 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[0].val.opval), (ps[-2].val.opval)); } + break; case 63: -#line 514 "perly.y" - { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); } +#line 514 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[0].val.opval), (ps[-2].val.opval)); } + break; case 64: -#line 516 "perly.y" - { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); } +#line 516 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[0].val.opval)), (ps[-2].val.opval)); } + break; case 65: -#line 518 "perly.y" - { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); } +#line 518 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[0].val.opval), (ps[-2].val.opval)); } + break; case 66: -#line 520 "perly.y" - { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval), (OP*)NULL); - parser->copline = (line_t)(ps[(2) - (3)].val.ival); } +#line 520 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newFOROP(0, (OP*)NULL, (ps[0].val.opval), (ps[-2].val.opval), (OP*)NULL); + parser->copline = (line_t)(ps[-1].val.ival); } + break; case 67: -#line 523 "perly.y" - { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); } +#line 523 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newWHENOP((ps[0].val.opval), op_scope((ps[-2].val.opval))); } + break; case 68: -#line 528 "perly.y" +#line 528 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 69: -#line 530 "perly.y" +#line 530 "perly.y" /* yacc.c:1646 */ { - ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; - (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); + ((ps[0].val.opval))->op_flags |= OPf_PARENS; + (yyval.opval) = op_scope((ps[0].val.opval)); } + break; case 70: -#line 535 "perly.y" - { parser->copline = (line_t)(ps[(1) - (6)].val.ival); +#line 535 "perly.y" /* yacc.c:1646 */ + { parser->copline = (line_t)(ps[-5].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)); + newSTATEOP(OPf_SPECIAL,NULL,(ps[-3].val.opval)), + op_scope((ps[-1].val.opval)), (ps[0].val.opval)); PL_hints |= HINT_BLOCK_SCOPE; } + break; case 71: -#line 545 "perly.y" +#line 545 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 72: -#line 547 "perly.y" - { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); } +#line 547 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = op_scope((ps[0].val.opval)); } + break; case 73: -#line 552 "perly.y" +#line 552 "perly.y" /* yacc.c:1646 */ { (yyval.ival) = (PL_min_intro_pending && PL_max_intro_pending >= PL_min_intro_pending); intro_my(); } + break; case 74: -#line 558 "perly.y" +#line 558 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 76: -#line 564 "perly.y" +#line 564 "perly.y" /* yacc.c:1646 */ { YYSTYPE tmplval; (void)scan_num("1", &tmplval); (yyval.opval) = tmplval.opval; } + break; case 78: -#line 572 "perly.y" - { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); } +#line 572 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = invert(scalar((ps[0].val.opval))); } + break; case 79: -#line 577 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); } +#line 577 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); intro_my(); } + break; case 80: -#line 581 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); } +#line 581 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); intro_my(); } + break; case 81: -#line 584 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 584 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 82: -#line 585 "perly.y" +#line 585 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 83: -#line 589 "perly.y" +#line 589 "perly.y" /* yacc.c:1646 */ { (yyval.ival) = start_subparse(FALSE, 0); SAVEFREESV(PL_compcv); } + break; case 84: -#line 595 "perly.y" +#line 595 "perly.y" /* yacc.c:1646 */ { (yyval.ival) = start_subparse(FALSE, CVf_ANON); SAVEFREESV(PL_compcv); } + break; case 85: -#line 600 "perly.y" +#line 600 "perly.y" /* yacc.c:1646 */ { (yyval.ival) = start_subparse(TRUE, 0); SAVEFREESV(PL_compcv); } + break; case 88: -#line 611 "perly.y" +#line 611 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 90: -#line 617 "perly.y" +#line 617 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 91: -#line 619 "perly.y" - { (yyval.opval) = (ps[(2) - (2)].val.opval); } +#line 619 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 92: -#line 621 "perly.y" +#line 621 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 93: -#line 626 "perly.y" - { (yyval.opval) = (ps[(2) - (2)].val.opval); } +#line 626 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 94: -#line 628 "perly.y" +#line 628 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 95: -#line 633 "perly.y" +#line 633 "perly.y" /* yacc.c:1646 */ { /* We shouldn't get here otherwise */ assert(FEATURE_SIGNATURES_IS_ENABLED); @@ -713,318 +801,382 @@ case 2: "The signatures feature is experimental"); (yyval.opval) = parse_subsignature(); } + break; case 96: -#line 643 "perly.y" +#line 643 "perly.y" /* yacc.c:1646 */ { - (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval), + (yyval.opval) = op_append_list(OP_LINESEQ, (ps[-1].val.opval), newSTATEOP(0, NULL, sawparens(newNULLLIST()))); parser->expect = XATTRBLOCK; } + break; case 98: -#line 652 "perly.y" +#line 652 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 99: -#line 657 "perly.y" - { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } +#line 657 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } + break; case 100: -#line 659 "perly.y" - { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } +#line 659 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newLOGOP((ps[-1].val.ival), 0, (ps[-2].val.opval), (ps[0].val.opval)); } + break; case 101: -#line 661 "perly.y" - { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } +#line 661 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } + break; case 103: -#line 667 "perly.y" - { (yyval.opval) = (ps[(1) - (2)].val.opval); } +#line 667 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[-1].val.opval); } + break; case 104: -#line 669 "perly.y" +#line 669 "perly.y" /* yacc.c:1646 */ { - OP* term = (ps[(3) - (3)].val.opval); - (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term); + OP* term = (ps[0].val.opval); + (yyval.opval) = op_append_elem(OP_LIST, (ps[-2].val.opval), term); } + break; case 106: -#line 678 "perly.y" - { (yyval.opval) = op_convert_list((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)) ); +#line 678 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = op_convert_list((ps[-2].val.ival), OPf_STACKED, + op_prepend_elem(OP_LIST, newGVREF((ps[-2].val.ival),(ps[-1].val.opval)), (ps[0].val.opval)) ); } + break; case 107: -#line 682 "perly.y" - { (yyval.opval) = op_convert_list((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)) ); +#line 682 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = op_convert_list((ps[-4].val.ival), OPf_STACKED, + op_prepend_elem(OP_LIST, newGVREF((ps[-4].val.ival),(ps[-2].val.opval)), (ps[-1].val.opval)) ); } + break; case 108: -#line 686 "perly.y" +#line 686 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, - op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)), - newMETHOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval)))); + op_prepend_elem(OP_LIST, scalar((ps[-5].val.opval)), (ps[-1].val.opval)), + newMETHOP(OP_METHOD, 0, (ps[-3].val.opval)))); } + break; case 109: -#line 692 "perly.y" +#line 692 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, - op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)), - newMETHOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval)))); + op_append_elem(OP_LIST, scalar((ps[-2].val.opval)), + newMETHOP(OP_METHOD, 0, (ps[0].val.opval)))); } + break; case 110: -#line 697 "perly.y" +#line 697 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, - op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)), - newMETHOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval)))); + op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), + newMETHOP(OP_METHOD, 0, (ps[-2].val.opval)))); } + break; case 111: -#line 703 "perly.y" +#line 703 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_convert_list(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, - op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)), - newMETHOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval)))); + op_prepend_elem(OP_LIST, (ps[-3].val.opval), (ps[-1].val.opval)), + newMETHOP(OP_METHOD, 0, (ps[-4].val.opval)))); } + break; case 112: -#line 709 "perly.y" - { (yyval.opval) = op_convert_list((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); } +#line 709 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = op_convert_list((ps[-1].val.ival), 0, (ps[0].val.opval)); } + break; case 113: -#line 711 "perly.y" - { (yyval.opval) = op_convert_list((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); } +#line 711 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = op_convert_list((ps[-3].val.ival), 0, (ps[-1].val.opval)); } + break; case 114: -#line 713 "perly.y" +#line 713 "perly.y" /* yacc.c:1646 */ { 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[-1].val.ival), 0, (OP*)NULL, (ps[0].val.opval)); } + break; case 115: -#line 716 "perly.y" +#line 716 "perly.y" /* yacc.c:1646 */ { (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))); + op_prepend_elem(OP_LIST, (ps[-1].val.opval), (ps[0].val.opval)), (ps[-4].val.opval))); } + break; case 118: -#line 731 "perly.y" - { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); } +#line 731 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[-4].val.opval), scalar((ps[-2].val.opval))); } + break; case 119: -#line 733 "perly.y" - { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval))); +#line 733 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[-3].val.opval)), scalar((ps[-1].val.opval))); } + break; case 120: -#line 736 "perly.y" +#line 736 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP(OP_AELEM, 0, - ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV), - scalar((ps[(4) - (5)].val.opval))); + ref(newAVREF((ps[-4].val.opval)),OP_RV2AV), + scalar((ps[-1].val.opval))); } + break; case 121: -#line 741 "perly.y" +#line 741 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP(OP_AELEM, 0, - ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV), - scalar((ps[(3) - (4)].val.opval))); + ref(newAVREF((ps[-3].val.opval)),OP_RV2AV), + scalar((ps[-1].val.opval))); } + break; case 122: -#line 746 "perly.y" - { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval))); +#line 746 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[-4].val.opval)), jmaybe((ps[-2].val.opval))); } + break; case 123: -#line 749 "perly.y" +#line 749 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP(OP_HELEM, 0, - ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV), - jmaybe((ps[(4) - (6)].val.opval))); } + ref(newHVREF((ps[-5].val.opval)),OP_RV2HV), + jmaybe((ps[-2].val.opval))); } + break; case 124: -#line 753 "perly.y" +#line 753 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newBINOP(OP_HELEM, 0, - ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV), - jmaybe((ps[(3) - (5)].val.opval))); } + ref(newHVREF((ps[-4].val.opval)),OP_RV2HV), + jmaybe((ps[-2].val.opval))); } + break; case 125: -#line 757 "perly.y" +#line 757 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, - newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); } + newCVREF(0, scalar((ps[-3].val.opval)))); + if (parser->expect == XBLOCK) + parser->expect = XOPERATOR; + } + break; case 126: -#line 760 "perly.y" +#line 763 "perly.y" /* yacc.c:1646 */ { (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))))); } + op_append_elem(OP_LIST, (ps[-1].val.opval), + newCVREF(0, scalar((ps[-4].val.opval))))); + if (parser->expect == XBLOCK) + parser->expect = XOPERATOR; + } + break; case 127: -#line 765 "perly.y" +#line 771 "perly.y" /* yacc.c:1646 */ { (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))))); } + op_append_elem(OP_LIST, (ps[-1].val.opval), + newCVREF(0, scalar((ps[-3].val.opval))))); + if (parser->expect == XBLOCK) + parser->expect = XOPERATOR; + } + break; case 128: -#line 769 "perly.y" +#line 778 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, - newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); } + newCVREF(0, scalar((ps[-2].val.opval)))); + if (parser->expect == XBLOCK) + parser->expect = XOPERATOR; + } + break; case 129: -#line 772 "perly.y" - { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); } +#line 784 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-4].val.opval)); } + break; case 130: -#line 774 "perly.y" - { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); } +#line 786 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (ps[-3].val.opval)); } + break; case 131: -#line 776 "perly.y" - { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); } +#line 788 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newSLICEOP(0, (ps[-1].val.opval), (OP*)NULL); } + break; case 132: -#line 781 "perly.y" - { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); } +#line 793 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[-2].val.opval), (ps[-1].val.ival), (ps[0].val.opval)); } + break; case 133: -#line 783 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 795 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } + break; case 134: -#line 785 "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))); +#line 797 "perly.y" /* yacc.c:1646 */ + { if ((ps[-1].val.ival) != OP_REPEAT) + scalar((ps[-2].val.opval)); + (yyval.opval) = newBINOP((ps[-1].val.ival), 0, (ps[-2].val.opval), scalar((ps[0].val.opval))); } + break; case 135: -#line 790 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 802 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } + break; case 136: -#line 792 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 804 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } + break; case 137: -#line 794 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 806 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } + break; case 138: -#line 796 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 808 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } + break; case 139: -#line 798 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 810 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } + break; case 140: -#line 800 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 812 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newBINOP((ps[-1].val.ival), 0, scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } + break; case 141: -#line 802 "perly.y" - { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 814 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newRANGE((ps[-1].val.ival), scalar((ps[-2].val.opval)), scalar((ps[0].val.opval))); } + break; case 142: -#line 804 "perly.y" - { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } +#line 816 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[-2].val.opval), (ps[0].val.opval)); } + break; case 143: -#line 806 "perly.y" - { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } +#line 818 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } + break; case 144: -#line 808 "perly.y" - { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } +#line 820 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[-2].val.opval), (ps[0].val.opval)); } + break; case 145: -#line 810 "perly.y" - { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } +#line 822 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = bind_match((ps[-1].val.ival), (ps[-2].val.opval), (ps[0].val.opval)); } + break; case 146: -#line 815 "perly.y" - { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); } +#line 827 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[0].val.opval))); } + break; case 147: -#line 817 "perly.y" - { (yyval.opval) = (ps[(2) - (2)].val.opval); } +#line 829 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 148: -#line 820 "perly.y" - { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); } +#line 832 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } + break; case 149: -#line 822 "perly.y" - { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, scalar((ps[(2) - (2)].val.opval))); } +#line 834 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, scalar((ps[0].val.opval))); } + break; case 150: -#line 824 "perly.y" +#line 836 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_POSTINC, 0, - op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); } + op_lvalue(scalar((ps[-1].val.opval)), OP_POSTINC)); } + break; case 151: -#line 827 "perly.y" +#line 839 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_POSTDEC, 0, - op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));} + op_lvalue(scalar((ps[-1].val.opval)), OP_POSTDEC));} + break; case 152: -#line 830 "perly.y" +#line 842 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_convert_list(OP_JOIN, 0, op_append_elem( OP_LIST, @@ -1032,510 +1184,598 @@ case 2: newSVOP(OP_CONST,0, newSVpvs("\"")) )), - (ps[(1) - (2)].val.opval) + (ps[-1].val.opval) )); } + break; case 153: -#line 841 "perly.y" +#line 853 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_PREINC, 0, - op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); } + op_lvalue(scalar((ps[0].val.opval)), OP_PREINC)); } + break; case 154: -#line 844 "perly.y" +#line 856 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_PREDEC, 0, - op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); } + op_lvalue(scalar((ps[0].val.opval)), OP_PREDEC)); } + break; case 155: -#line 851 "perly.y" - { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); } +#line 863 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newANONLIST((ps[-1].val.opval)); } + break; case 156: -#line 853 "perly.y" +#line 865 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newANONLIST((OP*)NULL);} + break; case 157: -#line 855 "perly.y" - { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); } +#line 867 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newANONHASH((ps[-2].val.opval)); } + break; case 158: -#line 857 "perly.y" +#line 869 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newANONHASH((OP*)NULL); } + break; case 159: -#line 859 "perly.y" +#line 871 "perly.y" /* yacc.c:1646 */ { 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[-3].val.ival), (ps[-2].val.opval), (ps[-1].val.opval), (ps[0].val.opval)); } + break; case 160: -#line 862 "perly.y" +#line 874 "perly.y" /* yacc.c:1646 */ { OP *body; - if (parser->copline > (line_t)(ps[(6) - (8)].val.ival)) - parser->copline = (line_t)(ps[(6) - (8)].val.ival); - body = block_end((ps[(3) - (8)].val.ival), - op_append_list(OP_LINESEQ, (ps[(4) - (8)].val.opval), (ps[(7) - (8)].val.opval))); + if (parser->copline > (line_t)(ps[-2].val.ival)) + parser->copline = (line_t)(ps[-2].val.ival); + body = block_end((ps[-5].val.ival), + op_append_list(OP_LINESEQ, (ps[-4].val.opval), (ps[-1].val.opval))); SvREFCNT_inc_simple_void(PL_compcv); - (yyval.opval) = newANONATTRSUB((ps[(2) - (8)].val.ival), NULL, (ps[(5) - (8)].val.opval), body); + (yyval.opval) = newANONATTRSUB((ps[-6].val.ival), NULL, (ps[-3].val.opval), body); } + break; case 161: -#line 876 "perly.y" - { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));} +#line 888 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = dofile((ps[0].val.opval), (ps[-1].val.ival));} + break; case 162: -#line 878 "perly.y" - { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));} +#line 890 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[0].val.opval)));} + break; case 167: -#line 886 "perly.y" - { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); } +#line 898 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newCONDOP(0, (ps[-4].val.opval), (ps[-2].val.opval), (ps[0].val.opval)); } + break; case 168: -#line 888 "perly.y" - { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[(2) - (2)].val.opval)); } +#line 900 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_REFGEN, 0, (ps[0].val.opval)); } + break; case 169: -#line 890 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 902 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 170: -#line 892 "perly.y" - { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); } +#line 904 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = localize((ps[0].val.opval),(ps[-1].val.ival)); } + break; case 171: -#line 894 "perly.y" - { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); } +#line 906 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = sawparens((ps[-1].val.opval)); } + break; case 172: -#line 896 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 908 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 173: -#line 898 "perly.y" +#line 910 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = sawparens(newNULLLIST()); } + break; case 174: -#line 900 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 912 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 175: -#line 902 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 914 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 176: -#line 904 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 916 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 177: -#line 906 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 918 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 178: -#line 908 "perly.y" - { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));} +#line 920 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[0].val.opval), OP_AV2ARYLEN));} + break; case 179: -#line 910 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 922 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 180: -#line 912 "perly.y" +#line 924 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, - list((ps[(3) - (4)].val.opval)), - ref((ps[(1) - (4)].val.opval), OP_ASLICE))); - if ((yyval.opval) && (ps[(1) - (4)].val.opval)) + list((ps[-1].val.opval)), + ref((ps[-3].val.opval), OP_ASLICE))); + if ((yyval.opval) && (ps[-3].val.opval)) (yyval.opval)->op_private |= - (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING; + (ps[-3].val.opval)->op_private & OPpSLICEWARNING; } + break; case 181: -#line 922 "perly.y" +#line 934 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_prepend_elem(OP_KVASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVASLICE, 0, - list((ps[(3) - (4)].val.opval)), - ref(oopsAV((ps[(1) - (4)].val.opval)), OP_KVASLICE))); - if ((yyval.opval) && (ps[(1) - (4)].val.opval)) + list((ps[-1].val.opval)), + ref(oopsAV((ps[-3].val.opval)), OP_KVASLICE))); + if ((yyval.opval) && (ps[-3].val.opval)) (yyval.opval)->op_private |= - (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING; + (ps[-3].val.opval)->op_private & OPpSLICEWARNING; } + break; case 182: -#line 932 "perly.y" +#line 944 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, - list((ps[(3) - (5)].val.opval)), - ref(oopsHV((ps[(1) - (5)].val.opval)), OP_HSLICE))); - if ((yyval.opval) && (ps[(1) - (5)].val.opval)) + list((ps[-2].val.opval)), + ref(oopsHV((ps[-4].val.opval)), OP_HSLICE))); + if ((yyval.opval) && (ps[-4].val.opval)) (yyval.opval)->op_private |= - (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING; + (ps[-4].val.opval)->op_private & OPpSLICEWARNING; } + break; case 183: -#line 942 "perly.y" +#line 954 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVHSLICE, 0, - list((ps[(3) - (5)].val.opval)), - ref((ps[(1) - (5)].val.opval), OP_KVHSLICE))); - if ((yyval.opval) && (ps[(1) - (5)].val.opval)) + list((ps[-2].val.opval)), + ref((ps[-4].val.opval), OP_KVHSLICE))); + if ((yyval.opval) && (ps[-4].val.opval)) (yyval.opval)->op_private |= - (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING; + (ps[-4].val.opval)->op_private & OPpSLICEWARNING; } + break; case 184: -#line 952 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 964 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 185: -#line 954 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); } +#line 966 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[0].val.opval))); } + break; case 186: -#line 956 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval))); +#line 968 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[-2].val.opval))); } + break; case 187: -#line 959 "perly.y" +#line 971 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, - op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval)))); + op_append_elem(OP_LIST, (ps[-1].val.opval), scalar((ps[-3].val.opval)))); } + break; case 188: -#line 964 "perly.y" +#line 976 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, - op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval)))); + op_append_elem(OP_LIST, (ps[0].val.opval), scalar((ps[-1].val.opval)))); } + break; case 189: -#line 968 "perly.y" - { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); } +#line 980 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newSVREF((ps[-3].val.opval)); } + break; case 190: -#line 970 "perly.y" - { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); } +#line 982 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newAVREF((ps[-3].val.opval)); } + break; case 191: -#line 972 "perly.y" - { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); } +#line 984 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newHVREF((ps[-3].val.opval)); } + break; case 192: -#line 974 "perly.y" +#line 986 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, - scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); } + scalar(newCVREF((ps[-1].val.ival),(ps[-3].val.opval)))); } + break; case 193: -#line 977 "perly.y" - { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); } +#line 989 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newGVREF(0,(ps[-3].val.opval)); } + break; case 194: -#line 979 "perly.y" - { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL); +#line 991 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newOP((ps[0].val.ival), OPf_SPECIAL); PL_hints |= HINT_BLOCK_SCOPE; } + break; case 195: -#line 982 "perly.y" - { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); } +#line 994 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newLOOPEX((ps[-1].val.ival),(ps[0].val.opval)); } + break; case 196: -#line 984 "perly.y" - { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); } +#line 996 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[0].val.opval))); } + break; case 197: -#line 986 "perly.y" - { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); } +#line 998 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newOP((ps[0].val.ival), 0); } + break; case 198: -#line 988 "perly.y" - { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); } +#line 1000 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } + break; case 199: -#line 990 "perly.y" - { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); } +#line 1002 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP((ps[-1].val.ival), 0, (ps[0].val.opval)); } + break; case 200: -#line 992 "perly.y" - { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); } +#line 1004 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newOP(OP_REQUIRE, (ps[0].val.ival) ? OPf_SPECIAL : 0); } + break; case 201: -#line 994 "perly.y" - { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); } +#line 1006 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[-1].val.ival) ? OPf_SPECIAL : 0, (ps[0].val.opval)); } + break; case 202: -#line 996 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); } +#line 1008 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } + break; case 203: -#line 998 "perly.y" +#line 1010 "perly.y" /* yacc.c:1646 */ { (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[0].val.opval), scalar((ps[-1].val.opval)))); } + break; case 204: -#line 1001 "perly.y" - { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); } +#line 1013 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newOP((ps[0].val.ival), 0); } + break; case 205: -#line 1003 "perly.y" - { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);} +#line 1015 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newOP((ps[-2].val.ival), 0);} + break; case 206: -#line 1005 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 1017 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 207: -#line 1007 "perly.y" - { (yyval.opval) = (ps[(1) - (3)].val.opval); } +#line 1019 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[-2].val.opval); } + break; case 208: -#line 1009 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); } +#line 1021 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[0].val.opval))); } + break; case 209: -#line 1011 "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); } +#line 1023 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = ((ps[-2].val.ival) == OP_NOT) + ? newUNOP((ps[-2].val.ival), 0, newSVOP(OP_CONST, 0, newSViv(0))) + : newOP((ps[-2].val.ival), OPf_SPECIAL); } + break; case 210: -#line 1015 "perly.y" - { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); } +#line 1027 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newUNOP((ps[-3].val.ival), 0, (ps[-1].val.opval)); } + break; case 211: -#line 1017 "perly.y" +#line 1029 "perly.y" /* yacc.c:1646 */ { - if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS - && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR - && (((PMOP*)(ps[(1) - (1)].val.opval))->op_pmflags & PMf_HAS_CV)) + if ( (ps[0].val.opval)->op_type != OP_TRANS + && (ps[0].val.opval)->op_type != OP_TRANSR + && (((PMOP*)(ps[0].val.opval))->op_pmflags & PMf_HAS_CV)) { (yyval.ival) = start_subparse(FALSE, CVf_ANON); SAVEFREESV(PL_compcv); } else (yyval.ival) = 0; } + break; case 212: -#line 1028 "perly.y" - { (yyval.opval) = pmruntime((ps[(1) - (6)].val.opval), (ps[(4) - (6)].val.opval), (ps[(5) - (6)].val.opval), 1, (ps[(2) - (6)].val.ival)); } +#line 1040 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = pmruntime((ps[-5].val.opval), (ps[-2].val.opval), (ps[-1].val.opval), 1, (ps[-4].val.ival)); } + break; case 215: -#line 1032 "perly.y" +#line 1044 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); } + break; case 217: -#line 1041 "perly.y" - { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); } +#line 1053 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = my_attrs((ps[-1].val.opval),(ps[0].val.opval)); } + break; case 218: -#line 1043 "perly.y" - { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); } +#line 1055 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = localize((ps[0].val.opval),(ps[-1].val.ival)); } + break; case 219: -#line 1048 "perly.y" - { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); } +#line 1060 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = sawparens((ps[-1].val.opval)); } + break; case 220: -#line 1050 "perly.y" +#line 1062 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = sawparens(newNULLLIST()); } + break; case 221: -#line 1053 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 1065 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 222: -#line 1055 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 1067 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 223: -#line 1057 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 1069 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 224: -#line 1062 "perly.y" +#line 1074 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 225: -#line 1064 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 1076 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 226: -#line 1068 "perly.y" +#line 1080 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 227: -#line 1070 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 1082 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 228: -#line 1074 "perly.y" +#line 1086 "perly.y" /* yacc.c:1646 */ { (yyval.opval) = (OP*)NULL; } + break; case 229: -#line 1076 "perly.y" - { (yyval.opval) = (ps[(2) - (2)].val.opval); } +#line 1088 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; case 230: -#line 1082 "perly.y" - { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); } +#line 1094 "perly.y" /* yacc.c:1646 */ + { parser->in_my = 0; (yyval.opval) = my((ps[0].val.opval)); } + break; case 236: -#line 1095 "perly.y" - { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); } +#line 1107 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newCVREF((ps[-1].val.ival),(ps[0].val.opval)); } + break; case 237: -#line 1099 "perly.y" - { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); } +#line 1111 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newSVREF((ps[0].val.opval)); } + break; case 238: -#line 1103 "perly.y" - { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); - if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival); +#line 1115 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newAVREF((ps[0].val.opval)); + if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } + break; case 239: -#line 1109 "perly.y" - { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval)); - if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival); +#line 1121 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newHVREF((ps[0].val.opval)); + if ((yyval.opval)) (yyval.opval)->op_private |= (ps[-1].val.ival); } + break; case 240: -#line 1115 "perly.y" - { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); } +#line 1127 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newAVREF((ps[0].val.opval)); } + break; case 241: -#line 1117 "perly.y" - { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); } +#line 1129 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newAVREF((ps[-3].val.opval)); } + break; case 242: -#line 1121 "perly.y" - { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); } +#line 1133 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newGVREF(0,(ps[0].val.opval)); } + break; case 244: -#line 1126 "perly.y" - { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); } +#line 1138 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newAVREF((ps[-2].val.opval)); } + break; case 246: -#line 1131 "perly.y" - { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); } +#line 1143 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newHVREF((ps[-2].val.opval)); } + break; case 248: -#line 1136 "perly.y" - { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); } +#line 1148 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = newGVREF(0,(ps[-2].val.opval)); } + break; case 249: -#line 1141 "perly.y" - { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); } +#line 1153 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = scalar((ps[0].val.opval)); } + break; case 250: -#line 1143 "perly.y" - { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); } +#line 1155 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = scalar((ps[0].val.opval)); } + break; case 251: -#line 1145 "perly.y" - { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); } +#line 1157 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = op_scope((ps[0].val.opval)); } + break; case 252: -#line 1148 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 1160 "perly.y" /* yacc.c:1646 */ + { (yyval.opval) = (ps[0].val.opval); } + break; + + default: break; /* Generated from: - * 703ebd267cf8ca45f9dee9bc0f4b21511117a0c1dca1c8bc9438ce91950217ae perly.y + * 4fd37fdbff6285ba6e9096c2229255ecc6264d2f26835e535cf1c38f387ceae6 perly.y * a4923588f219644801577c514014847e1e5240f49413fa3b89d3306fa4874d07 regen_perly.pl * ex: set ro: */ diff --git a/perly.h b/perly.h index acbdaae..4ecd16e 100644 --- a/perly.h +++ b/perly.h @@ -1,28 +1,28 @@ /* -*- buffer-read-only: t -*- !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - This file is built by regen_perly.pl from perly.y. + This file is built by ./regen_perly.pl from perly.y. Any changes made here will be lost! */ -#define PERL_BISON_VERSION 20007 +#define PERL_BISON_VERSION 30000 #ifdef PERL_CORE -/* A Bison parser, made by GNU Bison 2.7. */ +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2015 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. - + 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 . */ @@ -35,11 +35,11 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* Enabling traces. */ +/* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 #endif @@ -47,178 +47,95 @@ extern int yydebug; #endif -/* Tokens. */ +/* Token type. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - GRAMPROG = 258, - GRAMEXPR = 259, - GRAMBLOCK = 260, - GRAMBARESTMT = 261, - GRAMFULLSTMT = 262, - GRAMSTMTSEQ = 263, - WORD = 264, - METHOD = 265, - FUNCMETH = 266, - THING = 267, - PMFUNC = 268, - PRIVATEREF = 269, - QWLIST = 270, - FUNC0OP = 271, - FUNC0SUB = 272, - UNIOPSUB = 273, - LSTOPSUB = 274, - PLUGEXPR = 275, - PLUGSTMT = 276, - LABEL = 277, - FORMAT = 278, - SUB = 279, - ANONSUB = 280, - PACKAGE = 281, - USE = 282, - WHILE = 283, - UNTIL = 284, - IF = 285, - UNLESS = 286, - ELSE = 287, - ELSIF = 288, - CONTINUE = 289, - FOR = 290, - GIVEN = 291, - WHEN = 292, - DEFAULT = 293, - LOOPEX = 294, - DOTDOT = 295, - YADAYADA = 296, - FUNC0 = 297, - FUNC1 = 298, - FUNC = 299, - UNIOP = 300, - LSTOP = 301, - RELOP = 302, - EQOP = 303, - MULOP = 304, - ADDOP = 305, - DOLSHARP = 306, - DO = 307, - HASHBRACK = 308, - NOAMP = 309, - LOCAL = 310, - MY = 311, - REQUIRE = 312, - COLONATTR = 313, - FORMLBRACK = 314, - FORMRBRACK = 315, - PREC_LOW = 316, - DOROP = 317, - OROP = 318, - ANDOP = 319, - NOTOP = 320, - ASSIGNOP = 321, - DORDOR = 322, - OROR = 323, - ANDAND = 324, - BITOROP = 325, - BITANDOP = 326, - SHIFTOP = 327, - MATCHOP = 328, - REFGEN = 329, - UMINUS = 330, - POWOP = 331, - POSTJOIN = 332, - POSTDEC = 333, - POSTINC = 334, - PREDEC = 335, - PREINC = 336, - ARROW = 337 - }; + enum yytokentype + { + GRAMPROG = 258, + GRAMEXPR = 259, + GRAMBLOCK = 260, + GRAMBARESTMT = 261, + GRAMFULLSTMT = 262, + GRAMSTMTSEQ = 263, + WORD = 264, + METHOD = 265, + FUNCMETH = 266, + THING = 267, + PMFUNC = 268, + PRIVATEREF = 269, + QWLIST = 270, + FUNC0OP = 271, + FUNC0SUB = 272, + UNIOPSUB = 273, + LSTOPSUB = 274, + PLUGEXPR = 275, + PLUGSTMT = 276, + LABEL = 277, + FORMAT = 278, + SUB = 279, + ANONSUB = 280, + PACKAGE = 281, + USE = 282, + WHILE = 283, + UNTIL = 284, + IF = 285, + UNLESS = 286, + ELSE = 287, + ELSIF = 288, + CONTINUE = 289, + FOR = 290, + GIVEN = 291, + WHEN = 292, + DEFAULT = 293, + LOOPEX = 294, + DOTDOT = 295, + YADAYADA = 296, + FUNC0 = 297, + FUNC1 = 298, + FUNC = 299, + UNIOP = 300, + LSTOP = 301, + RELOP = 302, + EQOP = 303, + MULOP = 304, + ADDOP = 305, + DOLSHARP = 306, + DO = 307, + HASHBRACK = 308, + NOAMP = 309, + LOCAL = 310, + MY = 311, + REQUIRE = 312, + COLONATTR = 313, + FORMLBRACK = 314, + FORMRBRACK = 315, + PREC_LOW = 316, + OROP = 317, + DOROP = 318, + ANDOP = 319, + NOTOP = 320, + ASSIGNOP = 321, + OROR = 322, + DORDOR = 323, + ANDAND = 324, + BITOROP = 325, + BITANDOP = 326, + SHIFTOP = 327, + MATCHOP = 328, + UMINUS = 329, + REFGEN = 330, + POWOP = 331, + PREINC = 332, + PREDEC = 333, + POSTINC = 334, + POSTDEC = 335, + POSTJOIN = 336, + ARROW = 337 + }; #endif -/* Tokens. */ -#define GRAMPROG 258 -#define GRAMEXPR 259 -#define GRAMBLOCK 260 -#define GRAMBARESTMT 261 -#define GRAMFULLSTMT 262 -#define GRAMSTMTSEQ 263 -#define WORD 264 -#define METHOD 265 -#define FUNCMETH 266 -#define THING 267 -#define PMFUNC 268 -#define PRIVATEREF 269 -#define QWLIST 270 -#define FUNC0OP 271 -#define FUNC0SUB 272 -#define UNIOPSUB 273 -#define LSTOPSUB 274 -#define PLUGEXPR 275 -#define PLUGSTMT 276 -#define LABEL 277 -#define FORMAT 278 -#define SUB 279 -#define ANONSUB 280 -#define PACKAGE 281 -#define USE 282 -#define WHILE 283 -#define UNTIL 284 -#define IF 285 -#define UNLESS 286 -#define ELSE 287 -#define ELSIF 288 -#define CONTINUE 289 -#define FOR 290 -#define GIVEN 291 -#define WHEN 292 -#define DEFAULT 293 -#define LOOPEX 294 -#define DOTDOT 295 -#define YADAYADA 296 -#define FUNC0 297 -#define FUNC1 298 -#define FUNC 299 -#define UNIOP 300 -#define LSTOP 301 -#define RELOP 302 -#define EQOP 303 -#define MULOP 304 -#define ADDOP 305 -#define DOLSHARP 306 -#define DO 307 -#define HASHBRACK 308 -#define NOAMP 309 -#define LOCAL 310 -#define MY 311 -#define REQUIRE 312 -#define COLONATTR 313 -#define FORMLBRACK 314 -#define FORMRBRACK 315 -#define PREC_LOW 316 -#define DOROP 317 -#define OROP 318 -#define ANDOP 319 -#define NOTOP 320 -#define ASSIGNOP 321 -#define DORDOR 322 -#define OROR 323 -#define ANDAND 324 -#define BITOROP 325 -#define BITANDOP 326 -#define SHIFTOP 327 -#define MATCHOP 328 -#define REFGEN 329 -#define UMINUS 330 -#define POWOP 331 -#define POSTJOIN 332 -#define POSTDEC 333 -#define POSTINC 334 -#define PREDEC 335 -#define PREINC 336 -#define ARROW 337 - - +/* Value type. */ #ifdef PERL_IN_TOKE_C static bool S_is_opval_token(int type) { @@ -243,9 +160,9 @@ S_is_opval_token(int type) { #endif /* PERL_IN_TOKE_C */ #endif /* PERL_CORE */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE + +union YYSTYPE { -/* Line 2058 of yacc.c */ I32 ival; /* __DEFAULT__ (marker for regen_perly.pl; must always be 1st union member) */ @@ -253,31 +170,19 @@ typedef union YYSTYPE OP *opval; GV *gvval; +}; -/* Line 2058 of yacc.c */ -} YYSTYPE; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 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: - * 703ebd267cf8ca45f9dee9bc0f4b21511117a0c1dca1c8bc9438ce91950217ae perly.y + * 4fd37fdbff6285ba6e9096c2229255ecc6264d2f26835e535cf1c38f387ceae6 perly.y * a4923588f219644801577c514014847e1e5240f49413fa3b89d3306fa4874d07 regen_perly.pl * ex: set ro: */ diff --git a/perly.tab b/perly.tab index f5a9580..ac88c85 100644 --- a/perly.tab +++ b/perly.tab @@ -1,12 +1,12 @@ /* -*- buffer-read-only: t -*- !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - This file is built by regen_perly.pl from perly.y. + This file is built by ./regen_perly.pl from perly.y. Any changes made here will be lost! */ #define YYFINAL 14 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2913 +#define YYLAST 2896 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 105 @@ -14,17 +14,19 @@ #define YYNNTS 77 /* YYNRULES -- Number of rules. */ #define YYNRULES 252 -/* YYNRULES -- Number of states. */ +/* YYNSTATES -- Number of states. */ #define YYNSTATES 508 -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 337 -#define YYTRANSLATE(YYX) \ +#define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -64,133 +66,7 @@ static const yytype_uint8 yytranslate[] = }; #if YYDEBUG -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in - YYRHS. */ -static const yytype_uint16 yyprhs[] = -{ - 0, 0, 3, 4, 9, 10, 14, 15, 19, 20, - 24, 25, 29, 30, 34, 39, 47, 48, 53, 54, - 55, 58, 59, 62, 64, 66, 69, 72, 74, 79, - 80, 88, 89, 100, 105, 106, 114, 122, 130, 137, - 144, 147, 156, 165, 166, 167, 181, 191, 200, 201, - 213, 223, 231, 234, 235, 244, 247, 249, 252, 253, - 257, 259, 261, 265, 269, 273, 277, 281, 285, 286, - 289, 296, 297, 300, 301, 302, 304, 305, 307, 309, - 311, 313, 315, 316, 317, 318, 319, 321, 323, 324, - 326, 327, 330, 332, 335, 337, 338, 342, 344, 346, - 350, 354, 358, 360, 363, 367, 369, 373, 379, 386, - 390, 394, 400, 403, 408, 409, 415, 417, 419, 425, - 430, 436, 441, 447, 454, 460, 465, 471, 476, 480, - 487, 492, 498, 502, 506, 510, 514, 518, 522, 526, - 530, 534, 538, 542, 546, 550, 554, 557, 560, 563, - 566, 569, 572, 575, 578, 581, 585, 588, 593, 597, - 603, 612, 615, 618, 620, 622, 624, 626, 632, 635, - 637, 640, 644, 646, 649, 651, 653, 655, 657, 659, - 661, 666, 671, 677, 683, 685, 687, 691, 696, 700, - 705, 710, 715, 720, 725, 727, 730, 733, 735, 738, - 741, 743, 746, 748, 751, 753, 757, 759, 763, 765, - 769, 774, 775, 782, 784, 786, 788, 790, 794, 797, - 801, 804, 806, 808, 810, 811, 813, 814, 816, 817, - 820, 822, 824, 826, 828, 830, 832, 835, 838, 841, - 844, 847, 852, 855, 857, 861, 863, 867, 869, 873, - 875, 877, 879 -}; - -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yytype_int16 yyrhs[] = -{ - 106, 0, -1, -1, 3, 107, 115, 118, -1, -1, - 4, 108, 167, -1, -1, 5, 109, 113, -1, -1, - 6, 110, 122, -1, -1, 7, 111, 120, -1, -1, - 8, 112, 118, -1, 9, 115, 118, 10, -1, 18, - 115, 101, 71, 119, 101, 19, -1, -1, 9, 117, - 118, 10, -1, -1, -1, 118, 120, -1, -1, 119, - 130, -1, 122, -1, 121, -1, 33, 122, -1, 33, - 121, -1, 32, -1, 34, 144, 141, 114, -1, -1, - 35, 145, 142, 123, 146, 147, 151, -1, -1, 35, - 145, 142, 124, 115, 149, 147, 9, 118, 10, -1, - 37, 20, 20, 101, -1, -1, 38, 142, 125, 20, - 20, 166, 101, -1, 41, 100, 115, 139, 99, 116, - 133, -1, 42, 100, 115, 139, 99, 116, 133, -1, - 47, 100, 115, 139, 99, 116, -1, 48, 100, 115, - 139, 99, 116, -1, 49, 113, -1, 39, 100, 115, - 137, 99, 135, 116, 134, -1, 40, 100, 115, 138, - 99, 135, 116, 134, -1, -1, -1, 46, 100, 115, - 140, 101, 126, 137, 101, 127, 135, 140, 99, 116, - -1, 46, 67, 115, 169, 100, 139, 99, 116, 134, - -1, 46, 173, 100, 115, 139, 99, 116, 134, -1, - -1, 46, 90, 67, 115, 170, 128, 100, 139, 99, - 116, 134, -1, 46, 90, 171, 100, 115, 139, 99, - 116, 134, -1, 46, 100, 115, 139, 99, 116, 134, - -1, 113, 134, -1, -1, 37, 20, 20, 9, 115, - 129, 118, 10, -1, 132, 101, -1, 101, -1, 23, - 131, -1, -1, 70, 118, 71, -1, 1, -1, 152, - -1, 152, 41, 152, -1, 152, 42, 152, -1, 152, - 39, 152, -1, 152, 40, 138, -1, 152, 46, 152, - -1, 152, 48, 152, -1, -1, 43, 116, -1, 44, - 100, 139, 99, 116, 133, -1, -1, 45, 113, -1, - -1, -1, 132, -1, -1, 152, -1, 152, -1, 152, - -1, 136, -1, 20, -1, -1, -1, -1, -1, 20, - -1, 25, -1, -1, 23, -1, -1, 69, 23, -1, - 69, -1, 69, 23, -1, 69, -1, -1, 100, 150, - 99, -1, 113, -1, 101, -1, 152, 75, 152, -1, - 152, 74, 152, -1, 152, 73, 152, -1, 153, -1, - 153, 77, -1, 153, 77, 162, -1, 162, -1, 57, - 181, 153, -1, 55, 100, 181, 152, 99, -1, 162, - 98, 156, 100, 167, 99, -1, 162, 98, 156, -1, - 21, 181, 166, -1, 22, 181, 100, 167, 99, -1, - 57, 166, -1, 55, 100, 167, 99, -1, -1, 30, - 143, 113, 155, 166, -1, 21, -1, 173, -1, 180, - 9, 152, 101, 10, -1, 173, 11, 152, 12, -1, - 162, 98, 11, 152, 12, -1, 157, 11, 152, 12, - -1, 173, 9, 152, 101, 10, -1, 162, 98, 9, - 152, 101, 10, -1, 157, 9, 152, 101, 10, -1, - 162, 98, 100, 99, -1, 162, 98, 100, 152, 99, - -1, 157, 100, 152, 99, -1, 157, 100, 99, -1, - 100, 152, 99, 11, 152, 12, -1, 26, 11, 152, - 12, -1, 100, 99, 11, 152, 12, -1, 162, 78, - 162, -1, 162, 92, 162, -1, 162, 60, 162, -1, - 162, 61, 162, -1, 162, 86, 162, -1, 162, 58, - 162, -1, 162, 59, 162, -1, 162, 85, 162, -1, - 162, 84, 162, -1, 162, 51, 162, -1, 162, 83, - 162, -1, 162, 82, 162, -1, 162, 81, 162, -1, - 162, 87, 162, -1, 13, 162, -1, 14, 162, -1, - 88, 162, -1, 89, 162, -1, 162, 95, -1, 162, - 94, -1, 162, 93, -1, 97, 162, -1, 96, 162, - -1, 11, 152, 12, -1, 11, 12, -1, 64, 152, - 101, 10, -1, 64, 101, 10, -1, 36, 143, 146, - 147, 113, -1, 36, 143, 115, 149, 147, 9, 118, - 10, -1, 63, 162, -1, 63, 113, -1, 158, -1, - 159, -1, 160, -1, 161, -1, 162, 79, 162, 80, - 162, -1, 90, 162, -1, 164, -1, 66, 162, -1, - 100, 152, 99, -1, 26, -1, 100, 99, -1, 173, - -1, 177, -1, 175, -1, 174, -1, 176, -1, 157, - -1, 178, 11, 152, 12, -1, 179, 11, 152, 12, - -1, 178, 9, 152, 101, 10, -1, 179, 9, 152, - 101, 10, -1, 23, -1, 172, -1, 172, 100, 99, - -1, 172, 100, 152, 99, -1, 65, 145, 166, -1, - 162, 98, 102, 103, -1, 162, 98, 15, 103, -1, - 162, 98, 16, 103, -1, 162, 98, 17, 103, -1, - 162, 98, 103, 103, -1, 50, -1, 50, 162, -1, - 76, 153, -1, 56, -1, 56, 113, -1, 56, 162, - -1, 68, -1, 68, 162, -1, 29, -1, 29, 162, - -1, 53, -1, 53, 100, 99, -1, 27, -1, 27, - 100, 99, -1, 28, -1, 54, 100, 99, -1, 54, - 100, 152, 99, -1, -1, 24, 163, 100, 153, 168, - 99, -1, 20, -1, 154, -1, 52, -1, 31, -1, - 67, 165, 148, -1, 67, 165, -1, 100, 152, 99, - -1, 100, 99, -1, 173, -1, 175, -1, 174, -1, - -1, 153, -1, -1, 152, -1, -1, 104, 152, -1, - 173, -1, 173, -1, 174, -1, 175, -1, 170, -1, - 172, -1, 17, 181, -1, 102, 181, -1, 15, 181, - -1, 16, 181, -1, 62, 181, -1, 162, 98, 62, - 103, -1, 103, 181, -1, 174, -1, 162, 98, 15, - -1, 175, -1, 162, 98, 16, -1, 177, -1, 162, - 98, 103, -1, 20, -1, 173, -1, 113, -1, 25, - -1 -}; - -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 115, 115, 114, 125, 124, 134, 133, 146, 145, @@ -205,20 +81,20 @@ static const yytype_uint16 yyrline[] = 617, 618, 620, 625, 627, 633, 632, 651, 652, 656, 658, 660, 662, 666, 668, 673, 677, 681, 685, 691, 696, 702, 708, 710, 713, 712, 723, 724, 728, 732, - 735, 740, 745, 748, 752, 756, 759, 764, 768, 771, - 773, 775, 780, 782, 784, 789, 791, 793, 795, 797, - 799, 801, 803, 805, 807, 809, 814, 816, 819, 821, - 823, 826, 829, 840, 843, 850, 852, 854, 856, 858, - 861, 875, 877, 881, 882, 883, 884, 885, 887, 889, - 891, 893, 895, 897, 899, 901, 903, 905, 907, 909, - 911, 921, 931, 941, 951, 953, 955, 958, 963, 967, - 969, 971, 973, 976, 978, 981, 983, 985, 987, 989, - 991, 993, 995, 997, 1000, 1002, 1004, 1006, 1008, 1010, - 1014, 1017, 1016, 1029, 1030, 1031, 1036, 1040, 1042, 1047, - 1049, 1052, 1054, 1056, 1061, 1063, 1068, 1069, 1074, 1075, - 1081, 1085, 1086, 1087, 1090, 1091, 1094, 1098, 1102, 1108, - 1114, 1116, 1120, 1124, 1125, 1129, 1130, 1134, 1135, 1140, - 1142, 1144, 1147 + 735, 740, 745, 748, 752, 756, 762, 770, 777, 783, + 785, 787, 792, 794, 796, 801, 803, 805, 807, 809, + 811, 813, 815, 817, 819, 821, 826, 828, 831, 833, + 835, 838, 841, 852, 855, 862, 864, 866, 868, 870, + 873, 887, 889, 893, 894, 895, 896, 897, 899, 901, + 903, 905, 907, 909, 911, 913, 915, 917, 919, 921, + 923, 933, 943, 953, 963, 965, 967, 970, 975, 979, + 981, 983, 985, 988, 990, 993, 995, 997, 999, 1001, + 1003, 1005, 1007, 1009, 1012, 1014, 1016, 1018, 1020, 1022, + 1026, 1029, 1028, 1041, 1042, 1043, 1048, 1052, 1054, 1059, + 1061, 1064, 1066, 1068, 1073, 1075, 1080, 1081, 1086, 1087, + 1093, 1097, 1098, 1099, 1102, 1103, 1106, 1110, 1114, 1120, + 1126, 1128, 1132, 1136, 1137, 1141, 1142, 1146, 1147, 1152, + 1154, 1156, 1159 }; #endif @@ -237,10 +113,10 @@ static const char *const yytname[] = "LOOPEX", "DOTDOT", "YADAYADA", "FUNC0", "FUNC1", "FUNC", "UNIOP", "LSTOP", "RELOP", "EQOP", "MULOP", "ADDOP", "DOLSHARP", "DO", "HASHBRACK", "NOAMP", "LOCAL", "MY", "REQUIRE", "COLONATTR", - "FORMLBRACK", "FORMRBRACK", "PREC_LOW", "DOROP", "OROP", "ANDOP", - "NOTOP", "','", "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR", "ANDAND", - "BITOROP", "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "REFGEN", - "UMINUS", "POWOP", "POSTJOIN", "POSTDEC", "POSTINC", "PREDEC", "PREINC", + "FORMLBRACK", "FORMRBRACK", "PREC_LOW", "OROP", "DOROP", "ANDOP", + "NOTOP", "','", "ASSIGNOP", "'?'", "':'", "OROR", "DORDOR", "ANDAND", + "BITOROP", "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "UMINUS", + "REFGEN", "POWOP", "PREINC", "PREDEC", "POSTINC", "POSTDEC", "POSTJOIN", "ARROW", "')'", "'('", "';'", "'$'", "'*'", "'/'", "$accept", "grammar", "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "block", "formblock", "remember", "mblock", "mremember", "stmtseq", "formstmtseq", "fullstmt", @@ -253,13 +129,13 @@ static const char *const yytname[] = "anonymous", "termdo", "term", "@16", "myattrterm", "myterm", "optlistexpr", "optexpr", "optrepl", "my_scalar", "my_var", "refgen_topic", "amper", "scalar", "ary", "hsh", "arylen", "star", - "sliceme", "kvslice", "gelem", "indirob", YY_NULL + "sliceme", "kvslice", "gelem", "indirob", YY_NULLPTR }; #endif # ifdef YYPRINT -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to - token YYLEX-NUM. */ +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 123, @@ -276,71 +152,76 @@ static const yytype_uint16 yytoknum[] = }; # endif -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint8 yyr1[] = -{ - 0, 105, 107, 106, 108, 106, 109, 106, 110, 106, - 111, 106, 112, 106, 113, 114, 115, 116, 117, 118, - 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, - 122, 124, 122, 122, 125, 122, 122, 122, 122, 122, - 122, 122, 122, 126, 127, 122, 122, 122, 128, 122, - 122, 122, 122, 129, 122, 122, 122, 130, 131, 131, - 132, 132, 132, 132, 132, 132, 132, 132, 133, 133, - 133, 134, 134, 135, 136, 136, 137, 137, 138, 139, - 140, 141, 141, 142, 143, 144, 145, 145, 146, 146, - 147, 147, 147, 148, 148, 150, 149, 151, 151, 152, - 152, 152, 152, 153, 153, 153, 154, 154, 154, 154, - 154, 154, 154, 154, 155, 154, 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, 158, 158, 158, 158, 158, 159, 159, 159, 159, - 159, 159, 159, 159, 159, 160, 160, 160, 160, 160, - 160, 161, 161, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, - 162, 163, 162, 162, 162, 162, 162, 164, 164, 165, - 165, 165, 165, 165, 166, 166, 167, 167, 168, 168, - 169, 170, 170, 170, 171, 171, 172, 173, 174, 175, - 176, 176, 177, 178, 178, 179, 179, 180, 180, 181, - 181, 181, 181 -}; +#define YYPACT_NINF -400 -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-400))) + +#define YYTABLE_NINF -248 + +#define yytable_value_is_error(Yytable_value) \ + (!!((Yytable_value) == (-248))) + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = { - 0, 2, 0, 4, 0, 3, 0, 3, 0, 3, - 0, 3, 0, 3, 4, 7, 0, 4, 0, 0, - 2, 0, 2, 1, 1, 2, 2, 1, 4, 0, - 7, 0, 10, 4, 0, 7, 7, 7, 6, 6, - 2, 8, 8, 0, 0, 13, 9, 8, 0, 11, - 9, 7, 2, 0, 8, 2, 1, 2, 0, 3, - 1, 1, 3, 3, 3, 3, 3, 3, 0, 2, - 6, 0, 2, 0, 0, 1, 0, 1, 1, 1, - 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, - 0, 2, 1, 2, 1, 0, 3, 1, 1, 3, - 3, 3, 1, 2, 3, 1, 3, 5, 6, 3, - 3, 5, 2, 4, 0, 5, 1, 1, 5, 4, - 5, 4, 5, 6, 5, 4, 5, 4, 3, 6, - 4, 5, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 2, 4, 3, 5, - 8, 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, 6, 1, 1, 1, 1, 3, 2, 3, - 2, 1, 1, 1, 0, 1, 0, 1, 0, 2, - 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 4, 2, 1, 3, 1, 3, 1, 3, 1, - 1, 1, 1 + 365, -400, -400, -400, -400, -400, -400, 73, -400, 2688, + 78, 1473, 1378, -400, -400, -400, 1944, 2688, 2688, 49, + 49, 49, -400, 49, 49, -400, -400, 68, -8, -400, + 2688, -400, -400, -400, 2688, -400, -3, 8, 11, 1851, + 1756, 49, 1851, 2037, 22, 2688, 1, 2688, 2688, 2688, + 2688, 2688, 2688, 2688, 2130, 49, 49, -19, 14, -400, + 9, -400, -400, -400, -400, 2756, -400, -400, 24, 67, + 72, 106, -400, 105, 118, 165, 109, -400, -400, -400, + -400, -400, 22, 111, -400, 39, 50, 62, 65, -14, + 69, 77, 78, -400, 87, -400, 48, 506, 1378, -400, + -400, -400, 618, 713, -400, 70, 398, 398, -400, -400, + -400, -400, -400, -400, -400, 2688, 95, 96, 2688, 102, + 368, 78, 16, 2756, 107, 2223, 1756, -400, 368, 516, + 14, -400, 440, 2688, -400, -400, 368, 195, 93, -400, + -400, 2688, 368, 2316, 150, -400, -400, -400, 368, 14, + 398, 398, 398, 414, 414, 210, 152, -400, -400, 2688, + 2688, 2688, 2688, 2688, 2688, 2409, 2688, 2688, 2688, 2688, + 2688, 2688, 2688, 2688, 2688, 2688, 2688, 2688, 2688, 2688, + 2688, -400, -400, -400, 131, 2502, 2688, 2688, 2688, 2688, + 2688, 2688, 2688, -400, 200, -400, 223, -400, -400, -400, + -400, -400, -400, 55, -400, 146, -400, -400, -400, 78, + -400, -400, 2688, 2688, 2688, 2688, 2688, 2688, -400, -400, + -400, -400, -400, 2688, 2688, 98, -400, -400, -400, 148, + 160, -400, -400, 163, 151, 2688, 14, -400, 239, -400, + -400, 292, 232, -400, 2688, 245, 192, 192, -400, 2756, + 209, 125, -400, 531, 1555, 473, 1927, 349, 203, 2756, + 2714, 1647, 1647, 1741, 1836, 2020, 410, 398, 398, 2688, + 2688, 170, 172, 182, -400, 183, 2595, 32, 184, 168, + -400, -400, 588, 249, 129, 273, 141, 278, 149, 357, + 808, -400, 252, 189, -6, 276, 2688, 2688, 2688, 2688, + 205, -400, -400, 197, -400, -400, -400, -400, 1567, -400, + 2688, 2688, -400, -19, -400, -19, -19, -19, -19, -19, + 217, -29, -400, 2688, -400, 160, 279, 78, -400, -400, + 603, -400, -400, -400, 167, 2688, 298, -400, -400, 2688, + 509, 179, -400, -400, -400, -400, -400, 616, -400, -400, + 2688, -400, 299, -400, 308, -400, 319, -400, 328, -400, + -400, -400, 316, -400, -400, -400, 322, 244, -19, 250, + 257, -19, 258, 262, -400, 21, -400, -400, -400, 259, + 275, 286, 2688, 264, 281, -400, 2688, 284, -400, 287, + 378, -400, -400, -400, -400, 185, -400, 2798, 380, -400, + -400, 289, -400, -400, -400, -400, 291, 160, 148, -400, + 2688, -400, -400, 399, 399, 2688, -400, 2688, 399, -400, + 318, 399, 399, -19, -400, -400, -400, -400, -400, -400, + 344, 6, 160, -400, 320, 399, 399, -400, 18, 18, + 321, 323, 325, 87, 2688, 399, -400, -400, 903, -400, + -400, -400, -400, 424, 998, -400, 87, 87, -400, 399, + 334, -400, -400, 399, 2688, 399, -400, 336, 87, -400, + 3, -400, -400, -400, -400, 1093, -400, 2688, 87, 343, + 87, -400, -400, 383, 438, -400, 1188, -400, 362, -400, + 399, -400, -400, -400, -400, -400, -400, 399, 87, 1661, + 1283, 18, -400, 363, -400, -400, 399, -400 }; -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE doesn't specify something else to do. Zero - means the default is an error. */ + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not 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, 226, @@ -358,18 +239,18 @@ static const yytype_uint8 yydefact[] = 203, 0, 88, 195, 0, 0, 226, 198, 199, 249, 225, 112, 250, 0, 240, 162, 161, 0, 0, 86, 87, 224, 170, 0, 218, 221, 223, 222, 201, 196, - 148, 149, 168, 154, 153, 173, 0, 237, 242, 0, + 148, 149, 168, 153, 154, 173, 0, 237, 242, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 152, 151, 150, 0, 0, 0, 0, 0, 0, + 0, 150, 151, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 82, 83, 0, 34, 16, 16, 16, 16, 16, 0, 16, 0, 16, 16, 40, 0, 52, 55, 0, 0, 0, 0, 0, 0, 26, 25, 20, 155, 110, 226, 0, 0, 207, 114, 89, 0, 90, 205, 209, 0, 0, 0, 106, 158, 0, 188, - 220, 0, 94, 217, 0, 171, 101, 100, 99, 104, + 220, 0, 94, 217, 0, 171, 100, 101, 99, 104, 0, 0, 128, 0, 141, 137, 138, 134, 135, 132, - 0, 144, 143, 142, 140, 139, 136, 145, 133, 0, + 0, 143, 144, 142, 140, 139, 136, 145, 133, 0, 0, 244, 246, 0, 116, 0, 0, 0, 248, 109, 117, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 29, 0, 0, 76, 0, 0, 0, @@ -396,7 +277,20 @@ static const yytype_uint8 yydefact[] = 0, 68, 49, 0, 59, 70, 0, 45 }; -/* YYDEFGOTO[NTERM-NUM]. */ + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -400, -400, -400, -400, -400, -400, -400, -400, 4, -400, + 113, -81, -400, -15, -400, 455, 371, -9, -400, -400, + -400, -400, -400, -400, -400, -400, -400, -307, -399, -30, + -380, -400, 30, 178, -289, -16, -400, 290, 451, -400, + 405, 130, -313, -400, 121, -400, -400, -5, -35, -400, + -400, -400, -400, -400, -400, -400, -400, 227, -400, -400, + -400, -106, -118, -400, -400, 128, -400, 301, 44, -40, + -39, -400, -400, -400, -400, -400, 10 +}; + + /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 7, 8, 9, 10, 11, 12, 13, 94, 361, @@ -409,81 +303,9 @@ static const yytype_int16 yydefgoto[] = 71, 72, 73, 74, 75, 76, 157 }; -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -#define YYPACT_NINF -400 -static const yytype_int16 yypact[] = -{ - 565, -400, -400, -400, -400, -400, -400, 73, -400, 2699, - 69, 1486, 1389, -400, -400, -400, 1955, 2699, 2699, 49, - 49, 49, -400, 49, 49, -400, -400, 76, -8, -400, - 2699, -400, -400, -400, 2699, -400, -3, 8, 11, 1862, - 1767, 49, 1862, 2048, 22, 2699, 1, 2699, 2699, 2699, - 2699, 2699, 2699, 2699, 2141, 49, 49, -19, 14, -400, - 9, -400, -400, -400, -400, 2770, -400, -400, 24, 68, - 72, 106, -400, 105, 118, 165, 109, -400, -400, -400, - -400, -400, 22, 111, -400, 39, 50, 62, 65, -14, - 77, 95, 69, -400, 87, -400, 48, 506, 1389, -400, - -400, -400, 612, 710, -400, 70, 490, 490, -400, -400, - -400, -400, -400, -400, -400, 2699, 96, 101, 2699, 107, - 410, 69, 16, 2770, 120, 2234, 1767, -400, 410, 516, - 14, -400, 440, 2699, -400, -400, 410, 159, 93, -400, - -400, 2699, 410, 2327, 136, -400, -400, -400, 410, 14, - 490, 490, 490, 258, 258, 210, 152, -400, -400, 2699, - 2699, 2699, 2699, 2699, 2699, 2420, 2699, 2699, 2699, 2699, - 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, 2699, - 2699, -400, -400, -400, 131, 2513, 2699, 2699, 2699, 2699, - 2699, 2699, 2699, -400, 200, -400, 223, -400, -400, -400, - -400, -400, -400, 55, -400, 146, -400, -400, -400, 69, - -400, -400, 2699, 2699, 2699, 2699, 2699, 2699, -400, -400, - -400, -400, -400, 2699, 2699, 98, -400, -400, -400, 148, - 160, -400, -400, 163, 150, 2699, 14, -400, 240, -400, - -400, 293, 232, -400, 2699, 245, 192, 192, -400, 2770, - 209, 125, -400, 531, 1567, 2033, 371, 695, 203, 2770, - 2725, 1658, 1658, 1752, 1847, 1940, 278, 490, 490, 2699, - 2699, 170, 172, 182, -400, 183, 2606, 32, 184, 168, - -400, -400, 597, 249, 129, 273, 141, 436, 149, 486, - 807, -400, 252, 189, -6, 279, 2699, 2699, 2699, 2699, - 198, -400, -400, 202, -400, -400, -400, -400, 1579, -400, - 2699, 2699, -400, -19, -400, -19, -19, -19, -19, -19, - 208, -29, -400, 2699, -400, 160, 285, 69, -400, -400, - 617, -400, -400, -400, 167, 2699, 299, -400, -400, 2699, - 582, 179, -400, -400, -400, -400, -400, 630, -400, -400, - 2699, -400, 306, -400, 308, -400, 319, -400, 332, -400, - -400, -400, 320, -400, -400, -400, 329, 259, -19, 263, - 264, -19, 270, 257, -400, 21, -400, -400, -400, 280, - 282, 286, 2699, 281, 287, -400, 2699, 288, -400, 289, - 381, -400, -400, -400, -400, 185, -400, 2815, 398, -400, - -400, 292, -400, -400, -400, -400, 314, 160, 148, -400, - 2699, -400, -400, 408, 408, 2699, -400, 2699, 408, -400, - 321, 408, 408, -19, -400, -400, -400, -400, -400, -400, - 350, 6, 160, -400, 322, 408, 408, -400, 18, 18, - 325, 328, 334, 87, 2699, 408, -400, -400, 904, -400, - -400, -400, -400, 425, 1001, -400, 87, 87, -400, 408, - 336, -400, -400, 408, 2699, 408, -400, 340, 87, -400, - 3, -400, -400, -400, -400, 1098, -400, 2699, 87, 338, - 87, -400, -400, 372, 426, -400, 1195, -400, 345, -400, - 408, -400, -400, -400, -400, -400, -400, 408, 87, 1672, - 1292, 18, -400, 347, -400, -400, 408, -400 -}; - -/* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = -{ - -400, -400, -400, -400, -400, -400, -400, -400, 4, -400, - 113, -81, -400, -15, -400, 435, 355, -9, -400, -400, - -400, -400, -400, -400, -400, -400, -400, -307, -399, -30, - -380, -400, 17, 157, -289, -44, -400, 265, 429, -400, - 385, 112, -313, -400, 67, -400, -400, -5, -35, -400, - -400, -400, -400, -400, -400, -400, -400, 227, -400, -400, - -400, -106, -118, -400, -400, 108, -400, 284, 44, -40, - -39, -400, -400, -400, -400, -400, 10 -}; - -/* 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 -248 + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { 103, 377, 95, 364, 57, 130, 146, 147, 234, 222, @@ -493,8 +315,8 @@ static const yytype_int16 yytable[] = 462, 77, 139, 127, 110, 110, 135, 140, 162, 156, 133, 134, 108, 202, 159, 160, 161, 109, 77, 110, 110, 459, 460, 111, 111, 111, 158, 111, 111, 108, - 19, 20, 21, 14, 109, 386, 203, 186, 77, 187, - 130, -243, 221, -243, 132, 111, 204, 118, 55, 219, + 19, 20, 21, 14, 109, 386, 186, 203, 187, 118, + 130, -243, 221, -243, 132, 111, 204, 77, 55, 219, 145, 162, 119, 420, 431, 365, 208, 124, 236, 111, 111, 143, 505, 55, 484, 320, 130, 450, 125, 165, 322, 126, 499, 225, -247, -245, -16, -245, 192, 453, @@ -502,101 +324,72 @@ static const yytype_int16 yytable[] = 110, 196, 209, 205, 55, 348, 235, 337, 241, 198, 269, 353, 270, 159, 160, 161, 271, 272, 273, 211, 199, 55, 274, 355, 246, 247, 248, 55, 250, 251, - 253, 357, 200, 306, 307, 201, 159, 160, 161, 237, - 132, 159, 160, 161, 190, 479, 191, 206, 290, 394, + 253, 357, 200, 306, 307, 201, 159, 160, 161, 206, + 132, 159, 160, 161, 190, 479, 191, 207, 290, 394, 282, 283, 284, 285, 286, 287, 288, 289, 488, 321, - 193, 399, 377, 275, 238, 207, 223, 427, 159, 160, - 161, 224, 159, 160, 161, 242, 226, 313, 315, 316, - 317, 318, 319, 312, 159, 160, 161, 388, 57, 231, + 193, 399, 377, 275, 238, 223, 224, 427, 159, 160, + 161, 226, 159, 160, 161, 237, 231, 313, 315, 316, + 317, 318, 319, 312, 159, 160, 161, 388, 57, 242, 291, 244, 159, 160, 161, 159, 160, 161, 280, 326, 330, 276, 401, 277, 278, 229, 159, 160, 161, 334, - 159, 160, 161, 294, 106, 107, 309, 305, 324, 329, - 331, 245, 159, 160, 161, 333, 335, 120, 159, 160, + 159, 160, 161, 294, 106, 107, 309, 305, 324, 331, + 329, 245, 159, 160, 161, 333, 335, 120, 159, 160, 161, 123, 328, 169, 340, 341, 128, 161, 350, 136, 360, 347, 142, 342, 148, 343, 150, 151, 152, 153, 154, 110, 159, 160, 161, 344, 345, 349, 130, -31, - 179, 368, 315, 371, 371, 180, 181, 182, 183, 366, - 55, 184, 376, 381, 434, 371, 371, 385, 391, 396, - 336, 296, 297, 298, 299, 300, 402, 308, 403, 310, + 179, 368, 315, 371, 371, 180, 366, 376, 181, 182, + 183, 184, 391, 381, 434, 371, 371, 55, 396, 402, + 336, 296, 297, 298, 299, 300, 385, 308, 403, 310, 311, 111, 159, 160, 161, 212, 213, 214, 215, 404, - 395, 392, 216, 439, 217, 306, 307, 443, 169, 170, - 446, 447, 405, 228, 374, 57, 159, 160, 161, 410, - 352, -248, -248, -248, 456, 457, 184, 415, 411, 159, - 160, 161, 412, 413, 468, 179, 159, 160, 161, 414, - 180, 181, 182, 183, 354, 130, 184, 371, 476, 418, - 421, 423, 478, 419, 480, -79, 422, 424, 425, 249, - 426, 429, 332, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 428, 498, - 371, 448, 371, 466, 375, 430, 501, 437, 454, 305, - 445, 449, 382, 455, 463, 507, 473, 474, 464, 167, - -248, 169, 170, 465, 471, 451, 477, 490, 482, 368, - -174, 481, 493, 475, 497, 495, 506, 99, 489, 186, - 491, 187, -174, 218, 369, 503, 486, 178, 179, 371, - 293, 467, 122, 180, 181, 182, 183, 195, 502, 184, - 169, 170, 371, 406, 407, 432, 408, 409, 500, -174, - -174, -174, -174, 416, 0, 0, -174, 304, -174, 417, - 0, -174, 0, 0, 0, 0, 178, 179, -174, -174, - -174, -174, 180, 181, 182, 183, 0, 0, 184, 159, - 160, 161, 0, -174, -174, -174, -213, -174, -174, -174, - -174, -174, -174, -174, -174, -174, -174, -174, -213, 0, - 0, 0, -174, -174, -174, -174, 0, 356, -174, -174, + 395, 392, 216, 439, 217, 306, 307, 443, 405, 228, + 446, 447, 410, 411, 374, 57, 159, 160, 161, 412, + 352, 159, 160, 161, 456, 457, 413, 414, 418, 159, + 160, 161, 415, 421, 468, 159, 160, 161, 1, 2, + 3, 4, 5, 6, 354, 130, 419, 371, 476, 356, + 422, 423, 478, 424, 480, -79, 425, 426, 429, 249, + 428, 332, 430, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 437, 498, + 371, 448, 371, 466, 375, 449, 501, 445, 454, 305, + 463, 455, 382, 464, 465, 507, 473, 474, 169, 170, + 159, 160, 161, 471, 477, 451, 179, 481, 482, 368, + -174, 180, 490, 475, 181, 182, 183, 184, 489, 186, + 491, 187, -174, 493, 178, 179, 486, 495, 358, 371, + 180, 497, 506, 181, 182, 183, 184, 99, 502, 218, + 169, 170, 371, 406, 467, 369, 408, 409, 500, -174, + -174, -174, -174, 503, 122, 293, -174, 195, -174, 417, + 180, -174, 407, 181, 182, 183, 184, 179, -174, -174, + -174, -174, 180, 416, 304, 181, 182, 183, 184, -248, + -248, -248, 184, -174, -174, -174, -213, -174, -174, -174, + -174, -174, -174, -174, -174, -174, -174, -174, -213, 432, + 0, -248, -174, 169, 170, -174, -174, -174, -174, -174, 0, -174, 0, 0, -174, 212, 213, 214, 215, 0, - 0, 0, 216, 0, 217, -213, -213, -213, -213, 159, - 160, 161, -213, 0, -213, 0, 397, -213, 1, 2, - 3, 4, 5, 6, -213, -213, -213, -213, 0, 159, - 160, 161, 180, 181, 182, 183, 0, 358, 184, -213, + 0, 0, 216, 0, 217, -213, -213, -213, -213, 178, + 179, 0, -213, 0, -213, 180, 397, -213, 181, 182, + 183, 184, 0, 0, -213, -213, -213, -213, 0, 159, + 160, 161, 159, 160, 161, 0, 0, 0, 0, -213, -213, -213, 0, -213, -213, -213, -213, -213, -213, -213, - -213, -213, -213, -213, 159, 160, 161, 0, -213, -213, - -213, -213, -13, 79, -213, -213, 0, -213, 0, 0, - -213, 77, 0, 16, 0, 17, 18, 19, 20, 21, - 338, 0, 22, 23, 24, 25, 26, 0, 27, 28, - 29, 30, 31, 32, 80, 98, 81, 82, 33, 83, - 84, 85, 86, 87, 88, 159, 160, 161, 89, 90, - 91, 92, 34, 0, 35, 36, 37, 38, 39, 40, - 159, 160, 161, 0, 41, 42, 43, 44, 45, 46, - 47, 0, 0, 398, 0, 0, 0, 0, 48, 0, - 159, 160, 161, 0, 0, 0, 351, 0, 0, 0, - 49, 50, 51, 159, 160, 161, 0, 0, 52, 53, - -3, 79, 54, 93, 55, 56, 393, 0, 0, 77, - 0, 16, 0, 17, 18, 19, 20, 21, 0, 400, - 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, - 31, 32, 80, 98, 81, 82, 33, 83, 84, 85, - 86, 87, 88, 0, 0, 0, 89, 90, 91, 92, - 34, 0, 35, 36, 37, 38, 39, 40, 0, 0, - 0, 0, 41, 42, 43, 44, 45, 46, 47, 0, - 0, 0, 179, 0, 0, 0, 48, 180, 181, 182, - 183, 0, 0, 184, 0, 0, 0, 0, 49, 50, - 51, 0, 0, 0, 0, 0, 52, 53, 79, 0, - 54, 93, 55, 56, 0, 0, 77, 359, 16, 0, - 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, - 25, 26, 0, 27, 28, 29, 30, 31, 32, 80, - 98, 81, 82, 33, 83, 84, 85, 86, 87, 88, - 0, 0, 0, 89, 90, 91, 92, 34, 0, 35, - 36, 37, 38, 39, 40, 0, 0, 0, 0, 41, - 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, - 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 49, 50, 51, 0, 0, - 0, 0, 0, 52, 53, 79, 0, 54, 93, 55, - 56, 0, 0, 77, 469, 16, 0, 17, 18, 19, - 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, - 27, 28, 29, 30, 31, 32, 80, 98, 81, 82, - 33, 83, 84, 85, 86, 87, 88, 0, 0, 0, - 89, 90, 91, 92, 34, 0, 35, 36, 37, 38, - 39, 40, 0, 0, 0, 0, 41, 42, 43, 44, - 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 49, 50, 51, 0, 0, 0, 0, 0, - 52, 53, 79, 0, 54, 93, 55, 56, 0, 0, - 77, 472, 16, 0, 17, 18, 19, 20, 21, 0, - 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, - 30, 31, 32, 80, 98, 81, 82, 33, 83, 84, - 85, 86, 87, 88, 0, 0, 0, 89, 90, 91, - 92, 34, 0, 35, 36, 37, 38, 39, 40, 0, - 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, - 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, - 50, 51, 0, 0, 0, 0, 0, 52, 53, 79, - 0, 54, 93, 55, 56, 0, 0, 77, 487, 16, + -213, -213, -213, -213, 159, 160, 161, 0, -213, 0, + 398, -213, -213, -213, -213, -213, 0, -213, -13, 79, + -213, 0, 0, 0, 0, 0, 0, 77, 0, 16, + 338, 17, 18, 19, 20, 21, 0, 0, 22, 23, + 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, + 80, 98, 81, 82, 33, 83, 84, 85, 86, 87, + 88, 159, 160, 161, 89, 90, 91, 92, 34, 0, + 35, 36, 37, 38, 39, 40, 159, 160, 161, 0, + 41, 42, 43, 44, 45, 46, 47, 351, 0, 159, + 160, 161, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 0, 393, 0, 0, 0, 49, 50, 0, 51, + 0, 52, 53, -3, 79, 400, 0, 0, 54, 93, + 55, 56, 77, 0, 16, 0, 17, 18, 19, 20, + 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, + 28, 29, 30, 31, 32, 80, 98, 81, 82, 33, + 83, 84, 85, 86, 87, 88, 0, 0, 0, 89, + 90, 91, 92, 34, 0, 35, 36, 37, 38, 39, + 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, + 46, 47, 0, 0, 0, 0, 0, 0, 0, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 50, 0, 51, 0, 52, 53, 0, 79, + 0, 0, 0, 54, 93, 55, 56, 77, 359, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 80, 98, 81, 82, 33, 83, 84, 85, 86, 87, @@ -604,131 +397,131 @@ static const yytype_int16 yytable[] = 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 50, 51, 0, - 0, 0, 0, 0, 52, 53, 79, 0, 54, 93, - 55, 56, 0, 0, 77, 496, 16, 0, 17, 18, - 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, - 0, 27, 28, 29, 30, 31, 32, 80, 98, 81, - 82, 33, 83, 84, 85, 86, 87, 88, 0, 0, - 0, 89, 90, 91, 92, 34, 0, 35, 36, 37, - 38, 39, 40, 0, 0, 0, 0, 41, 42, 43, - 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, - 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 49, 50, 51, 0, 0, 0, 0, - 0, 52, 53, 79, 0, 54, 93, 55, 56, 0, - 0, 77, 0, 16, 0, 17, 18, 19, 20, 21, - 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, - 29, 30, 31, 32, 80, 98, 81, 82, 33, 83, - 84, 85, 86, 87, 88, 0, 0, 0, 89, 90, - 91, 92, 34, 0, 35, 36, 37, 38, 39, 40, - 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, - 47, 0, 0, 504, 0, 0, 0, 0, 48, 0, + 0, 0, 0, 0, 0, 0, 49, 50, 0, 51, + 0, 52, 53, 0, 79, 0, 0, 0, 54, 93, + 55, 56, 77, 469, 16, 0, 17, 18, 19, 20, + 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, + 28, 29, 30, 31, 32, 80, 98, 81, 82, 33, + 83, 84, 85, 86, 87, 88, 0, 0, 0, 89, + 90, 91, 92, 34, 0, 35, 36, 37, 38, 39, + 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, + 46, 47, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 49, 50, 51, 0, 0, 0, 0, 0, 52, 53, - 79, 0, 54, 93, 55, 56, 0, 0, 77, 0, - 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, - 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, - 32, 80, 98, 81, 82, 33, 83, 84, 85, 86, - 87, 88, 0, 0, 0, 89, 90, 91, 92, 34, - 0, 35, 36, 37, 38, 39, 40, 0, 0, 0, - 0, 41, 42, 43, 44, 45, 46, 47, 0, 0, - 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 49, 50, 51, - 0, 0, 0, 0, 0, 52, 53, 79, 0, 54, - 93, 55, 56, 0, 0, 77, 0, 16, 0, 17, - 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, - 26, 0, 27, 28, 29, 30, 31, 32, 80, 0, - 81, 82, 33, 83, 84, 85, 86, 87, 88, 0, - 0, 0, 89, 90, 91, 92, 34, 0, 35, 36, - 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, - 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, - 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 50, 51, 0, 0, 0, - 79, 0, 52, 53, 0, 0, 54, 93, 55, 56, - 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, - 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, - 32, 0, 0, 0, 0, 33, 0, 0, -248, 0, - 0, 0, 0, 0, 0, 167, 168, 169, 170, 34, - 0, 35, 36, 37, 38, 39, 40, 0, 0, 0, - 0, 41, 42, 43, 44, 45, 46, 47, 173, 174, - 175, 176, 177, 178, 179, 48, 0, 0, 0, 180, - 181, 182, 183, 0, 0, 184, 0, 49, 50, 51, - 0, 0, 0, 79, 0, 52, 53, 0, 0, 54, - -74, 55, 56, 16, 0, 17, 18, 19, 20, 21, - 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, - 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, - 0, 0, 0, 0, 0, 0, 167, 168, 169, 170, - 0, 0, 34, 0, 35, 36, 37, 38, 39, 40, - 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, - 47, 175, 176, 177, 178, 179, 0, 0, 48, 0, - 180, 181, 182, 183, 0, 0, 184, 0, 0, 0, - 49, 50, 51, 0, 0, 0, 0, 0, 52, 53, - 0, -74, 54, 0, 55, 56, 77, 0, 16, 0, - 17, 18, 19, 20, 21, 0, 0, 129, 23, 24, - 25, 26, 109, 27, 28, 29, 30, 31, 32, 0, - 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, - 167, 168, 169, 170, 0, 0, 0, 34, 0, 35, - 36, 37, 38, 39, 40, 0, 0, 0, 0, 41, - 42, 43, 44, 45, 46, 47, 176, 177, 178, 179, - 0, 0, 0, 48, 180, 181, 182, 183, 0, 0, - 184, 0, 0, 0, 0, 49, 50, 51, 0, 0, - 0, 0, 0, 52, 53, 0, 0, 54, 0, 55, - 56, 77, 0, 16, 0, 17, 18, 19, 20, 21, - 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, - 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, - 0, 0, 0, 0, 0, 167, 168, 169, 170, 0, - 0, 0, 34, 0, 35, 36, 37, 38, 39, 40, - 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, - 47, 0, 177, 178, 179, 0, 0, 0, 48, 180, - 181, 182, 183, 0, 0, 184, 0, 0, 0, 0, - 49, 50, 51, 0, 0, 0, 0, 0, 52, 53, - 0, 0, 54, 0, 55, 56, 16, 104, 17, 18, - 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, - 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, - 0, 33, 0, 0, 0, 0, 0, 0, 167, 168, - 169, 170, 0, 0, 0, 34, 0, 35, 36, 37, - 38, 39, 40, 0, 0, 0, 0, 41, 42, 43, - 44, 45, 46, 47, 0, 0, 178, 179, 0, 0, - 0, 48, 180, 181, 182, 183, 0, 0, 184, 0, - 0, 0, 0, 49, 50, 51, 0, 0, 0, 0, - 0, 52, 53, 0, 0, 54, 0, 55, 56, 16, + 0, 49, 50, 0, 51, 0, 52, 53, 0, 79, + 0, 0, 0, 54, 93, 55, 56, 77, 472, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, - 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, - 0, -248, 0, 169, 170, 0, 0, 0, 34, 0, + 80, 98, 81, 82, 33, 83, 84, 85, 86, 87, + 88, 0, 0, 0, 89, 90, 91, 92, 34, 0, + 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, + 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, + 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 49, 50, 0, 51, + 0, 52, 53, 0, 79, 0, 0, 0, 54, 93, + 55, 56, 77, 487, 16, 0, 17, 18, 19, 20, + 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, + 28, 29, 30, 31, 32, 80, 98, 81, 82, 33, + 83, 84, 85, 86, 87, 88, 0, 0, 0, 89, + 90, 91, 92, 34, 0, 35, 36, 37, 38, 39, + 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, + 46, 47, 0, 0, 0, 0, 0, 0, 0, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 50, 0, 51, 0, 52, 53, 0, 79, + 0, 0, 0, 54, 93, 55, 56, 77, 496, 16, + 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, + 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, + 80, 98, 81, 82, 33, 83, 84, 85, 86, 87, + 88, 0, 0, 0, 89, 90, 91, 92, 34, 0, 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, - 41, 42, 43, 44, 45, 46, 47, 0, 0, 178, - 179, 0, 0, 0, 48, 180, 181, 182, 183, 0, - 0, 184, 0, 0, 0, 0, 49, 50, 51, 0, - 0, 0, 0, 0, 52, 53, 0, 0, 54, 137, - 55, 56, 16, 0, 17, 18, 19, 20, 21, 0, + 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, + 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 49, 50, 0, 51, + 0, 52, 53, 0, 79, 0, 0, 0, 54, 93, + 55, 56, 77, 0, 16, 0, 17, 18, 19, 20, + 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, + 28, 29, 30, 31, 32, 80, 98, 81, 82, 33, + 83, 84, 85, 86, 87, 88, 0, 0, 0, 89, + 90, 91, 92, 34, 0, 35, 36, 37, 38, 39, + 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, + 46, 47, 0, 0, 504, 0, 0, 0, 0, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 50, 0, 51, 0, 52, 53, 0, 79, + 0, 0, 0, 54, 93, 55, 56, 77, 0, 16, + 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, + 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, + 80, 98, 81, 82, 33, 83, 84, 85, 86, 87, + 88, 0, 0, 0, 89, 90, 91, 92, 34, 0, + 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, + 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, + 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 49, 50, 0, 51, + 0, 52, 53, 0, 79, 0, 0, 0, 54, 93, + 55, 56, 77, 0, 16, 0, 17, 18, 19, 20, + 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, + 28, 29, 30, 31, 32, 80, 0, 81, 82, 33, + 83, 84, 85, 86, 87, 88, 0, 0, 0, 89, + 90, 91, 92, 34, 0, 35, 36, 37, 38, 39, + 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, + 46, 47, 0, 0, 0, 0, 0, 0, 0, 48, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 49, 50, 0, 51, 0, 52, 53, 79, 0, + 0, 0, 0, 54, 93, 55, 56, 0, 16, 0, + 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, + 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, + 0, 0, 0, 33, 0, 0, -248, 0, 0, 0, + 0, 0, 0, 167, 168, 169, 170, 34, 0, 35, + 36, 37, 38, 39, 40, 0, 0, 0, 0, 41, + 42, 43, 44, 45, 46, 47, 173, 174, 175, 176, + 177, 178, 179, 48, 0, 0, 0, 180, 0, 0, + 181, 182, 183, 184, 0, 49, 50, 0, 51, 0, + 52, 53, 79, 0, 0, 0, 0, 54, -74, 55, + 56, 0, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 167, 168, 169, 170, 0, 0, 34, 0, 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, - 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, - 50, 51, 0, 0, 0, 0, 0, 52, 53, 0, - 155, 54, 0, 55, 56, 16, 0, 17, 18, 19, + 175, 176, 177, 178, 179, 0, 0, 48, 0, 180, + 0, 0, 181, 182, 183, 184, 0, 0, 0, 49, + 50, 0, 51, 0, 52, 53, 0, 0, 0, 0, + -74, 54, 0, 55, 56, 77, 0, 16, 0, 17, + 18, 19, 20, 21, 0, 0, 129, 23, 24, 25, + 26, 109, 27, 28, 29, 30, 31, 32, 0, 0, + 0, 0, 33, 0, 0, 0, 0, 0, 0, 167, + 168, 169, 170, 0, 0, 0, 34, 0, 35, 36, + 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, + 43, 44, 45, 46, 47, 176, 177, 178, 179, 0, + 0, 0, 48, 180, 0, 0, 181, 182, 183, 184, + 0, 0, 0, 0, 49, 50, 0, 51, 0, 52, + 53, 0, 0, 0, 0, 0, 54, 0, 55, 56, + 77, 0, 16, 0, 17, 18, 19, 20, 21, 0, + 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, + 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, + 0, 0, 0, 0, 167, 168, 169, 170, 0, 0, + 0, 34, 0, 35, 36, 37, 38, 39, 40, 0, + 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, + 0, 177, 178, 179, 0, 0, 0, 48, 180, 0, + 0, 181, 182, 183, 184, 0, 0, 0, 0, 49, + 50, 0, 51, 0, 52, 53, 0, 0, 0, 0, + 0, 54, 0, 55, 56, 16, 104, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, - 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 0, 167, -248, 169, 170, 0, 0, 0, 0, 0, 34, 0, 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, 43, 44, - 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 49, 50, 51, 0, 0, 0, 0, 0, - 52, 53, 0, 232, 54, 0, 55, 56, 16, 0, + 45, 46, 47, 178, 179, 0, 0, 0, 0, 180, + 48, 0, 181, 182, 183, 184, 0, 0, 0, 0, + 0, 0, 49, 50, 0, 51, 0, 52, 53, 0, + 0, 0, 0, 0, 54, 0, 55, 56, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, - 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, + 0, 0, 0, 33, 0, 0, 0, 0, 167, 168, + 169, 170, 0, 0, 0, 0, 0, 34, 0, 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, 41, - 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, - 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 49, 50, 51, 0, 0, - 0, 0, 0, 52, 53, 0, 240, 54, 0, 55, + 42, 43, 44, 45, 46, 47, 178, 179, 0, 0, + 0, 0, 180, 48, 0, 181, 182, 183, 184, 0, + 0, 0, 0, 0, 0, 49, 50, 0, 51, 0, + 52, 53, 0, 0, 0, 0, 0, 54, 137, 55, 56, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, 0, @@ -737,7 +530,7 @@ static const yytype_int16 yytable[] = 0, 0, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 50, - 51, 0, 0, 0, 0, 0, 52, 53, 0, 252, + 0, 51, 0, 52, 53, 0, 0, 0, 0, 155, 54, 0, 55, 56, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, 33, @@ -746,8 +539,8 @@ static const yytype_int16 yytable[] = 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 49, 50, 51, 0, 0, 0, 0, 0, 52, - 53, 0, 281, 54, 0, 55, 56, 16, 0, 17, + 0, 49, 50, 0, 51, 0, 52, 53, 0, 0, + 0, 0, 232, 54, 0, 55, 56, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, @@ -755,37 +548,58 @@ static const yytype_int16 yytable[] = 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 50, 51, 0, 0, 0, - 0, 0, 52, 53, 0, 346, 54, 0, 55, 56, + 0, 0, 0, 0, 49, 50, 0, 51, 0, 52, + 53, 0, 0, 0, 0, 240, 54, 0, 55, 56, 16, 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, 47, 0, 0, - 0, 0, 0, 0, 0, 48, 166, 0, 0, 0, - 0, 0, 0, 167, 168, 169, 170, 49, 50, 51, - 0, 0, 0, 0, 0, 52, 53, 0, 0, 54, - 0, 55, 56, 171, 172, 339, 173, 174, 175, 176, - 177, 178, 179, 0, 0, 0, 0, 180, 181, 182, - 183, 166, 0, 184, 0, 0, 0, 0, 167, 168, - 169, 170, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 171, 172, - 0, 173, 174, 175, 176, 177, 178, 179, 0, 0, - 0, 0, 180, 181, 182, 183, 166, 0, 184, 0, - 0, 0, 0, 167, 168, 169, 170, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 49, 50, 0, + 51, 0, 52, 53, 0, 0, 0, 0, 252, 54, + 0, 55, 56, 16, 0, 17, 18, 19, 20, 21, + 0, 0, 22, 23, 24, 25, 26, 0, 27, 28, + 29, 30, 31, 32, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 0, 173, 174, 175, 176, - 177, 178, 179, 0, 0, 0, 0, 180, 181, 182, - 183, 0, 0, 184 + 0, 0, 34, 0, 35, 36, 37, 38, 39, 40, + 0, 0, 0, 0, 41, 42, 43, 44, 45, 46, + 47, 0, 0, 0, 0, 0, 0, 0, 48, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 50, 0, 51, 0, 52, 53, 0, 0, 0, + 0, 281, 54, 0, 55, 56, 16, 0, 17, 18, + 19, 20, 21, 0, 0, 22, 23, 24, 25, 26, + 0, 27, 28, 29, 30, 31, 32, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 34, 0, 35, 36, 37, + 38, 39, 40, 0, 0, 0, 0, 41, 42, 43, + 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, + 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 49, 50, 0, 51, 0, 52, 53, + 0, 0, 0, 0, 346, 54, 0, 55, 56, 16, + 0, 17, 18, 19, 20, 21, 0, 0, 22, 23, + 24, 25, 26, 0, 27, 28, 29, 30, 31, 32, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, + 35, 36, 37, 38, 39, 40, 0, 0, 0, 0, + 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, + 0, 0, 0, 0, 48, 166, 0, 0, 0, 0, + 0, 0, 167, 168, 169, 170, 49, 50, 0, 51, + 0, 52, 53, 0, 0, 0, 0, 0, 54, 0, + 55, 56, 171, 172, 339, 173, 174, 175, 176, 177, + 178, 179, 0, 0, 0, 0, 180, 166, 0, 181, + 182, 183, 184, 0, 167, 168, 169, 170, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 171, 172, 0, 173, 174, 175, + 176, 177, 178, 179, 0, 0, 0, 0, 180, 166, + 0, 181, 182, 183, 184, 0, 167, 168, 169, 170, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 0, 173, + 174, 175, 176, 177, 178, 179, 0, 0, 0, 0, + 180, 0, 0, 181, 182, 183, 184 }; -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-400))) - -#define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-248))) - static const yytype_int16 yycheck[] = { 15, 308, 11, 9, 9, 40, 46, 46, 126, 115, @@ -795,8 +609,8 @@ static const yytype_int16 yycheck[] = 439, 9, 20, 39, 40, 41, 42, 25, 77, 54, 40, 41, 20, 67, 73, 74, 75, 25, 9, 55, 56, 43, 44, 19, 20, 21, 56, 23, 24, 20, - 15, 16, 17, 0, 25, 104, 90, 9, 9, 11, - 115, 9, 12, 11, 40, 41, 100, 11, 102, 98, + 15, 16, 17, 0, 25, 104, 9, 91, 11, 11, + 115, 9, 12, 11, 40, 41, 100, 9, 102, 98, 46, 77, 100, 382, 407, 101, 92, 100, 133, 55, 56, 100, 501, 102, 101, 223, 141, 101, 100, 100, 12, 100, 492, 118, 9, 9, 100, 11, 9, 432, @@ -804,101 +618,72 @@ static const yytype_int16 yycheck[] = 126, 20, 45, 89, 102, 103, 126, 12, 143, 100, 9, 12, 11, 73, 74, 75, 15, 16, 17, 101, 100, 102, 21, 12, 159, 160, 161, 102, 163, 164, - 165, 12, 100, 203, 203, 100, 73, 74, 75, 10, + 165, 12, 100, 203, 203, 100, 73, 74, 75, 100, 126, 73, 74, 75, 9, 464, 11, 100, 193, 12, 185, 186, 187, 188, 189, 190, 191, 192, 477, 224, 77, 12, 499, 62, 101, 100, 100, 12, 73, 74, - 75, 100, 73, 74, 75, 69, 99, 212, 213, 214, - 215, 216, 217, 209, 73, 74, 75, 323, 223, 99, + 75, 99, 73, 74, 75, 10, 99, 212, 213, 214, + 215, 216, 217, 209, 73, 74, 75, 323, 223, 69, 20, 11, 73, 74, 75, 73, 74, 75, 184, 69, 235, 100, 350, 102, 103, 122, 73, 74, 75, 244, - 73, 74, 75, 20, 17, 18, 100, 203, 100, 99, - 10, 99, 73, 74, 75, 23, 11, 30, 73, 74, + 73, 74, 75, 20, 17, 18, 100, 203, 100, 10, + 99, 99, 73, 74, 75, 23, 11, 30, 73, 74, 75, 34, 99, 60, 269, 270, 39, 75, 100, 42, 18, 276, 45, 103, 47, 103, 49, 50, 51, 52, 53, 277, 73, 74, 75, 103, 103, 103, 323, 100, - 87, 296, 297, 298, 299, 92, 93, 94, 95, 20, - 102, 98, 100, 308, 410, 310, 311, 99, 23, 10, - 101, 198, 199, 200, 201, 202, 10, 204, 10, 206, + 87, 296, 297, 298, 299, 92, 20, 100, 95, 96, + 97, 98, 23, 308, 410, 310, 311, 102, 10, 10, + 101, 198, 199, 200, 201, 202, 99, 204, 10, 206, 207, 277, 73, 74, 75, 39, 40, 41, 42, 10, - 335, 327, 46, 414, 48, 375, 375, 418, 60, 61, - 421, 422, 10, 23, 300, 350, 73, 74, 75, 20, - 101, 93, 94, 95, 435, 436, 98, 100, 99, 73, - 74, 75, 99, 99, 445, 87, 73, 74, 75, 99, - 92, 93, 94, 95, 101, 410, 98, 382, 459, 99, - 99, 386, 463, 101, 465, 99, 99, 99, 99, 162, - 9, 99, 99, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 10, 490, - 415, 426, 417, 443, 301, 101, 497, 9, 433, 375, - 99, 71, 309, 101, 99, 506, 456, 457, 100, 58, - 59, 60, 61, 99, 9, 431, 100, 99, 468, 444, - 0, 101, 70, 458, 99, 19, 99, 12, 478, 9, - 480, 11, 12, 98, 297, 499, 471, 86, 87, 464, - 195, 444, 33, 92, 93, 94, 95, 82, 498, 98, - 60, 61, 477, 360, 362, 408, 363, 364, 493, 39, - 40, 41, 42, 375, -1, -1, 46, 203, 48, 376, - -1, 51, -1, -1, -1, -1, 86, 87, 58, 59, - 60, 61, 92, 93, 94, 95, -1, -1, 98, 73, - 74, 75, -1, 73, 74, 75, 0, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 12, -1, - -1, -1, 92, 93, 94, 95, -1, 101, 98, 99, + 335, 327, 46, 414, 48, 375, 375, 418, 10, 23, + 421, 422, 20, 99, 300, 350, 73, 74, 75, 99, + 101, 73, 74, 75, 435, 436, 99, 99, 99, 73, + 74, 75, 100, 99, 445, 73, 74, 75, 3, 4, + 5, 6, 7, 8, 101, 410, 101, 382, 459, 101, + 99, 386, 463, 99, 465, 99, 99, 9, 99, 162, + 10, 99, 101, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 9, 490, + 415, 426, 417, 443, 301, 71, 497, 99, 433, 375, + 99, 101, 309, 100, 99, 506, 456, 457, 60, 61, + 73, 74, 75, 9, 100, 431, 87, 101, 468, 444, + 0, 92, 99, 458, 95, 96, 97, 98, 478, 9, + 480, 11, 12, 70, 86, 87, 471, 19, 101, 464, + 92, 99, 99, 95, 96, 97, 98, 12, 498, 98, + 60, 61, 477, 360, 444, 297, 363, 364, 493, 39, + 40, 41, 42, 499, 33, 195, 46, 82, 48, 376, + 92, 51, 362, 95, 96, 97, 98, 87, 58, 59, + 60, 61, 92, 375, 203, 95, 96, 97, 98, 95, + 96, 97, 98, 73, 74, 75, 0, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 12, 408, + -1, 58, 92, 60, 61, 95, 96, 97, 98, 99, -1, 101, -1, -1, 104, 39, 40, 41, 42, -1, - -1, -1, 46, -1, 48, 39, 40, 41, 42, 73, - 74, 75, 46, -1, 48, -1, 339, 51, 3, 4, - 5, 6, 7, 8, 58, 59, 60, 61, -1, 73, - 74, 75, 92, 93, 94, 95, -1, 101, 98, 73, + -1, -1, 46, -1, 48, 39, 40, 41, 42, 86, + 87, -1, 46, -1, 48, 92, 339, 51, 95, 96, + 97, 98, -1, -1, 58, 59, 60, 61, -1, 73, + 74, 75, 73, 74, 75, -1, -1, -1, -1, 73, 74, 75, -1, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 73, 74, 75, -1, 92, 93, - 94, 95, 0, 1, 98, 99, -1, 101, -1, -1, - 104, 9, -1, 11, -1, 13, 14, 15, 16, 17, - 99, -1, 20, 21, 22, 23, 24, -1, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 73, 74, 75, 46, 47, - 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, - 73, 74, 75, -1, 62, 63, 64, 65, 66, 67, - 68, -1, -1, 101, -1, -1, -1, -1, 76, -1, - 73, 74, 75, -1, -1, -1, 99, -1, -1, -1, - 88, 89, 90, 73, 74, 75, -1, -1, 96, 97, - 0, 1, 100, 101, 102, 103, 99, -1, -1, 9, - -1, 11, -1, 13, 14, 15, 16, 17, -1, 99, - 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, -1, -1, -1, 46, 47, 48, 49, - 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, - -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, - -1, -1, 87, -1, -1, -1, 76, 92, 93, 94, - 95, -1, -1, 98, -1, -1, -1, -1, 88, 89, - 90, -1, -1, -1, -1, -1, 96, 97, 1, -1, - 100, 101, 102, 103, -1, -1, 9, 10, 11, -1, - 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, - 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - -1, -1, -1, 46, 47, 48, 49, 50, -1, 52, - 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, - 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, - -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 88, 89, 90, -1, -1, - -1, -1, -1, 96, 97, 1, -1, 100, 101, 102, - 103, -1, -1, 9, 10, 11, -1, 13, 14, 15, - 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, -1, -1, -1, - 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, - 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, - 66, 67, 68, -1, -1, -1, -1, -1, -1, -1, - 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 88, 89, 90, -1, -1, -1, -1, -1, - 96, 97, 1, -1, 100, 101, 102, 103, -1, -1, - 9, 10, 11, -1, 13, 14, 15, 16, 17, -1, - -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, -1, -1, -1, 46, 47, 48, - 49, 50, -1, 52, 53, 54, 55, 56, 57, -1, - -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, - -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, - 89, 90, -1, -1, -1, -1, -1, 96, 97, 1, - -1, 100, 101, 102, 103, -1, -1, 9, 10, 11, + 84, 85, 86, 87, 73, 74, 75, -1, 92, -1, + 101, 95, 96, 97, 98, 99, -1, 101, 0, 1, + 104, -1, -1, -1, -1, -1, -1, 9, -1, 11, + 99, 13, 14, 15, 16, 17, -1, -1, 20, 21, + 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 73, 74, 75, 46, 47, 48, 49, 50, -1, + 52, 53, 54, 55, 56, 57, 73, 74, 75, -1, + 62, 63, 64, 65, 66, 67, 68, 99, -1, 73, + 74, 75, -1, -1, 76, -1, -1, -1, -1, -1, + -1, -1, 99, -1, -1, -1, 88, 89, -1, 91, + -1, 93, 94, 0, 1, 99, -1, -1, 100, 101, + 102, 103, 9, -1, 11, -1, 13, 14, 15, 16, + 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, -1, -1, -1, 46, + 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, + 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, + 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 88, 89, -1, 91, -1, 93, 94, -1, 1, + -1, -1, -1, 100, 101, 102, 103, 9, 10, 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, @@ -906,131 +691,131 @@ static const yytype_int16 yycheck[] = 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 88, 89, 90, -1, - -1, -1, -1, -1, 96, 97, 1, -1, 100, 101, - 102, 103, -1, -1, 9, 10, 11, -1, 13, 14, - 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, - -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, -1, -1, - -1, 46, 47, 48, 49, 50, -1, 52, 53, 54, - 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, - 65, 66, 67, 68, -1, -1, -1, -1, -1, -1, - -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 88, 89, 90, -1, -1, -1, -1, - -1, 96, 97, 1, -1, 100, 101, 102, 103, -1, - -1, 9, -1, 11, -1, 13, 14, 15, 16, 17, - -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, -1, -1, -1, 46, 47, - 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, - -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, - 68, -1, -1, 71, -1, -1, -1, -1, 76, -1, + -1, -1, -1, -1, -1, -1, 88, 89, -1, 91, + -1, 93, 94, -1, 1, -1, -1, -1, 100, 101, + 102, 103, 9, 10, 11, -1, 13, 14, 15, 16, + 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, -1, -1, -1, 46, + 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, + 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, + 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 88, 89, 90, -1, -1, -1, -1, -1, 96, 97, - 1, -1, 100, 101, 102, 103, -1, -1, 9, -1, - 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, - 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, -1, -1, -1, 46, 47, 48, 49, 50, - -1, 52, 53, 54, 55, 56, 57, -1, -1, -1, - -1, 62, 63, 64, 65, 66, 67, 68, -1, -1, - -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 88, 89, 90, - -1, -1, -1, -1, -1, 96, 97, 1, -1, 100, - 101, 102, 103, -1, -1, 9, -1, 11, -1, 13, - 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, - 24, -1, 26, 27, 28, 29, 30, 31, 32, -1, - 34, 35, 36, 37, 38, 39, 40, 41, 42, -1, - -1, -1, 46, 47, 48, 49, 50, -1, 52, 53, - 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, - 64, 65, 66, 67, 68, -1, -1, -1, -1, -1, - -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 88, 89, 90, -1, -1, -1, - 1, -1, 96, 97, -1, -1, 100, 101, 102, 103, - 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, - 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, - 31, -1, -1, -1, -1, 36, -1, -1, 51, -1, - -1, -1, -1, -1, -1, 58, 59, 60, 61, 50, - -1, 52, 53, 54, 55, 56, 57, -1, -1, -1, - -1, 62, 63, 64, 65, 66, 67, 68, 81, 82, - 83, 84, 85, 86, 87, 76, -1, -1, -1, 92, - 93, 94, 95, -1, -1, 98, -1, 88, 89, 90, - -1, -1, -1, 1, -1, 96, 97, -1, -1, 100, - 101, 102, 103, 11, -1, 13, 14, 15, 16, 17, - -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, - 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, - -1, -1, -1, -1, -1, -1, 58, 59, 60, 61, - -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, - -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, - 68, 83, 84, 85, 86, 87, -1, -1, 76, -1, - 92, 93, 94, 95, -1, -1, 98, -1, -1, -1, - 88, 89, 90, -1, -1, -1, -1, -1, 96, 97, - -1, 99, 100, -1, 102, 103, 9, -1, 11, -1, - 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, -1, - -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, - 58, 59, 60, 61, -1, -1, -1, 50, -1, 52, - 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, - 63, 64, 65, 66, 67, 68, 84, 85, 86, 87, - -1, -1, -1, 76, 92, 93, 94, 95, -1, -1, - 98, -1, -1, -1, -1, 88, 89, 90, -1, -1, - -1, -1, -1, 96, 97, -1, -1, 100, -1, 102, - 103, 9, -1, 11, -1, 13, 14, 15, 16, 17, - -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, - 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, - -1, -1, -1, -1, -1, 58, 59, 60, 61, -1, - -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, - -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, - 68, -1, 85, 86, 87, -1, -1, -1, 76, 92, - 93, 94, 95, -1, -1, 98, -1, -1, -1, -1, - 88, 89, 90, -1, -1, -1, -1, -1, 96, 97, - -1, -1, 100, -1, 102, 103, 11, 12, 13, 14, - 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, - -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, - -1, 36, -1, -1, -1, -1, -1, -1, 58, 59, - 60, 61, -1, -1, -1, 50, -1, 52, 53, 54, - 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, - 65, 66, 67, 68, -1, -1, 86, 87, -1, -1, - -1, 76, 92, 93, 94, 95, -1, -1, 98, -1, - -1, -1, -1, 88, 89, 90, -1, -1, -1, -1, - -1, 96, 97, -1, -1, 100, -1, 102, 103, 11, + -1, 88, 89, -1, 91, -1, 93, 94, -1, 1, + -1, -1, -1, 100, 101, 102, 103, 9, 10, 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, - -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, - -1, 58, -1, 60, 61, -1, -1, -1, 50, -1, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, -1, -1, -1, 46, 47, 48, 49, 50, -1, + 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, + 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, + -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 88, 89, -1, 91, + -1, 93, 94, -1, 1, -1, -1, -1, 100, 101, + 102, 103, 9, 10, 11, -1, 13, 14, 15, 16, + 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, -1, -1, -1, 46, + 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, + 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, + 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 88, 89, -1, 91, -1, 93, 94, -1, 1, + -1, -1, -1, 100, 101, 102, 103, 9, 10, 11, + -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, + 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, -1, -1, -1, 46, 47, 48, 49, 50, -1, + 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, + 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, + -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 88, 89, -1, 91, + -1, 93, 94, -1, 1, -1, -1, -1, 100, 101, + 102, 103, 9, -1, 11, -1, 13, 14, 15, 16, + 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, -1, -1, -1, 46, + 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, + 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, + 67, 68, -1, -1, 71, -1, -1, -1, -1, 76, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 88, 89, -1, 91, -1, 93, 94, -1, 1, + -1, -1, -1, 100, 101, 102, 103, 9, -1, 11, + -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, + 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, -1, -1, -1, 46, 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, - 62, 63, 64, 65, 66, 67, 68, -1, -1, 86, - 87, -1, -1, -1, 76, 92, 93, 94, 95, -1, - -1, 98, -1, -1, -1, -1, 88, 89, 90, -1, - -1, -1, -1, -1, 96, 97, -1, -1, 100, 101, - 102, 103, 11, -1, 13, 14, 15, 16, 17, -1, + 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, + -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 88, 89, -1, 91, + -1, 93, 94, -1, 1, -1, -1, -1, 100, 101, + 102, 103, 9, -1, 11, -1, 13, 14, 15, 16, + 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, + 27, 28, 29, 30, 31, 32, -1, 34, 35, 36, + 37, 38, 39, 40, 41, 42, -1, -1, -1, 46, + 47, 48, 49, 50, -1, 52, 53, 54, 55, 56, + 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, + 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 88, 89, -1, 91, -1, 93, 94, 1, -1, + -1, -1, -1, 100, 101, 102, 103, -1, 11, -1, + 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, + 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, + -1, -1, -1, 36, -1, -1, 51, -1, -1, -1, + -1, -1, -1, 58, 59, 60, 61, 50, -1, 52, + 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, + 63, 64, 65, 66, 67, 68, 81, 82, 83, 84, + 85, 86, 87, 76, -1, -1, -1, 92, -1, -1, + 95, 96, 97, 98, -1, 88, 89, -1, 91, -1, + 93, 94, 1, -1, -1, -1, -1, 100, 101, 102, + 103, -1, 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 58, 59, 60, 61, -1, + -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, + -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, + 83, 84, 85, 86, 87, -1, -1, 76, -1, 92, + -1, -1, 95, 96, 97, 98, -1, -1, -1, 88, + 89, -1, 91, -1, 93, 94, -1, -1, -1, -1, + 99, 100, -1, 102, 103, 9, -1, 11, -1, 13, + 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, + -1, -1, 36, -1, -1, -1, -1, -1, -1, 58, + 59, 60, 61, -1, -1, -1, 50, -1, 52, 53, + 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, + 64, 65, 66, 67, 68, 84, 85, 86, 87, -1, + -1, -1, 76, 92, -1, -1, 95, 96, 97, 98, + -1, -1, -1, -1, 88, 89, -1, 91, -1, 93, + 94, -1, -1, -1, -1, -1, 100, -1, 102, 103, + 9, -1, 11, -1, 13, 14, 15, 16, 17, -1, + -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, + 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, + -1, -1, -1, -1, 58, 59, 60, 61, -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, - -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, - 89, 90, -1, -1, -1, -1, -1, 96, 97, -1, - 99, 100, -1, 102, 103, 11, -1, 13, 14, 15, + -1, 85, 86, 87, -1, -1, -1, 76, 92, -1, + -1, 95, 96, 97, 98, -1, -1, -1, -1, 88, + 89, -1, 91, -1, 93, 94, -1, -1, -1, -1, + -1, 100, -1, 102, 103, 11, 12, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, - 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 36, -1, -1, -1, -1, 58, 59, 60, 61, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, - 66, 67, 68, -1, -1, -1, -1, -1, -1, -1, - 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 88, 89, 90, -1, -1, -1, -1, -1, - 96, 97, -1, 99, 100, -1, 102, 103, 11, -1, + 66, 67, 68, 86, 87, -1, -1, -1, -1, 92, + 76, -1, 95, 96, 97, 98, -1, -1, -1, -1, + -1, -1, 88, 89, -1, 91, -1, 93, 94, -1, + -1, -1, -1, -1, 100, -1, 102, 103, 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, - -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 50, -1, 52, + -1, -1, -1, 36, -1, -1, -1, -1, 58, 59, + 60, 61, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, - 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, - -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 88, 89, 90, -1, -1, - -1, -1, -1, 96, 97, -1, 99, 100, -1, 102, + 63, 64, 65, 66, 67, 68, 86, 87, -1, -1, + -1, -1, 92, 76, -1, 95, 96, 97, 98, -1, + -1, -1, -1, -1, -1, 88, 89, -1, 91, -1, + 93, 94, -1, -1, -1, -1, -1, 100, 101, 102, 103, 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, @@ -1039,7 +824,7 @@ static const yytype_int16 yycheck[] = -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, 89, - 90, -1, -1, -1, -1, -1, 96, 97, -1, 99, + -1, 91, -1, 93, 94, -1, -1, -1, -1, 99, 100, -1, 102, 103, 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, 36, @@ -1048,8 +833,8 @@ static const yytype_int16 yycheck[] = 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 88, 89, 90, -1, -1, -1, -1, -1, 96, - 97, -1, 99, 100, -1, 102, 103, 11, -1, 13, + -1, 88, 89, -1, 91, -1, 93, 94, -1, -1, + -1, -1, 99, 100, -1, 102, 103, 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, @@ -1057,33 +842,60 @@ static const yytype_int16 yycheck[] = 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 88, 89, 90, -1, -1, -1, - -1, -1, 96, 97, -1, 99, 100, -1, 102, 103, + -1, -1, -1, -1, 88, 89, -1, 91, -1, 93, + 94, -1, -1, -1, -1, 99, 100, -1, 102, 103, 11, -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, 68, -1, -1, - -1, -1, -1, -1, -1, 76, 51, -1, -1, -1, - -1, -1, -1, 58, 59, 60, 61, 88, 89, 90, - -1, -1, -1, -1, -1, 96, 97, -1, -1, 100, - -1, 102, 103, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, -1, -1, -1, -1, 92, 93, 94, - 95, 51, -1, 98, -1, -1, -1, -1, 58, 59, - 60, 61, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 78, 79, - -1, 81, 82, 83, 84, 85, 86, 87, -1, -1, - -1, -1, 92, 93, 94, 95, 51, -1, 98, -1, - -1, -1, -1, 58, 59, 60, 61, -1, -1, -1, + -1, -1, -1, -1, -1, 76, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 88, 89, -1, + 91, -1, 93, 94, -1, -1, -1, -1, 99, 100, + -1, 102, 103, 11, -1, 13, 14, 15, 16, 17, + -1, -1, 20, 21, 22, 23, 24, -1, 26, 27, + 28, 29, 30, 31, -1, -1, -1, -1, 36, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 50, -1, 52, 53, 54, 55, 56, 57, + -1, -1, -1, -1, 62, 63, 64, 65, 66, 67, + 68, -1, -1, -1, -1, -1, -1, -1, 76, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 88, 89, -1, 91, -1, 93, 94, -1, -1, -1, + -1, 99, 100, -1, 102, 103, 11, -1, 13, 14, + 15, 16, 17, -1, -1, 20, 21, 22, 23, 24, + -1, 26, 27, 28, 29, 30, 31, -1, -1, -1, + -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, + 55, 56, 57, -1, -1, -1, -1, 62, 63, 64, + 65, 66, 67, 68, -1, -1, -1, -1, -1, -1, + -1, 76, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 88, 89, -1, 91, -1, 93, 94, + -1, -1, -1, -1, 99, 100, -1, 102, 103, 11, + -1, 13, 14, 15, 16, 17, -1, -1, 20, 21, + 22, 23, 24, -1, 26, 27, 28, 29, 30, 31, + -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 50, -1, + 52, 53, 54, 55, 56, 57, -1, -1, -1, -1, + 62, 63, 64, 65, 66, 67, 68, -1, -1, -1, + -1, -1, -1, -1, 76, 51, -1, -1, -1, -1, + -1, -1, 58, 59, 60, 61, 88, 89, -1, 91, + -1, 93, 94, -1, -1, -1, -1, -1, 100, -1, + 102, 103, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, -1, -1, -1, -1, 92, 51, -1, 95, + 96, 97, 98, -1, 58, 59, 60, 61, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 78, 79, -1, 81, 82, 83, + 84, 85, 86, 87, -1, -1, -1, -1, 92, 51, + -1, 95, 96, 97, 98, -1, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 79, -1, 81, 82, 83, 84, - 85, 86, 87, -1, -1, -1, -1, 92, 93, 94, - 95, -1, -1, 98 + -1, -1, -1, -1, -1, -1, -1, 79, -1, 81, + 82, 83, 84, 85, 86, 87, -1, -1, -1, -1, + 92, -1, -1, 95, 96, 97, 98 }; -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { 0, 3, 4, 5, 6, 7, 8, 106, 107, 108, @@ -1091,7 +903,7 @@ static const yytype_uint8 yystos[] = 16, 17, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 36, 50, 52, 53, 54, 55, 56, 57, 62, 63, 64, 65, 66, 67, 68, 76, 88, - 89, 90, 96, 97, 100, 102, 103, 152, 153, 154, + 89, 91, 93, 94, 100, 102, 103, 152, 153, 154, 157, 158, 159, 160, 161, 162, 164, 167, 172, 173, 174, 175, 176, 177, 178, 179, 180, 9, 113, 1, 32, 34, 35, 37, 38, 39, 40, 41, 42, 46, @@ -1104,9 +916,9 @@ static const yytype_uint8 yystos[] = 162, 162, 162, 162, 162, 99, 152, 181, 181, 73, 74, 75, 77, 9, 11, 100, 51, 58, 59, 60, 61, 78, 79, 81, 82, 83, 84, 85, 86, 87, - 92, 93, 94, 95, 98, 100, 9, 11, 9, 11, + 92, 95, 96, 97, 98, 100, 9, 11, 9, 11, 9, 11, 9, 115, 144, 145, 20, 142, 100, 100, - 100, 100, 67, 90, 100, 173, 100, 100, 113, 45, + 100, 100, 67, 91, 100, 173, 100, 100, 113, 45, 134, 101, 39, 40, 41, 42, 46, 48, 121, 122, 120, 12, 166, 100, 100, 152, 99, 113, 23, 115, 146, 99, 99, 152, 167, 181, 153, 10, 101, 166, @@ -1139,6 +951,68 @@ static const yytype_uint8 yystos[] = 118, 116, 134, 140, 71, 133, 99, 116 }; + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = +{ + 0, 105, 107, 106, 108, 106, 109, 106, 110, 106, + 111, 106, 112, 106, 113, 114, 115, 116, 117, 118, + 118, 119, 119, 120, 120, 121, 121, 122, 122, 123, + 122, 124, 122, 122, 125, 122, 122, 122, 122, 122, + 122, 122, 122, 126, 127, 122, 122, 122, 128, 122, + 122, 122, 122, 129, 122, 122, 122, 130, 131, 131, + 132, 132, 132, 132, 132, 132, 132, 132, 133, 133, + 133, 134, 134, 135, 136, 136, 137, 137, 138, 139, + 140, 141, 141, 142, 143, 144, 145, 145, 146, 146, + 147, 147, 147, 148, 148, 150, 149, 151, 151, 152, + 152, 152, 152, 153, 153, 153, 154, 154, 154, 154, + 154, 154, 154, 154, 155, 154, 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, 158, 158, 158, 158, 158, 159, 159, 159, 159, + 159, 159, 159, 159, 159, 160, 160, 160, 160, 160, + 160, 161, 161, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, + 162, 163, 162, 162, 162, 162, 162, 164, 164, 165, + 165, 165, 165, 165, 166, 166, 167, 167, 168, 168, + 169, 170, 170, 170, 171, 171, 172, 173, 174, 175, + 176, 176, 177, 178, 178, 179, 179, 180, 180, 181, + 181, 181, 181 +}; + + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 0, 4, 0, 3, 0, 3, 0, 3, + 0, 3, 0, 3, 4, 7, 0, 4, 0, 0, + 2, 0, 2, 1, 1, 2, 2, 1, 4, 0, + 7, 0, 10, 4, 0, 7, 7, 7, 6, 6, + 2, 8, 8, 0, 0, 13, 9, 8, 0, 11, + 9, 7, 2, 0, 8, 2, 1, 2, 0, 3, + 1, 1, 3, 3, 3, 3, 3, 3, 0, 2, + 6, 0, 2, 0, 0, 1, 0, 1, 1, 1, + 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, + 0, 2, 1, 2, 1, 0, 3, 1, 1, 3, + 3, 3, 1, 2, 3, 1, 3, 5, 6, 3, + 3, 5, 2, 4, 0, 5, 1, 1, 5, 4, + 5, 4, 5, 6, 5, 4, 5, 4, 3, 6, + 4, 5, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 2, 4, 3, 5, + 8, 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, 6, 1, 1, 1, 1, 3, 2, 3, + 2, 1, 1, 1, 0, 1, 0, 1, 0, 2, + 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, + 2, 4, 2, 1, 3, 1, 3, 1, 3, 1, + 1, 1, 1 +}; + typedef enum { toketype_ival, toketype_opval, toketype_pval } toketypes; @@ -1176,6 +1050,6 @@ static const toketypes yy_type_tab[] = }; /* Generated from: - * 703ebd267cf8ca45f9dee9bc0f4b21511117a0c1dca1c8bc9438ce91950217ae perly.y + * 4fd37fdbff6285ba6e9096c2229255ecc6264d2f26835e535cf1c38f387ceae6 perly.y * a4923588f219644801577c514014847e1e5240f49413fa3b89d3306fa4874d07 regen_perly.pl * ex: set ro: */ diff --git a/perly.y b/perly.y index 200964d..8717258 100644 --- a/perly.y +++ b/perly.y @@ -755,19 +755,31 @@ subscripted: gelem '{' expr ';' '}' /* *main::{something} */ jmaybe($3)); } | term ARROW '(' ')' /* $subref->() */ { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, - newCVREF(0, scalar($1))); } + newCVREF(0, scalar($1))); + if (parser->expect == XBLOCK) + parser->expect = XOPERATOR; + } | term ARROW '(' expr ')' /* $subref->(@args) */ { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, $4, - newCVREF(0, scalar($1)))); } + newCVREF(0, scalar($1)))); + if (parser->expect == XBLOCK) + parser->expect = XOPERATOR; + } | subscripted '(' expr ')' /* $foo->{bar}->(@args) */ { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, $3, - newCVREF(0, scalar($1)))); } + newCVREF(0, scalar($1)))); + if (parser->expect == XBLOCK) + parser->expect = XOPERATOR; + } | subscripted '(' ')' /* $foo->{bar}->() */ { $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, - newCVREF(0, scalar($1))); } + newCVREF(0, scalar($1))); + if (parser->expect == XBLOCK) + parser->expect = XOPERATOR; + } | '(' expr ')' '[' expr ']' /* list slice */ { $$ = newSLICEOP(0, $5, $2); } | QWLIST '[' expr ']' /* list literal slice */ diff --git a/t/op/postfixderef.t b/t/op/postfixderef.t index 77988bf..fa066aa 100644 --- a/t/op/postfixderef.t +++ b/t/op/postfixderef.t @@ -16,7 +16,7 @@ BEGIN { use strict qw(refs subs); -plan(115); +plan(129); { no strict 'refs'; @@ -353,3 +353,26 @@ is "$_->@{foo}", "foo->7 8 9", '->@{ does not interpolate without feature'; is "@{[foo->@[0,1]]}", "7 8", '->@[ inside "@{...}"'; is "@{[foo->@{foo}]}", "oof", '->@{ inside "@{...}"'; } + +# parsing of {} subscript as subscript rather than block +{ + sub ppp { "qqq" } + my $h = { ppp => "pp", qqq => "qq", rrr => 7 }; + is ${$h}{ppp}, "pp"; + is ${$h}{"rrr"} - 2, 5; + my $ar = [$h]; + is $ar->[0]->{ppp}, "pp"; + is $ar->[0]->{"rrr"} - 2, 5; + is $ar->[0]{ppp}, "pp"; + is $ar->[0]{"rrr"} - 2, 5; + my $hr = {h=>$h}; + is $hr->{"h"}->{ppp}, "pp"; + is $hr->{"h"}->{"rrr"} - 2, 5; + is $hr->{"h"}{ppp}, "pp"; + is $hr->{"h"}{"rrr"} - 2, 5; + my $cr = sub { $h }; + is $cr->()->{ppp}, "pp"; + is $cr->()->{"rrr"} - 2, 5; + is $cr->(){ppp}, "pp"; + is $cr->(){"rrr"} - 2, 5; +} -- 2.13.6