diff options
author | Father Chrysostomos <sprout@cpan.org> | 2014-10-02 22:38:27 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2014-10-11 00:10:15 -0700 |
commit | d39c26a657753cddffc8cb3dbd2aaa929b2c78fe (patch) | |
tree | e3061d7ad6cb247565e7ce16a74db2eddc5a07e7 | |
parent | 5a36b2c090849e18b86c1759887c5bcebd598113 (diff) | |
download | perl-d39c26a657753cddffc8cb3dbd2aaa929b2c78fe.tar.gz |
foreach \$var
Some passing tests are still marked to-do. We need more tests still.
-rw-r--r-- | cop.h | 5 | ||||
-rw-r--r-- | mg.c | 9 | ||||
-rw-r--r-- | mg.h | 1 | ||||
-rw-r--r-- | op.c | 8 | ||||
-rw-r--r-- | perly.act | 1209 | ||||
-rw-r--r-- | perly.h | 64 | ||||
-rw-r--r-- | perly.tab | 1592 | ||||
-rw-r--r-- | perly.y | 37 | ||||
-rw-r--r-- | pp.c | 2 | ||||
-rw-r--r-- | pp_ctl.c | 12 | ||||
-rw-r--r-- | pp_hot.c | 5 |
11 files changed, 1522 insertions, 1422 deletions
@@ -761,7 +761,9 @@ struct block_loop { ((c)->blk_loop.itervar_u.oldcomppad \ ? (CxPADLOOP(c) \ ? CxITERVAR_PADSV(c) \ - : &GvSV((c)->blk_loop.itervar_u.gv)) \ + : isGV((c)->blk_loop.itervar_u.gv) \ + ? &GvSV((c)->blk_loop.itervar_u.gv) \ + : (SV **)&(c)->blk_loop.itervar_u.gv) \ : (SV**)NULL) #define CxLABEL(c) (0 + CopLABEL((c)->blk_oldcop)) @@ -980,6 +982,7 @@ struct context { /* private flags for CXt_LOOP */ #define CXp_FOR_DEF 0x10 /* foreach using $_ */ +#define CXp_FOR_LVREF 0x20 /* foreach using \$var */ #define CxPADLOOP(c) ((c)->blk_loop.my_op->op_targ) /* private flags for CXt_SUBST */ @@ -2507,7 +2507,14 @@ Perl_magic_setlvref(pTHX_ SV *sv, MAGIC *mg) hv_store_ent((HV *)mg->mg_obj, (SV *)mg->mg_ptr, SvREFCNT_inc_simple_NN(SvRV(sv)), 0); } - sv_unmagic(sv, PERL_MAGIC_lvref); + if (mg->mg_flags & MGf_PERSIST) + NOOP; /* This sv is in use as an iterator var and will be reused, + so we must leave the magic. */ + else + /* This sv could be returned by the assignment op, so clear the + magic, as lvrefs are an implementation detail that must not be + leaked to the user. */ + sv_unmagic(sv, PERL_MAGIC_lvref); return 0; } @@ -40,6 +40,7 @@ struct magic { #define MGf_DUP 0x10 /* has an svt_dup MGVTBL entry */ #define MGf_LOCAL 0x20 /* has an svt_local MGVTBL entry */ #define MGf_BYTES 0x40 /* PERL_MAGIC_regex_global only */ +#define MGf_PERSIST 0x80 /* PERL_MAGIC_lvref only */ #define MgTAINTEDDIR(mg) (mg->mg_flags & MGf_TAINTEDDIR) #define MgTAINTEDDIR_on(mg) (mg->mg_flags |= MGf_TAINTEDDIR) @@ -2450,6 +2450,8 @@ S_lvref(pTHX_ OP *o, I32 type) o->op_type = OP_LVREF; o->op_ppaddr = PL_ppaddr[OP_LVREF]; o->op_private &= OPpLVAL_INTRO|OPpLVREF_ELEM|OPpLVREF_TYPE; + if (type == OP_ENTERLOOP) + o->op_private |= OPpLVREF_ITER; } OP * @@ -2747,7 +2749,9 @@ Perl_op_lvalue_flags(pTHX_ OP *o, I32 type, U32 flags) goto nomod; case OP_SREFGEN: - if (type != OP_AASSIGN && type != OP_SASSIGN) goto nomod; + if (type != OP_AASSIGN && type != OP_SASSIGN + && type != OP_ENTERLOOP) + goto nomod; /* Don’t bother applying lvalue context to the ex-list. */ kid = cUNOPx(cUNOPo->op_first)->op_first; assert (!OP_HAS_SIBLING(kid)); @@ -6932,6 +6936,8 @@ Perl_newFOROP(pTHX_ I32 flags, OP *sv, OP *expr, OP *block, OP *cont) op_free(sv); sv = NULL; } + else if (sv->op_type == OP_NULL && sv->op_targ == OP_SREFGEN) + NOOP; else Perl_croak(aTHX_ "Can't use %s for loop variable", PL_op_desc[sv->op_type]); if (padoff) { @@ -5,199 +5,199 @@ */ case 2: -#line 114 "perly.y" +#line 115 "perly.y" { parser->expect = XSTATE; - } + ;} break; case 3: -#line 118 "perly.y" +#line 119 "perly.y" { newPROG(block_end((ps[(3) - (4)].val.ival),(ps[(4) - (4)].val.opval))); (yyval.ival) = 0; - } + ;} break; case 4: -#line 123 "perly.y" +#line 124 "perly.y" { parser->expect = XTERM; - } + ;} break; case 5: -#line 127 "perly.y" +#line 128 "perly.y" { PL_eval_root = (ps[(3) - (3)].val.opval); (yyval.ival) = 0; - } + ;} break; case 6: -#line 132 "perly.y" +#line 133 "perly.y" { parser->expect = XBLOCK; - } + ;} break; case 7: -#line 136 "perly.y" +#line 137 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[(3) - (3)].val.opval); (yyval.ival) = 0; yyunlex(); parser->yychar = YYEOF; - } + ;} break; case 8: -#line 144 "perly.y" +#line 145 "perly.y" { parser->expect = XSTATE; - } + ;} break; case 9: -#line 148 "perly.y" +#line 149 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[(3) - (3)].val.opval); (yyval.ival) = 0; yyunlex(); parser->yychar = YYEOF; - } + ;} break; case 10: -#line 156 "perly.y" +#line 157 "perly.y" { parser->expect = XSTATE; - } + ;} break; case 11: -#line 160 "perly.y" +#line 161 "perly.y" { PL_pad_reset_pending = TRUE; PL_eval_root = (ps[(3) - (3)].val.opval); (yyval.ival) = 0; yyunlex(); parser->yychar = YYEOF; - } + ;} break; case 12: -#line 168 "perly.y" +#line 169 "perly.y" { parser->expect = XSTATE; - } + ;} break; case 13: -#line 172 "perly.y" +#line 173 "perly.y" { PL_eval_root = (ps[(3) - (3)].val.opval); (yyval.ival) = 0; - } + ;} break; case 14: -#line 180 "perly.y" +#line 181 "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)); - } + ;} break; case 15: -#line 188 "perly.y" +#line 189 "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)); - } + ;} break; case 16: -#line 195 "perly.y" - { (yyval.ival) = block_start(TRUE); } +#line 196 "perly.y" + { (yyval.ival) = block_start(TRUE); ;} break; case 17: -#line 199 "perly.y" +#line 200 "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)); - } + ;} break; case 18: -#line 206 "perly.y" - { (yyval.ival) = block_start(FALSE); } +#line 207 "perly.y" + { (yyval.ival) = block_start(FALSE); ;} break; case 19: -#line 211 "perly.y" - { (yyval.opval) = (OP*)NULL; } +#line 212 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; case 20: -#line 213 "perly.y" +#line 214 "perly.y" { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval)); PL_pad_reset_pending = TRUE; if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval)) PL_hints |= HINT_BLOCK_SCOPE; - } + ;} break; case 21: -#line 222 "perly.y" - { (yyval.opval) = (OP*)NULL; } +#line 223 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; case 22: -#line 224 "perly.y" +#line 225 "perly.y" { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval)); PL_pad_reset_pending = TRUE; if ((ps[(1) - (2)].val.opval) && (ps[(2) - (2)].val.opval)) PL_hints |= HINT_BLOCK_SCOPE; - } + ;} break; case 23: -#line 233 "perly.y" +#line 234 "perly.y" { (yyval.opval) = (ps[(1) - (1)].val.opval) ? newSTATEOP(0, NULL, (ps[(1) - (1)].val.opval)) : NULL; - } + ;} break; case 24: -#line 237 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 238 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 25: -#line 241 "perly.y" +#line 242 "perly.y" { (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[(1) - (2)].val.pval)[strlen((ps[(1) - (2)].val.pval))+1], (ps[(1) - (2)].val.pval), (ps[(2) - (2)].val.opval)); - } + ;} break; case 26: -#line 245 "perly.y" +#line 246 "perly.y" { (yyval.opval) = newSTATEOP(SVf_UTF8 * (ps[(1) - (2)].val.pval)[strlen((ps[(1) - (2)].val.pval))+1], (ps[(1) - (2)].val.pval), (ps[(2) - (2)].val.opval)); - } + ;} break; case 27: -#line 252 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 253 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 28: -#line 254 "perly.y" +#line 255 "perly.y" { CV *fmtcv = PL_compcv; newFORM((ps[(2) - (4)].val.ival), (ps[(3) - (4)].val.opval), (ps[(4) - (4)].val.opval)); @@ -206,11 +206,11 @@ case 2: SvREFCNT_inc_simple_void(fmtcv); pad_add_anon(fmtcv, OP_NULL); } - } + ;} break; case 29: -#line 264 "perly.y" +#line 265 "perly.y" { if ((ps[(2) - (3)].val.opval)->op_type == OP_CONST) { const char *const name = @@ -231,11 +231,11 @@ case 2: CvCLONE_on(PL_compcv); parser->in_my = 0; parser->in_my_stash = NULL; - } + ;} break; case 30: -#line 286 "perly.y" +#line 287 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); (ps[(2) - (7)].val.opval)->op_type == OP_CONST @@ -244,53 +244,53 @@ case 2: ; (yyval.opval) = (OP*)NULL; intro_my(); - } + ;} break; case 31: -#line 296 "perly.y" +#line 297 "perly.y" { package((ps[(3) - (4)].val.opval)); if ((ps[(2) - (4)].val.opval)) package_version((ps[(2) - (4)].val.opval)); (yyval.opval) = (OP*)NULL; - } + ;} break; case 32: -#line 303 "perly.y" - { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ } +#line 304 "perly.y" + { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;} break; case 33: -#line 305 "perly.y" +#line 306 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); utilize((ps[(1) - (7)].val.ival), (ps[(2) - (7)].val.ival), (ps[(4) - (7)].val.opval), (ps[(5) - (7)].val.opval), (ps[(6) - (7)].val.opval)); (yyval.opval) = (OP*)NULL; - } + ;} break; case 34: -#line 311 "perly.y" +#line 312 "perly.y" { (yyval.opval) = block_end((ps[(3) - (7)].val.ival), newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval))); parser->copline = (line_t)(ps[(1) - (7)].val.ival); - } + ;} break; case 35: -#line 317 "perly.y" +#line 318 "perly.y" { (yyval.opval) = block_end((ps[(3) - (7)].val.ival), newCONDOP(0, (ps[(4) - (7)].val.opval), op_scope((ps[(6) - (7)].val.opval)), (ps[(7) - (7)].val.opval))); parser->copline = (line_t)(ps[(1) - (7)].val.ival); - } + ;} break; case 36: -#line 323 "perly.y" +#line 324 "perly.y" { const PADOFFSET offset = pad_findmy_pvs("$_", 0); (yyval.opval) = block_end((ps[(3) - (6)].val.ival), @@ -300,51 +300,51 @@ case 2: ? 0 : offset)); parser->copline = (line_t)(ps[(1) - (6)].val.ival); - } + ;} break; case 37: -#line 334 "perly.y" - { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); } +#line 335 "perly.y" + { (yyval.opval) = block_end((ps[(3) - (6)].val.ival), newWHENOP((ps[(4) - (6)].val.opval), op_scope((ps[(6) - (6)].val.opval)))); ;} break; case 38: -#line 336 "perly.y" - { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); } +#line 337 "perly.y" + { (yyval.opval) = newWHENOP(0, op_scope((ps[(2) - (2)].val.opval))); ;} break; case 39: -#line 338 "perly.y" +#line 339 "perly.y" { (yyval.opval) = block_end((ps[(3) - (8)].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); - } + ;} break; case 40: -#line 345 "perly.y" +#line 346 "perly.y" { (yyval.opval) = block_end((ps[(3) - (8)].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); - } + ;} break; case 41: -#line 352 "perly.y" - { parser->expect = XTERM; } +#line 353 "perly.y" + { parser->expect = XTERM; ;} break; case 42: -#line 354 "perly.y" - { parser->expect = XTERM; } +#line 355 "perly.y" + { parser->expect = XTERM; ;} break; case 43: -#line 357 "perly.y" +#line 358 "perly.y" { OP *initop = (ps[(4) - (13)].val.opval); OP *forop = newWHILEOP(0, 1, (LOOP*)(OP*)NULL, @@ -357,82 +357,116 @@ case 2: } (yyval.opval) = block_end((ps[(3) - (13)].val.ival), forop); parser->copline = (line_t)(ps[(1) - (13)].val.ival); - } + ;} break; case 44: -#line 371 "perly.y" +#line 372 "perly.y" { (yyval.opval) = block_end((ps[(3) - (9)].val.ival), newFOROP(0, (ps[(4) - (9)].val.opval), (ps[(6) - (9)].val.opval), (ps[(8) - (9)].val.opval), (ps[(9) - (9)].val.opval))); parser->copline = (line_t)(ps[(1) - (9)].val.ival); - } + ;} break; case 45: -#line 376 "perly.y" +#line 377 "perly.y" { (yyval.opval) = block_end((ps[(4) - (8)].val.ival), newFOROP(0, op_lvalue((ps[(2) - (8)].val.opval), OP_ENTERLOOP), (ps[(5) - (8)].val.opval), (ps[(7) - (8)].val.opval), (ps[(8) - (8)].val.opval))); parser->copline = (line_t)(ps[(1) - (8)].val.ival); - } + ;} break; case 46: -#line 382 "perly.y" +#line 383 "perly.y" + { parser->in_my = 0; (yyval.opval) = my((ps[(5) - (5)].val.opval)); ;} + break; + + case 47: +#line 385 "perly.y" + { + (yyval.opval) = block_end( + (ps[(4) - (11)].val.ival), + newFOROP(0, + op_lvalue( + newUNOP(OP_REFGEN, 0, + op_lvalue((ps[(6) - (11)].val.opval), + OP_REFGEN)), + OP_ENTERLOOP), + (ps[(8) - (11)].val.opval), (ps[(10) - (11)].val.opval), (ps[(11) - (11)].val.opval)) + ); + parser->copline = (line_t)(ps[(1) - (11)].val.ival); + ;} + break; + + case 48: +#line 399 "perly.y" + { + (yyval.opval) = block_end((ps[(5) - (9)].val.ival), newFOROP( + 0, op_lvalue(newUNOP(OP_REFGEN, 0, + op_lvalue((ps[(3) - (9)].val.opval), + OP_REFGEN)), + 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); + ;} + break; + + case 49: +#line 408 "perly.y" { (yyval.opval) = block_end((ps[(3) - (7)].val.ival), newFOROP(0, (OP*)NULL, (ps[(4) - (7)].val.opval), (ps[(6) - (7)].val.opval), (ps[(7) - (7)].val.opval))); parser->copline = (line_t)(ps[(1) - (7)].val.ival); - } + ;} break; - case 47: -#line 388 "perly.y" + case 50: +#line 414 "perly.y" { /* a block is a loop that happens once */ (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL, (OP*)NULL, (ps[(1) - (2)].val.opval), (ps[(2) - (2)].val.opval), 0); - } + ;} break; - case 48: -#line 394 "perly.y" + case 51: +#line 420 "perly.y" { package((ps[(3) - (5)].val.opval)); if ((ps[(2) - (5)].val.opval)) { package_version((ps[(2) - (5)].val.opval)); } - } + ;} break; - case 49: -#line 401 "perly.y" + case 52: +#line 427 "perly.y" { /* a block is a loop that happens once */ (yyval.opval) = newWHILEOP(0, 1, (LOOP*)(OP*)NULL, (OP*)NULL, block_end((ps[(5) - (8)].val.ival), (ps[(7) - (8)].val.opval)), (OP*)NULL, 0); if (parser->copline > (line_t)(ps[(4) - (8)].val.ival)) parser->copline = (line_t)(ps[(4) - (8)].val.ival); - } + ;} break; - case 50: -#line 409 "perly.y" + case 53: +#line 435 "perly.y" { (yyval.opval) = (ps[(1) - (2)].val.opval); - } + ;} break; - case 51: -#line 413 "perly.y" + case 54: +#line 439 "perly.y" { (yyval.opval) = (OP*)NULL; parser->copline = NOLINE; - } + ;} break; - case 52: -#line 421 "perly.y" + case 55: +#line 447 "perly.y" { OP *list; if ((ps[(2) - (2)].val.opval)) { OP *term = (ps[(2) - (2)].val.opval); @@ -446,197 +480,197 @@ case 2: else parser->copline--; (yyval.opval) = newSTATEOP(0, NULL, convert(OP_FORMLINE, 0, list)); - } - break; - - case 53: -#line 438 "perly.y" - { (yyval.opval) = NULL; } - break; - - case 54: -#line 440 "perly.y" - { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); } - break; - - case 55: -#line 445 "perly.y" - { (yyval.opval) = (OP*)NULL; } + ;} break; case 56: -#line 447 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 464 "perly.y" + { (yyval.opval) = NULL; ;} break; case 57: -#line 449 "perly.y" - { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); } +#line 466 "perly.y" + { (yyval.opval) = op_unscope((ps[(2) - (3)].val.opval)); ;} break; case 58: -#line 451 "perly.y" - { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); } +#line 471 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; case 59: -#line 453 "perly.y" - { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); } +#line 473 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 60: -#line 455 "perly.y" - { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); } +#line 475 "perly.y" + { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;} break; case 61: -#line 457 "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 477 "perly.y" + { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;} break; case 62: -#line 460 "perly.y" - { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); } +#line 479 "perly.y" + { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, scalar((ps[(3) - (3)].val.opval)), (ps[(1) - (3)].val.opval)); ;} break; case 63: -#line 465 "perly.y" - { (yyval.opval) = (OP*)NULL; } +#line 481 "perly.y" + { (yyval.opval) = newLOOPOP(OPf_PARENS, 1, (ps[(3) - (3)].val.opval), (ps[(1) - (3)].val.opval)); ;} break; case 64: -#line 467 "perly.y" +#line 483 "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); ;} + break; + + case 65: +#line 486 "perly.y" + { (yyval.opval) = newWHENOP((ps[(3) - (3)].val.opval), op_scope((ps[(1) - (3)].val.opval))); ;} + break; + + case 66: +#line 491 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} + break; + + case 67: +#line 493 "perly.y" { ((ps[(2) - (2)].val.opval))->op_flags |= OPf_PARENS; (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); - } + ;} break; - case 65: -#line 472 "perly.y" + case 68: +#line 498 "perly.y" { parser->copline = (line_t)(ps[(1) - (6)].val.ival); (yyval.opval) = newCONDOP(0, newSTATEOP(OPf_SPECIAL,NULL,(ps[(3) - (6)].val.opval)), op_scope((ps[(5) - (6)].val.opval)), (ps[(6) - (6)].val.opval)); PL_hints |= HINT_BLOCK_SCOPE; - } + ;} break; - case 66: -#line 482 "perly.y" - { (yyval.opval) = (OP*)NULL; } + case 69: +#line 508 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; - case 67: -#line 484 "perly.y" - { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); } + case 70: +#line 510 "perly.y" + { (yyval.opval) = op_scope((ps[(2) - (2)].val.opval)); ;} break; - case 68: -#line 489 "perly.y" + case 71: +#line 515 "perly.y" { (yyval.ival) = (PL_min_intro_pending && PL_max_intro_pending >= PL_min_intro_pending); - intro_my(); } + intro_my(); ;} break; - case 69: -#line 495 "perly.y" - { (yyval.opval) = (OP*)NULL; } + case 72: +#line 521 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; - case 71: -#line 501 "perly.y" + case 74: +#line 527 "perly.y" { YYSTYPE tmplval; (void)scan_num("1", &tmplval); - (yyval.opval) = tmplval.opval; } - break; - - case 73: -#line 509 "perly.y" - { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); } - break; - - case 74: -#line 514 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); } - break; - - case 75: -#line 518 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); } + (yyval.opval) = tmplval.opval; ;} break; case 76: -#line 522 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); } +#line 535 "perly.y" + { (yyval.opval) = invert(scalar((ps[(1) - (1)].val.opval))); ;} break; case 77: -#line 525 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 540 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;} break; case 78: -#line 526 "perly.y" - { (yyval.opval) = (OP*)NULL; } +#line 544 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;} break; case 79: -#line 530 "perly.y" - { (yyval.ival) = start_subparse(FALSE, 0); - SAVEFREESV(PL_compcv); } +#line 548 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); intro_my(); ;} break; case 80: -#line 536 "perly.y" - { (yyval.ival) = start_subparse(FALSE, CVf_ANON); - SAVEFREESV(PL_compcv); } +#line 551 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 81: -#line 541 "perly.y" - { (yyval.ival) = start_subparse(TRUE, 0); - SAVEFREESV(PL_compcv); } +#line 552 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; - case 84: -#line 552 "perly.y" - { (yyval.opval) = (OP*)NULL; } + case 82: +#line 556 "perly.y" + { (yyval.ival) = start_subparse(FALSE, 0); + SAVEFREESV(PL_compcv); ;} break; - case 86: -#line 558 "perly.y" - { (yyval.opval) = (OP*)NULL; } + case 83: +#line 562 "perly.y" + { (yyval.ival) = start_subparse(FALSE, CVf_ANON); + SAVEFREESV(PL_compcv); ;} break; - case 87: -#line 560 "perly.y" - { (yyval.opval) = (ps[(2) - (2)].val.opval); } + case 84: +#line 567 "perly.y" + { (yyval.ival) = start_subparse(TRUE, 0); + SAVEFREESV(PL_compcv); ;} break; - case 88: -#line 562 "perly.y" - { (yyval.opval) = (OP*)NULL; } + case 87: +#line 578 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; case 89: -#line 567 "perly.y" - { (yyval.opval) = (ps[(2) - (2)].val.opval); } +#line 584 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; case 90: -#line 569 "perly.y" - { (yyval.opval) = (OP*)NULL; } +#line 586 "perly.y" + { (yyval.opval) = (ps[(2) - (2)].val.opval); ;} break; case 91: -#line 573 "perly.y" - { (yyval.opval) = (OP*)NULL; } +#line 588 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; case 92: -#line 575 "perly.y" +#line 593 "perly.y" + { (yyval.opval) = (ps[(2) - (2)].val.opval); ;} + break; + + case 93: +#line 595 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} + break; + + case 94: +#line 599 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} + break; + + case 95: +#line 601 "perly.y" { if (!FEATURE_SIGNATURES_IS_ENABLED) Perl_croak(aTHX_ "Experimental " @@ -645,461 +679,461 @@ case 2: packWARN(WARN_EXPERIMENTAL__SIGNATURES), "The signatures feature is experimental"); (yyval.opval) = parse_subsignature(); - } + ;} break; - case 93: -#line 585 "perly.y" + case 96: +#line 611 "perly.y" { (yyval.opval) = op_append_list(OP_LINESEQ, (ps[(2) - (3)].val.opval), newSTATEOP(0, NULL, sawparens(newNULLLIST()))); parser->expect = XBLOCK; - } + ;} break; - case 94: -#line 594 "perly.y" + case 97: +#line 620 "perly.y" { if (parser->copline > (line_t)(ps[(3) - (5)].val.ival)) parser->copline = (line_t)(ps[(3) - (5)].val.ival); (yyval.opval) = block_end((ps[(1) - (5)].val.ival), op_append_list(OP_LINESEQ, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval))); - } + ;} break; - case 95: -#line 603 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + case 98: +#line 629 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 96: -#line 604 "perly.y" - { (yyval.opval) = (OP*)NULL; } + case 99: +#line 630 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; - case 97: -#line 609 "perly.y" - { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } + case 100: +#line 635 "perly.y" + { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;} break; - case 98: -#line 611 "perly.y" - { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } + case 101: +#line 637 "perly.y" + { (yyval.opval) = newLOGOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;} break; - case 99: -#line 613 "perly.y" - { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } + case 102: +#line 639 "perly.y" + { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;} break; - case 101: -#line 619 "perly.y" - { (yyval.opval) = (ps[(1) - (2)].val.opval); } + case 104: +#line 645 "perly.y" + { (yyval.opval) = (ps[(1) - (2)].val.opval); ;} break; - case 102: -#line 621 "perly.y" + case 105: +#line 647 "perly.y" { OP* term = (ps[(3) - (3)].val.opval); (yyval.opval) = op_append_elem(OP_LIST, (ps[(1) - (3)].val.opval), term); - } + ;} break; - case 104: -#line 630 "perly.y" + case 107: +#line 656 "perly.y" { (yyval.opval) = convert((ps[(1) - (3)].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (3)].val.ival),(ps[(2) - (3)].val.opval)), (ps[(3) - (3)].val.opval)) ); - } + ;} break; - case 105: -#line 634 "perly.y" + case 108: +#line 660 "perly.y" { (yyval.opval) = convert((ps[(1) - (5)].val.ival), OPf_STACKED, op_prepend_elem(OP_LIST, newGVREF((ps[(1) - (5)].val.ival),(ps[(3) - (5)].val.opval)), (ps[(4) - (5)].val.opval)) ); - } + ;} break; - case 106: -#line 638 "perly.y" + case 109: +#line 664 "perly.y" { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, scalar((ps[(1) - (6)].val.opval)), (ps[(5) - (6)].val.opval)), newMETHOP(OP_METHOD, 0, (ps[(3) - (6)].val.opval)))); - } + ;} break; - case 107: -#line 644 "perly.y" + case 110: +#line 670 "perly.y" { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, scalar((ps[(1) - (3)].val.opval)), newMETHOP(OP_METHOD, 0, (ps[(3) - (3)].val.opval)))); - } + ;} break; - case 108: -#line 649 "perly.y" + case 111: +#line 675 "perly.y" { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[(2) - (3)].val.opval), (ps[(3) - (3)].val.opval)), newMETHOP(OP_METHOD, 0, (ps[(1) - (3)].val.opval)))); - } + ;} break; - case 109: -#line 655 "perly.y" + case 112: +#line 681 "perly.y" { (yyval.opval) = convert(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[(2) - (5)].val.opval), (ps[(4) - (5)].val.opval)), newMETHOP(OP_METHOD, 0, (ps[(1) - (5)].val.opval)))); - } + ;} break; - case 110: -#line 661 "perly.y" - { (yyval.opval) = convert((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); } + case 113: +#line 687 "perly.y" + { (yyval.opval) = convert((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;} break; - case 111: -#line 663 "perly.y" - { (yyval.opval) = convert((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); } + case 114: +#line 689 "perly.y" + { (yyval.opval) = convert((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;} break; - case 112: -#line 665 "perly.y" + case 115: +#line 691 "perly.y" { SvREFCNT_inc_simple_void(PL_compcv); - (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); } + (yyval.opval) = newANONATTRSUB((ps[(2) - (3)].val.ival), 0, (OP*)NULL, (ps[(3) - (3)].val.opval)); ;} break; - case 113: -#line 668 "perly.y" + case 116: +#line 694 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, op_prepend_elem(OP_LIST, (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)), (ps[(1) - (5)].val.opval))); - } + ;} break; - case 116: -#line 683 "perly.y" - { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); } + case 119: +#line 709 "perly.y" + { (yyval.opval) = newBINOP(OP_GELEM, 0, (ps[(1) - (5)].val.opval), scalar((ps[(3) - (5)].val.opval))); ;} break; - case 117: -#line 685 "perly.y" + case 120: +#line 711 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, oopsAV((ps[(1) - (4)].val.opval)), scalar((ps[(3) - (4)].val.opval))); - } + ;} break; - case 118: -#line 688 "perly.y" + case 121: +#line 714 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[(1) - (5)].val.opval)),OP_RV2AV), scalar((ps[(4) - (5)].val.opval))); - } + ;} break; - case 119: -#line 693 "perly.y" + case 122: +#line 719 "perly.y" { (yyval.opval) = newBINOP(OP_AELEM, 0, ref(newAVREF((ps[(1) - (4)].val.opval)),OP_RV2AV), scalar((ps[(3) - (4)].val.opval))); - } + ;} break; - case 120: -#line 698 "perly.y" + case 123: +#line 724 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, oopsHV((ps[(1) - (5)].val.opval)), jmaybe((ps[(3) - (5)].val.opval))); - } + ;} break; - case 121: -#line 701 "perly.y" + case 124: +#line 727 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[(1) - (6)].val.opval)),OP_RV2HV), - jmaybe((ps[(4) - (6)].val.opval))); } + jmaybe((ps[(4) - (6)].val.opval))); ;} break; - case 122: -#line 705 "perly.y" + case 125: +#line 731 "perly.y" { (yyval.opval) = newBINOP(OP_HELEM, 0, ref(newHVREF((ps[(1) - (5)].val.opval)),OP_RV2HV), - jmaybe((ps[(3) - (5)].val.opval))); } + jmaybe((ps[(3) - (5)].val.opval))); ;} break; - case 123: -#line 709 "perly.y" + case 126: +#line 735 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, - newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); } + newCVREF(0, scalar((ps[(1) - (4)].val.opval)))); ;} break; - case 124: -#line 712 "perly.y" + case 127: +#line 738 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[(4) - (5)].val.opval), - newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); } + newCVREF(0, scalar((ps[(1) - (5)].val.opval))))); ;} break; - case 125: -#line 717 "perly.y" + case 128: +#line 743 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), - newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); } - break; - - case 126: -#line 721 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, - newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); } - break; - - case 127: -#line 724 "perly.y" - { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); } - break; - - case 128: -#line 726 "perly.y" - { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); } + newCVREF(0, scalar((ps[(1) - (4)].val.opval))))); ;} break; case 129: -#line 728 "perly.y" - { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); } +#line 747 "perly.y" + { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, + newCVREF(0, scalar((ps[(1) - (3)].val.opval)))); ;} break; case 130: -#line 733 "perly.y" - { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); } +#line 750 "perly.y" + { (yyval.opval) = newSLICEOP(0, (ps[(5) - (6)].val.opval), (ps[(2) - (6)].val.opval)); ;} break; case 131: -#line 735 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 752 "perly.y" + { (yyval.opval) = newSLICEOP(0, (ps[(3) - (4)].val.opval), (ps[(1) - (4)].val.opval)); ;} break; case 132: -#line 737 "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 754 "perly.y" + { (yyval.opval) = newSLICEOP(0, (ps[(4) - (5)].val.opval), (OP*)NULL); ;} break; case 133: -#line 742 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 759 "perly.y" + { (yyval.opval) = newASSIGNOP(OPf_STACKED, (ps[(1) - (3)].val.opval), (ps[(2) - (3)].val.ival), (ps[(3) - (3)].val.opval)); ;} break; case 134: -#line 744 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 761 "perly.y" + { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; case 135: -#line 746 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 763 "perly.y" + { if ((ps[(2) - (3)].val.ival) != OP_REPEAT) + scalar((ps[(1) - (3)].val.opval)); + (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, (ps[(1) - (3)].val.opval), scalar((ps[(3) - (3)].val.opval))); + ;} break; case 136: -#line 748 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 768 "perly.y" + { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; case 137: -#line 750 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 770 "perly.y" + { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; case 138: -#line 752 "perly.y" - { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 772 "perly.y" + { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; case 139: -#line 754 "perly.y" - { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); } +#line 774 "perly.y" + { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; case 140: -#line 756 "perly.y" - { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } +#line 776 "perly.y" + { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; case 141: -#line 758 "perly.y" - { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } +#line 778 "perly.y" + { (yyval.opval) = newBINOP((ps[(2) - (3)].val.ival), 0, scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; case 142: -#line 760 "perly.y" - { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } +#line 780 "perly.y" + { (yyval.opval) = newRANGE((ps[(2) - (3)].val.ival), scalar((ps[(1) - (3)].val.opval)), scalar((ps[(3) - (3)].val.opval))); ;} break; case 143: -#line 762 "perly.y" - { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); } +#line 782 "perly.y" + { (yyval.opval) = newLOGOP(OP_AND, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;} break; case 144: -#line 767 "perly.y" - { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); } +#line 784 "perly.y" + { (yyval.opval) = newLOGOP(OP_OR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;} break; case 145: -#line 769 "perly.y" - { (yyval.opval) = (ps[(2) - (2)].val.opval); } +#line 786 "perly.y" + { (yyval.opval) = newLOGOP(OP_DOR, 0, (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;} break; case 146: -#line 772 "perly.y" - { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); } +#line 788 "perly.y" + { (yyval.opval) = bind_match((ps[(2) - (3)].val.ival), (ps[(1) - (3)].val.opval), (ps[(3) - (3)].val.opval)); ;} break; case 147: -#line 774 "perly.y" - { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); } +#line 793 "perly.y" + { (yyval.opval) = newUNOP(OP_NEGATE, 0, scalar((ps[(2) - (2)].val.opval))); ;} break; case 148: -#line 776 "perly.y" - { (yyval.opval) = newUNOP(OP_POSTINC, 0, - op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); } +#line 795 "perly.y" + { (yyval.opval) = (ps[(2) - (2)].val.opval); ;} break; case 149: -#line 779 "perly.y" - { (yyval.opval) = newUNOP(OP_POSTDEC, 0, - op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));} +#line 798 "perly.y" + { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;} break; case 150: -#line 782 "perly.y" - { (yyval.opval) = convert(OP_JOIN, 0, - op_append_elem( - OP_LIST, - newSVREF(scalar( - newSVOP(OP_CONST,0, - newSVpvs("\"")) - )), - (ps[(1) - (2)].val.opval) - )); - } +#line 800 "perly.y" + { (yyval.opval) = newUNOP(OP_COMPLEMENT, 0, scalar((ps[(2) - (2)].val.opval))); ;} break; case 151: -#line 793 "perly.y" - { (yyval.opval) = newUNOP(OP_PREINC, 0, - op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); } +#line 802 "perly.y" + { (yyval.opval) = newUNOP(OP_POSTINC, 0, + op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTINC)); ;} break; case 152: -#line 796 "perly.y" - { (yyval.opval) = newUNOP(OP_PREDEC, 0, - op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); } +#line 805 "perly.y" + { (yyval.opval) = newUNOP(OP_POSTDEC, 0, + op_lvalue(scalar((ps[(1) - (2)].val.opval)), OP_POSTDEC));;} break; case 153: -#line 803 "perly.y" - { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); } +#line 808 "perly.y" + { (yyval.opval) = convert(OP_JOIN, 0, + op_append_elem( + OP_LIST, + newSVREF(scalar( + newSVOP(OP_CONST,0, + newSVpvs("\"")) + )), + (ps[(1) - (2)].val.opval) + )); + ;} break; case 154: -#line 805 "perly.y" - { (yyval.opval) = newANONLIST((OP*)NULL);} +#line 819 "perly.y" + { (yyval.opval) = newUNOP(OP_PREINC, 0, + op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREINC)); ;} break; case 155: -#line 807 "perly.y" - { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); } +#line 822 "perly.y" + { (yyval.opval) = newUNOP(OP_PREDEC, 0, + op_lvalue(scalar((ps[(2) - (2)].val.opval)), OP_PREDEC)); ;} break; case 156: -#line 809 "perly.y" - { (yyval.opval) = newANONHASH((OP*)NULL); } +#line 829 "perly.y" + { (yyval.opval) = newANONLIST((ps[(2) - (3)].val.opval)); ;} break; case 157: -#line 811 "perly.y" - { SvREFCNT_inc_simple_void(PL_compcv); - (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); } +#line 831 "perly.y" + { (yyval.opval) = newANONLIST((OP*)NULL);;} break; case 158: -#line 818 "perly.y" - { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));} +#line 833 "perly.y" + { (yyval.opval) = newANONHASH((ps[(2) - (4)].val.opval)); ;} break; case 159: -#line 820 "perly.y" - { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));} +#line 835 "perly.y" + { (yyval.opval) = newANONHASH((OP*)NULL); ;} break; - case 164: -#line 828 "perly.y" - { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); } + case 160: +#line 837 "perly.y" + { SvREFCNT_inc_simple_void(PL_compcv); + (yyval.opval) = newANONATTRSUB((ps[(2) - (5)].val.ival), (ps[(3) - (5)].val.opval), (ps[(4) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;} break; - case 165: -#line 830 "perly.y" - { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN)); } + case 161: +#line 844 "perly.y" + { (yyval.opval) = dofile((ps[(2) - (2)].val.opval), (ps[(1) - (2)].val.ival));;} break; - case 166: -#line 832 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + case 162: +#line 846 "perly.y" + { (yyval.opval) = newUNOP(OP_NULL, OPf_SPECIAL, op_scope((ps[(2) - (2)].val.opval)));;} break; case 167: -#line 834 "perly.y" - { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); } +#line 854 "perly.y" + { (yyval.opval) = newCONDOP(0, (ps[(1) - (5)].val.opval), (ps[(3) - (5)].val.opval), (ps[(5) - (5)].val.opval)); ;} break; case 168: -#line 836 "perly.y" - { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); } +#line 856 "perly.y" + { (yyval.opval) = newUNOP(OP_REFGEN, 0, op_lvalue((ps[(2) - (2)].val.opval),OP_REFGEN)); ;} break; case 169: -#line 838 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 858 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 170: -#line 840 "perly.y" - { (yyval.opval) = sawparens(newNULLLIST()); } +#line 860 "perly.y" + { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;} break; case 171: -#line 842 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 862 "perly.y" + { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;} break; case 172: -#line 844 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 864 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 173: -#line 846 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 866 "perly.y" + { (yyval.opval) = sawparens(newNULLLIST()); ;} break; case 174: -#line 848 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 868 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 175: -#line 850 "perly.y" - { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));} +#line 870 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 176: -#line 852 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 872 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 177: -#line 854 "perly.y" +#line 874 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} + break; + + case 178: +#line 876 "perly.y" + { (yyval.opval) = newUNOP(OP_AV2ARYLEN, 0, ref((ps[(1) - (1)].val.opval), OP_AV2ARYLEN));;} + break; + + case 179: +#line 878 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} + break; + + case 180: +#line 880 "perly.y" { (yyval.opval) = op_prepend_elem(OP_ASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_ASLICE, 0, @@ -1108,11 +1142,11 @@ case 2: if ((yyval.opval) && (ps[(1) - (4)].val.opval)) (yyval.opval)->op_private |= (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING; - } + ;} break; - case 178: -#line 864 "perly.y" + case 181: +#line 890 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVASLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVASLICE, 0, @@ -1121,11 +1155,11 @@ case 2: if ((yyval.opval) && (ps[(1) - (4)].val.opval)) (yyval.opval)->op_private |= (ps[(1) - (4)].val.opval)->op_private & OPpSLICEWARNING; - } + ;} break; - case 179: -#line 874 "perly.y" + case 182: +#line 900 "perly.y" { (yyval.opval) = op_prepend_elem(OP_HSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_HSLICE, 0, @@ -1134,11 +1168,11 @@ case 2: if ((yyval.opval) && (ps[(1) - (5)].val.opval)) (yyval.opval)->op_private |= (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING; - } + ;} break; - case 180: -#line 884 "perly.y" + case 183: +#line 910 "perly.y" { (yyval.opval) = op_prepend_elem(OP_KVHSLICE, newOP(OP_PUSHMARK, 0), newLISTOP(OP_KVHSLICE, 0, @@ -1147,157 +1181,157 @@ case 2: if ((yyval.opval) && (ps[(1) - (5)].val.opval)) (yyval.opval)->op_private |= (ps[(1) - (5)].val.opval)->op_private & OPpSLICEWARNING; - } + ;} break; - case 181: -#line 894 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + case 184: +#line 920 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; - case 182: -#line 896 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); } + case 185: +#line 922 "perly.y" + { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, scalar((ps[(1) - (1)].val.opval))); ;} break; - case 183: -#line 898 "perly.y" + case 186: +#line 924 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (3)].val.opval))); - } + ;} break; - case 184: -#line 901 "perly.y" + case 187: +#line 927 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[(3) - (4)].val.opval), scalar((ps[(1) - (4)].val.opval)))); - } + ;} break; - case 185: -#line 906 "perly.y" + case 188: +#line 932 "perly.y" { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, op_append_elem(OP_LIST, (ps[(3) - (3)].val.opval), scalar((ps[(2) - (3)].val.opval)))); - } - break; - - case 186: -#line 910 "perly.y" - { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); } - break; - - case 187: -#line 912 "perly.y" - { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); } - break; - - case 188: -#line 914 "perly.y" - { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); } + ;} break; case 189: -#line 916 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, - scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); } +#line 936 "perly.y" + { (yyval.opval) = newSVREF((ps[(1) - (4)].val.opval)); ;} break; case 190: -#line 919 "perly.y" - { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); } +#line 938 "perly.y" + { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;} break; case 191: -#line 921 "perly.y" - { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL); - PL_hints |= HINT_BLOCK_SCOPE; } +#line 940 "perly.y" + { (yyval.opval) = newHVREF((ps[(1) - (4)].val.opval)); ;} break; case 192: -#line 924 "perly.y" - { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); } +#line 942 "perly.y" + { (yyval.opval) = newUNOP(OP_ENTERSUB, 0, + scalar(newCVREF((ps[(3) - (4)].val.ival),(ps[(1) - (4)].val.opval)))); ;} break; case 193: -#line 926 "perly.y" - { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); } +#line 945 "perly.y" + { (yyval.opval) = newGVREF(0,(ps[(1) - (4)].val.opval)); ;} break; case 194: -#line 928 "perly.y" - { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); } +#line 947 "perly.y" + { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), OPf_SPECIAL); + PL_hints |= HINT_BLOCK_SCOPE; ;} break; case 195: -#line 930 "perly.y" - { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); } +#line 950 "perly.y" + { (yyval.opval) = newLOOPEX((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;} break; case 196: -#line 932 "perly.y" - { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); } +#line 952 "perly.y" + { (yyval.opval) = newUNOP(OP_NOT, 0, scalar((ps[(2) - (2)].val.opval))); ;} break; case 197: -#line 934 "perly.y" - { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); } +#line 954 "perly.y" + { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;} break; case 198: -#line 936 "perly.y" - { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); } +#line 956 "perly.y" + { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;} break; case 199: -#line 938 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); } +#line 958 "perly.y" + { (yyval.opval) = newUNOP((ps[(1) - (2)].val.ival), 0, (ps[(2) - (2)].val.opval)); ;} break; case 200: -#line 940 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, - op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); } +#line 960 "perly.y" + { (yyval.opval) = newOP(OP_REQUIRE, (ps[(1) - (1)].val.ival) ? OPf_SPECIAL : 0); ;} break; case 201: -#line 943 "perly.y" - { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); } +#line 962 "perly.y" + { (yyval.opval) = newUNOP(OP_REQUIRE, (ps[(1) - (2)].val.ival) ? OPf_SPECIAL : 0, (ps[(2) - (2)].val.opval)); ;} break; case 202: -#line 945 "perly.y" - { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);} +#line 964 "perly.y" + { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;} break; case 203: -#line 947 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 966 "perly.y" + { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, + op_append_elem(OP_LIST, (ps[(2) - (2)].val.opval), scalar((ps[(1) - (2)].val.opval)))); ;} break; case 204: -#line 949 "perly.y" - { (yyval.opval) = (ps[(1) - (3)].val.opval); } +#line 969 "perly.y" + { (yyval.opval) = newOP((ps[(1) - (1)].val.ival), 0); ;} break; case 205: -#line 951 "perly.y" - { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); } +#line 971 "perly.y" + { (yyval.opval) = newOP((ps[(1) - (3)].val.ival), 0);;} break; case 206: -#line 953 "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 973 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 207: -#line 957 "perly.y" - { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); } +#line 975 "perly.y" + { (yyval.opval) = (ps[(1) - (3)].val.opval); ;} break; case 208: -#line 959 "perly.y" +#line 977 "perly.y" + { (yyval.opval) = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar((ps[(1) - (1)].val.opval))); ;} + break; + + case 209: +#line 979 "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); ;} + break; + + case 210: +#line 983 "perly.y" + { (yyval.opval) = newUNOP((ps[(1) - (4)].val.ival), 0, (ps[(3) - (4)].val.opval)); ;} + break; + + case 211: +#line 985 "perly.y" { if ( (ps[(1) - (1)].val.opval)->op_type != OP_TRANS && (ps[(1) - (1)].val.opval)->op_type != OP_TRANSR @@ -1307,160 +1341,163 @@ case 2: SAVEFREESV(PL_compcv); } else (yyval.ival) = 0; - } + ;} break; - case 209: -#line 970 "perly.y" - { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival)); } + case 212: +#line 996 "perly.y" + { (yyval.opval) = pmruntime((ps[(1) - (5)].val.opval), (ps[(4) - (5)].val.opval), 1, (ps[(2) - (5)].val.ival)); ;} break; - case 212: -#line 974 "perly.y" + case 215: +#line 1000 "perly.y" { (yyval.opval) = newLISTOP(OP_DIE, 0, newOP(OP_PUSHMARK, 0), newSVOP(OP_CONST, 0, newSVpvs("Unimplemented"))); - } - break; - - case 214: -#line 983 "perly.y" - { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); } - break; - - case 215: -#line 985 "perly.y" - { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); } - break; - - case 216: -#line 990 "perly.y" - { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); } + ;} break; case 217: -#line 992 "perly.y" - { (yyval.opval) = sawparens(newNULLLIST()); } +#line 1009 "perly.y" + { (yyval.opval) = my_attrs((ps[(2) - (3)].val.opval),(ps[(3) - (3)].val.opval)); ;} break; case 218: -#line 995 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 1011 "perly.y" + { (yyval.opval) = localize((ps[(2) - (2)].val.opval),(ps[(1) - (2)].val.ival)); ;} break; case 219: -#line 997 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 1016 "perly.y" + { (yyval.opval) = sawparens((ps[(2) - (3)].val.opval)); ;} break; case 220: -#line 999 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 1018 "perly.y" + { (yyval.opval) = sawparens(newNULLLIST()); ;} break; case 221: -#line 1004 "perly.y" - { (yyval.opval) = (OP*)NULL; } +#line 1021 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 222: -#line 1006 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 1023 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 223: -#line 1010 "perly.y" - { (yyval.opval) = (OP*)NULL; } +#line 1025 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 224: -#line 1012 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } +#line 1030 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; case 225: -#line 1018 "perly.y" - { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); } +#line 1032 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 226: -#line 1022 "perly.y" - { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); } +#line 1036 "perly.y" + { (yyval.opval) = (OP*)NULL; ;} break; case 227: -#line 1026 "perly.y" - { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); } +#line 1038 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; case 228: -#line 1030 "perly.y" +#line 1044 "perly.y" + { parser->in_my = 0; (yyval.opval) = my((ps[(1) - (1)].val.opval)); ;} + break; + + case 234: +#line 1057 "perly.y" + { (yyval.opval) = newCVREF((ps[(1) - (2)].val.ival),(ps[(2) - (2)].val.opval)); ;} + break; + + case 235: +#line 1061 "perly.y" + { (yyval.opval) = newSVREF((ps[(2) - (2)].val.opval)); ;} + break; + + case 236: +#line 1065 "perly.y" { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival); - } + ;} break; - case 229: -#line 1036 "perly.y" + case 237: +#line 1071 "perly.y" { (yyval.opval) = newHVREF((ps[(2) - (2)].val.opval)); if ((yyval.opval)) (yyval.opval)->op_private |= (ps[(1) - (2)].val.ival); - } + ;} break; - case 230: -#line 1042 "perly.y" - { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); } + case 238: +#line 1077 "perly.y" + { (yyval.opval) = newAVREF((ps[(2) - (2)].val.opval)); ;} break; - case 231: -#line 1044 "perly.y" - { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); } + case 239: +#line 1079 "perly.y" + { (yyval.opval) = newAVREF((ps[(1) - (4)].val.opval)); ;} break; - case 232: -#line 1048 "perly.y" - { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); } + case 240: +#line 1083 "perly.y" + { (yyval.opval) = newGVREF(0,(ps[(2) - (2)].val.opval)); ;} break; - case 234: -#line 1053 "perly.y" - { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); } + case 242: +#line 1088 "perly.y" + { (yyval.opval) = newAVREF((ps[(1) - (3)].val.opval)); ;} break; - case 236: -#line 1058 "perly.y" - { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); } + case 244: +#line 1093 "perly.y" + { (yyval.opval) = newHVREF((ps[(1) - (3)].val.opval)); ;} break; - case 238: -#line 1063 "perly.y" - { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); } + case 246: +#line 1098 "perly.y" + { (yyval.opval) = newGVREF(0,(ps[(1) - (3)].val.opval)); ;} break; - case 239: -#line 1068 "perly.y" - { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); } + case 247: +#line 1103 "perly.y" + { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;} break; - case 240: -#line 1070 "perly.y" - { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); } + case 248: +#line 1105 "perly.y" + { (yyval.opval) = scalar((ps[(1) - (1)].val.opval)); ;} break; - case 241: -#line 1072 "perly.y" - { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); } + case 249: +#line 1107 "perly.y" + { (yyval.opval) = op_scope((ps[(1) - (1)].val.opval)); ;} break; - case 242: -#line 1075 "perly.y" - { (yyval.opval) = (ps[(1) - (1)].val.opval); } + case 250: +#line 1110 "perly.y" + { (yyval.opval) = (ps[(1) - (1)].val.opval); ;} break; + +/* Line 1267 of yacc.c. */ + default: break; /* Generated from: - * 3a61f8d977f9bf0c587556e88cbbdbb0e347178ba03f85de232e25817751ee3c perly.y + * e00865c409632c145afdedc53ed48cbd223351eb895754d2775ff66a5aae8533 perly.y * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl * ex: set ro: */ @@ -5,24 +5,27 @@ */ #ifdef PERL_CORE -/* A Bison parser, made by GNU Bison 2.7.12-4996. */ +/* A Bison parser, made by GNU Bison 2.3. */ -/* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - + the Free Software Foundation; either version 2, or (at your option) + any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. */ + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -33,18 +36,10 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int yydebug; -#endif - /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -133,7 +128,6 @@ extern int yydebug; ARROW = 337 }; #endif - /* Tokens. */ #define GRAMPROG 258 #define GRAMEXPR 259 @@ -217,6 +211,8 @@ extern int yydebug; #define ARROW 337 + + #ifdef PERL_IN_TOKE_C static bool S_is_opval_token(int type) { @@ -243,39 +239,23 @@ S_is_opval_token(int type) { #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { -/* Line 2053 of yacc.c */ - I32 ival; /* __DEFAULT__ (marker for regen_perly.pl; must always be 1st union member) */ char *pval; OP *opval; GV *gvval; - - -/* Line 2053 of yacc.c */ -} YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 +} +/* Line 1529 of yacc.c. */ + YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ /* Generated from: - * 3a61f8d977f9bf0c587556e88cbbdbb0e347178ba03f85de232e25817751ee3c perly.y + * e00865c409632c145afdedc53ed48cbd223351eb895754d2775ff66a5aae8533 perly.y * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl * ex: set ro: */ @@ -6,16 +6,16 @@ #define YYFINAL 14 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2763 +#define YYLAST 2784 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 104 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 74 +#define YYNNTS 77 /* YYNRULES -- Number of rules. */ -#define YYNRULES 242 +#define YYNRULES 250 /* YYNRULES -- Number of states. */ -#define YYNSTATES 476 +#define YYNSTATES 498 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -72,150 +72,155 @@ static const yytype_uint16 yyprhs[] = 24, 25, 29, 30, 34, 39, 47, 48, 53, 54, 55, 58, 59, 62, 64, 66, 69, 72, 74, 79, 80, 88, 93, 94, 102, 110, 118, 125, 132, 135, - 144, 153, 154, 155, 169, 179, 188, 196, 199, 200, - 209, 212, 214, 217, 218, 222, 224, 226, 230, 234, - 238, 242, 246, 250, 251, 254, 261, 262, 265, 266, - 267, 269, 270, 272, 274, 276, 278, 280, 282, 283, - 284, 285, 286, 288, 290, 291, 293, 294, 297, 299, - 302, 304, 305, 306, 310, 316, 318, 320, 324, 328, - 332, 334, 337, 341, 343, 347, 353, 360, 364, 368, - 374, 377, 382, 383, 389, 391, 393, 399, 404, 410, - 415, 421, 428, 434, 439, 445, 450, 454, 461, 466, - 472, 476, 480, 484, 488, 492, 496, 500, 504, 508, - 512, 516, 520, 524, 528, 531, 534, 537, 540, 543, - 546, 549, 552, 555, 559, 562, 567, 571, 577, 580, - 583, 585, 587, 589, 591, 597, 600, 602, 605, 609, - 611, 614, 616, 618, 620, 622, 624, 626, 631, 636, - 642, 648, 650, 652, 656, 661, 665, 670, 675, 680, - 685, 690, 692, 695, 698, 700, 703, 706, 708, 711, - 713, 716, 718, 722, 724, 728, 730, 734, 739, 740, - 746, 748, 750, 752, 754, 758, 761, 765, 768, 770, - 772, 774, 775, 777, 778, 780, 782, 785, 788, 791, - 794, 797, 802, 805, 807, 811, 813, 817, 819, 823, - 825, 827, 829 + 144, 153, 154, 155, 169, 179, 188, 189, 201, 211, + 219, 222, 223, 232, 235, 237, 240, 241, 245, 247, + 249, 253, 257, 261, 265, 269, 273, 274, 277, 284, + 285, 288, 289, 290, 292, 293, 295, 297, 299, 301, + 303, 305, 306, 307, 308, 309, 311, 313, 314, 316, + 317, 320, 322, 325, 327, 328, 329, 333, 339, 341, + 343, 347, 351, 355, 357, 360, 364, 366, 370, 376, + 383, 387, 391, 397, 400, 405, 406, 412, 414, 416, + 422, 427, 433, 438, 444, 451, 457, 462, 468, 473, + 477, 484, 489, 495, 499, 503, 507, 511, 515, 519, + 523, 527, 531, 535, 539, 543, 547, 551, 554, 557, + 560, 563, 566, 569, 572, 575, 578, 582, 585, 590, + 594, 600, 603, 606, 608, 610, 612, 614, 620, 623, + 625, 628, 632, 634, 637, 639, 641, 643, 645, 647, + 649, 654, 659, 665, 671, 673, 675, 679, 684, 688, + 693, 698, 703, 708, 713, 715, 718, 721, 723, 726, + 729, 731, 734, 736, 739, 741, 745, 747, 751, 753, + 757, 762, 763, 769, 771, 773, 775, 777, 781, 784, + 788, 791, 793, 795, 797, 798, 800, 801, 803, 805, + 807, 809, 811, 813, 815, 818, 821, 824, 827, 830, + 835, 838, 840, 844, 846, 850, 852, 856, 858, 860, + 862 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { 105, 0, -1, -1, 3, 106, 114, 117, -1, -1, - 4, 107, 166, -1, -1, 5, 108, 112, -1, -1, + 4, 107, 167, -1, -1, 5, 108, 112, -1, -1, 6, 109, 121, -1, -1, 7, 110, 119, -1, -1, 8, 111, 117, -1, 9, 114, 117, 10, -1, 21, 114, 20, 74, 118, 20, 22, -1, -1, 9, 116, 117, 10, -1, -1, -1, 117, 119, -1, -1, 118, - 127, -1, 121, -1, 120, -1, 36, 121, -1, 36, - 120, -1, 35, -1, 37, 142, 139, 113, -1, -1, - 38, 143, 140, 122, 144, 145, 150, -1, 40, 23, - 23, 20, -1, -1, 41, 140, 123, 23, 23, 165, - 20, -1, 44, 103, 114, 136, 102, 115, 130, -1, - 45, 103, 114, 138, 102, 115, 130, -1, 50, 103, - 114, 136, 102, 115, -1, 51, 103, 114, 136, 102, - 115, -1, 52, 112, -1, 42, 103, 114, 134, 102, - 132, 115, 131, -1, 43, 103, 114, 135, 102, 132, - 115, 131, -1, -1, -1, 49, 103, 114, 137, 20, - 124, 134, 20, 125, 132, 137, 102, 115, -1, 49, - 70, 114, 167, 103, 136, 102, 115, 131, -1, 49, - 169, 103, 114, 136, 102, 115, 131, -1, 49, 103, - 114, 136, 102, 115, 131, -1, 112, 131, -1, -1, - 40, 23, 23, 9, 114, 126, 117, 10, -1, 129, - 20, -1, 20, -1, 26, 128, -1, -1, 73, 117, - 74, -1, 1, -1, 151, -1, 151, 44, 151, -1, - 151, 45, 151, -1, 151, 42, 151, -1, 151, 43, - 135, -1, 151, 49, 151, -1, 151, 51, 151, -1, - -1, 46, 115, -1, 47, 103, 136, 102, 115, 130, - -1, -1, 48, 112, -1, -1, -1, 129, -1, -1, - 151, -1, 151, -1, 151, -1, 133, -1, 135, -1, - 23, -1, -1, -1, -1, -1, 23, -1, 28, -1, - -1, 26, -1, -1, 72, 26, -1, 72, -1, 72, - 26, -1, 72, -1, -1, -1, 103, 148, 102, -1, - 114, 147, 9, 117, 10, -1, 149, -1, 20, -1, - 151, 78, 151, -1, 151, 77, 151, -1, 151, 76, - 151, -1, 152, -1, 152, 80, -1, 152, 80, 161, - -1, 161, -1, 60, 177, 152, -1, 58, 103, 177, - 151, 102, -1, 161, 101, 155, 103, 166, 102, -1, - 161, 101, 155, -1, 24, 177, 165, -1, 25, 177, - 103, 166, 102, -1, 60, 165, -1, 58, 103, 166, - 102, -1, -1, 33, 141, 112, 154, 165, -1, 24, - -1, 169, -1, 176, 9, 151, 20, 10, -1, 169, - 11, 151, 12, -1, 161, 101, 11, 151, 12, -1, - 156, 11, 151, 12, -1, 169, 9, 151, 20, 10, - -1, 161, 101, 9, 151, 20, 10, -1, 156, 9, - 151, 20, 10, -1, 161, 101, 103, 102, -1, 161, - 101, 103, 151, 102, -1, 156, 103, 151, 102, -1, - 156, 103, 102, -1, 103, 151, 102, 11, 151, 12, - -1, 29, 11, 151, 12, -1, 103, 102, 11, 151, - 12, -1, 161, 81, 161, -1, 161, 95, 161, -1, - 161, 63, 161, -1, 161, 64, 161, -1, 161, 89, - 161, -1, 161, 61, 161, -1, 161, 62, 161, -1, - 161, 88, 161, -1, 161, 87, 161, -1, 161, 54, - 161, -1, 161, 86, 161, -1, 161, 85, 161, -1, - 161, 84, 161, -1, 161, 90, 161, -1, 13, 161, - -1, 14, 161, -1, 91, 161, -1, 92, 161, -1, - 161, 98, -1, 161, 97, -1, 161, 96, -1, 100, - 161, -1, 99, 161, -1, 11, 151, 12, -1, 11, - 12, -1, 67, 151, 20, 10, -1, 67, 20, 10, - -1, 39, 141, 144, 145, 149, -1, 66, 161, -1, - 66, 112, -1, 157, -1, 158, -1, 159, -1, 160, - -1, 161, 82, 161, 83, 161, -1, 93, 161, -1, - 163, -1, 69, 161, -1, 103, 151, 102, -1, 29, - -1, 103, 102, -1, 169, -1, 173, -1, 171, -1, - 170, -1, 172, -1, 156, -1, 174, 11, 151, 12, - -1, 175, 11, 151, 12, -1, 174, 9, 151, 20, - 10, -1, 175, 9, 151, 20, 10, -1, 26, -1, - 168, -1, 168, 103, 102, -1, 168, 103, 151, 102, - -1, 68, 143, 165, -1, 161, 101, 15, 18, -1, - 161, 101, 16, 18, -1, 161, 101, 17, 18, -1, - 161, 101, 19, 18, -1, 161, 101, 18, 18, -1, - 53, -1, 53, 161, -1, 79, 152, -1, 59, -1, - 59, 112, -1, 59, 161, -1, 71, -1, 71, 161, - -1, 32, -1, 32, 161, -1, 56, -1, 56, 103, - 102, -1, 30, -1, 30, 103, 102, -1, 31, -1, - 57, 103, 102, -1, 57, 103, 151, 102, -1, -1, - 27, 162, 103, 152, 102, -1, 23, -1, 153, -1, - 55, -1, 34, -1, 70, 164, 146, -1, 70, 164, - -1, 103, 151, 102, -1, 103, 102, -1, 169, -1, - 171, -1, 170, -1, -1, 152, -1, -1, 151, -1, - 169, -1, 19, 177, -1, 15, 177, -1, 16, 177, - -1, 17, 177, -1, 65, 177, -1, 161, 101, 65, - 18, -1, 18, 177, -1, 170, -1, 161, 101, 16, - -1, 171, -1, 161, 101, 17, -1, 173, -1, 161, - 101, 18, -1, 23, -1, 169, -1, 112, -1, 28, - -1 + 128, -1, 121, -1, 120, -1, 36, 121, -1, 36, + 120, -1, 35, -1, 37, 143, 140, 113, -1, -1, + 38, 144, 141, 122, 145, 146, 151, -1, 40, 23, + 23, 20, -1, -1, 41, 141, 123, 23, 23, 166, + 20, -1, 44, 103, 114, 137, 102, 115, 131, -1, + 45, 103, 114, 139, 102, 115, 131, -1, 50, 103, + 114, 137, 102, 115, -1, 51, 103, 114, 137, 102, + 115, -1, 52, 112, -1, 42, 103, 114, 135, 102, + 133, 115, 132, -1, 43, 103, 114, 136, 102, 133, + 115, 132, -1, -1, -1, 49, 103, 114, 138, 20, + 124, 135, 20, 125, 133, 138, 102, 115, -1, 49, + 70, 114, 168, 103, 137, 102, 115, 132, -1, 49, + 172, 103, 114, 137, 102, 115, 132, -1, -1, 49, + 93, 70, 114, 169, 126, 103, 137, 102, 115, 132, + -1, 49, 93, 170, 103, 114, 137, 102, 115, 132, + -1, 49, 103, 114, 137, 102, 115, 132, -1, 112, + 132, -1, -1, 40, 23, 23, 9, 114, 127, 117, + 10, -1, 130, 20, -1, 20, -1, 26, 129, -1, + -1, 73, 117, 74, -1, 1, -1, 152, -1, 152, + 44, 152, -1, 152, 45, 152, -1, 152, 42, 152, + -1, 152, 43, 136, -1, 152, 49, 152, -1, 152, + 51, 152, -1, -1, 46, 115, -1, 47, 103, 137, + 102, 115, 131, -1, -1, 48, 112, -1, -1, -1, + 130, -1, -1, 152, -1, 152, -1, 152, -1, 134, + -1, 136, -1, 23, -1, -1, -1, -1, -1, 23, + -1, 28, -1, -1, 26, -1, -1, 72, 26, -1, + 72, -1, 72, 26, -1, 72, -1, -1, -1, 103, + 149, 102, -1, 114, 148, 9, 117, 10, -1, 150, + -1, 20, -1, 152, 78, 152, -1, 152, 77, 152, + -1, 152, 76, 152, -1, 153, -1, 153, 80, -1, + 153, 80, 162, -1, 162, -1, 60, 180, 153, -1, + 58, 103, 180, 152, 102, -1, 162, 101, 156, 103, + 167, 102, -1, 162, 101, 156, -1, 24, 180, 166, + -1, 25, 180, 103, 167, 102, -1, 60, 166, -1, + 58, 103, 167, 102, -1, -1, 33, 142, 112, 155, + 166, -1, 24, -1, 172, -1, 179, 9, 152, 20, + 10, -1, 172, 11, 152, 12, -1, 162, 101, 11, + 152, 12, -1, 157, 11, 152, 12, -1, 172, 9, + 152, 20, 10, -1, 162, 101, 9, 152, 20, 10, + -1, 157, 9, 152, 20, 10, -1, 162, 101, 103, + 102, -1, 162, 101, 103, 152, 102, -1, 157, 103, + 152, 102, -1, 157, 103, 102, -1, 103, 152, 102, + 11, 152, 12, -1, 29, 11, 152, 12, -1, 103, + 102, 11, 152, 12, -1, 162, 81, 162, -1, 162, + 95, 162, -1, 162, 63, 162, -1, 162, 64, 162, + -1, 162, 89, 162, -1, 162, 61, 162, -1, 162, + 62, 162, -1, 162, 88, 162, -1, 162, 87, 162, + -1, 162, 54, 162, -1, 162, 86, 162, -1, 162, + 85, 162, -1, 162, 84, 162, -1, 162, 90, 162, + -1, 13, 162, -1, 14, 162, -1, 91, 162, -1, + 92, 162, -1, 162, 98, -1, 162, 97, -1, 162, + 96, -1, 100, 162, -1, 99, 162, -1, 11, 152, + 12, -1, 11, 12, -1, 67, 152, 20, 10, -1, + 67, 20, 10, -1, 39, 142, 145, 146, 150, -1, + 66, 162, -1, 66, 112, -1, 158, -1, 159, -1, + 160, -1, 161, -1, 162, 82, 162, 83, 162, -1, + 93, 162, -1, 164, -1, 69, 162, -1, 103, 152, + 102, -1, 29, -1, 103, 102, -1, 172, -1, 176, + -1, 174, -1, 173, -1, 175, -1, 157, -1, 177, + 11, 152, 12, -1, 178, 11, 152, 12, -1, 177, + 9, 152, 20, 10, -1, 178, 9, 152, 20, 10, + -1, 26, -1, 171, -1, 171, 103, 102, -1, 171, + 103, 152, 102, -1, 68, 144, 166, -1, 162, 101, + 15, 18, -1, 162, 101, 16, 18, -1, 162, 101, + 17, 18, -1, 162, 101, 19, 18, -1, 162, 101, + 18, 18, -1, 53, -1, 53, 162, -1, 79, 153, + -1, 59, -1, 59, 112, -1, 59, 162, -1, 71, + -1, 71, 162, -1, 32, -1, 32, 162, -1, 56, + -1, 56, 103, 102, -1, 30, -1, 30, 103, 102, + -1, 31, -1, 57, 103, 102, -1, 57, 103, 152, + 102, -1, -1, 27, 163, 103, 153, 102, -1, 23, + -1, 154, -1, 55, -1, 34, -1, 70, 165, 147, + -1, 70, 165, -1, 103, 152, 102, -1, 103, 102, + -1, 172, -1, 174, -1, 173, -1, -1, 153, -1, + -1, 152, -1, 172, -1, 172, -1, 173, -1, 174, + -1, 169, -1, 171, -1, 19, 180, -1, 15, 180, + -1, 16, 180, -1, 17, 180, -1, 65, 180, -1, + 162, 101, 65, 18, -1, 18, 180, -1, 173, -1, + 162, 101, 16, -1, 174, -1, 162, 101, 17, -1, + 176, -1, 162, 101, 18, -1, 23, -1, 172, -1, + 112, -1, 28, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 114, 114, 113, 123, 122, 132, 131, 144, 143, - 156, 155, 168, 167, 179, 187, 195, 198, 206, 211, - 212, 222, 223, 232, 236, 240, 244, 251, 253, 264, - 263, 295, 303, 302, 310, 316, 322, 333, 335, 337, - 344, 352, 354, 351, 370, 375, 381, 387, 394, 393, - 408, 412, 420, 438, 439, 444, 446, 448, 450, 452, - 454, 456, 459, 465, 466, 471, 482, 483, 489, 495, - 496, 501, 504, 508, 513, 517, 521, 525, 526, 530, - 536, 541, 546, 547, 552, 553, 558, 559, 561, 566, - 568, 573, 575, 574, 593, 603, 604, 608, 610, 612, - 614, 618, 620, 625, 629, 633, 637, 643, 648, 654, - 660, 662, 665, 664, 675, 676, 680, 684, 687, 692, - 697, 700, 704, 708, 711, 716, 720, 723, 725, 727, - 732, 734, 736, 741, 743, 745, 747, 749, 751, 753, - 755, 757, 759, 761, 766, 768, 771, 773, 775, 778, - 781, 792, 795, 802, 804, 806, 808, 810, 817, 819, - 823, 824, 825, 826, 827, 829, 831, 833, 835, 837, - 839, 841, 843, 845, 847, 849, 851, 853, 863, 873, - 883, 893, 895, 897, 900, 905, 909, 911, 913, 915, - 918, 920, 923, 925, 927, 929, 931, 933, 935, 937, - 939, 942, 944, 946, 948, 950, 952, 956, 959, 958, - 971, 972, 973, 978, 982, 984, 989, 991, 994, 996, - 998, 1003, 1005, 1010, 1011, 1017, 1021, 1025, 1029, 1035, - 1041, 1043, 1047, 1051, 1052, 1056, 1057, 1061, 1062, 1067, - 1069, 1071, 1074 + 0, 115, 115, 114, 124, 123, 133, 132, 145, 144, + 157, 156, 169, 168, 180, 188, 196, 199, 207, 212, + 213, 223, 224, 233, 237, 241, 245, 252, 254, 265, + 264, 296, 304, 303, 311, 317, 323, 334, 336, 338, + 345, 353, 355, 352, 371, 376, 383, 382, 398, 407, + 413, 420, 419, 434, 438, 446, 464, 465, 470, 472, + 474, 476, 478, 480, 482, 485, 491, 492, 497, 508, + 509, 515, 521, 522, 527, 530, 534, 539, 543, 547, + 551, 552, 556, 562, 567, 572, 573, 578, 579, 584, + 585, 587, 592, 594, 599, 601, 600, 619, 629, 630, + 634, 636, 638, 640, 644, 646, 651, 655, 659, 663, + 669, 674, 680, 686, 688, 691, 690, 701, 702, 706, + 710, 713, 718, 723, 726, 730, 734, 737, 742, 746, + 749, 751, 753, 758, 760, 762, 767, 769, 771, 773, + 775, 777, 779, 781, 783, 785, 787, 792, 794, 797, + 799, 801, 804, 807, 818, 821, 828, 830, 832, 834, + 836, 843, 845, 849, 850, 851, 852, 853, 855, 857, + 859, 861, 863, 865, 867, 869, 871, 873, 875, 877, + 879, 889, 899, 909, 919, 921, 923, 926, 931, 935, + 937, 939, 941, 944, 946, 949, 951, 953, 955, 957, + 959, 961, 963, 965, 968, 970, 972, 974, 976, 978, + 982, 985, 984, 997, 998, 999, 1004, 1008, 1010, 1015, + 1017, 1020, 1022, 1024, 1029, 1031, 1036, 1037, 1043, 1047, + 1048, 1049, 1052, 1053, 1056, 1060, 1064, 1070, 1076, 1078, + 1082, 1086, 1087, 1091, 1092, 1096, 1097, 1102, 1104, 1106, + 1109 }; #endif -#if YYDEBUG || YYERROR_VERBOSE || 0 +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = @@ -234,18 +239,19 @@ static const char *const yytname[] = "ANDOP", "NOTOP", "','", "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR", "ANDAND", "BITOROP", "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "REFGEN", "UMINUS", "POWOP", "POSTJOIN", "POSTDEC", "POSTINC", "PREDEC", - "PREINC", "ARROW", "')'", "'('", "$accept", "grammar", "$@1", "$@2", - "$@3", "$@4", "$@5", "$@6", "block", "formblock", "remember", "mblock", + "PREINC", "ARROW", "')'", "'('", "$accept", "grammar", "@1", "@2", "@3", + "@4", "@5", "@6", "block", "formblock", "remember", "mblock", "mremember", "stmtseq", "formstmtseq", "fullstmt", "labfullstmt", - "barestmt", "$@7", "$@8", "$@9", "$@10", "$@11", "formline", "formarg", + "barestmt", "@7", "@8", "@9", "@10", "@11", "@12", "formline", "formarg", "sideff", "else", "cont", "mintro", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "miexpr", "formname", "startsub", "startanonsub", "startformsub", "subname", "proto", "subattrlist", "myattrlist", - "subsignature", "@12", "realsubbody", "optsubbody", "expr", "listexpr", - "listop", "@13", "method", "subscripted", "termbinop", "termunop", - "anonymous", "termdo", "term", "@14", "myattrterm", "myterm", - "optlistexpr", "optexpr", "my_scalar", "amper", "scalar", "ary", "hsh", - "arylen", "star", "sliceme", "kvslice", "gelem", "indirob", YY_NULL + "subsignature", "@13", "realsubbody", "optsubbody", "expr", "listexpr", + "listop", "@14", "method", "subscripted", "termbinop", "termunop", + "anonymous", "termdo", "term", "@15", "myattrterm", "myterm", + "optlistexpr", "optexpr", "my_scalar", "my_var", "refgen_topic", "amper", + "scalar", "ary", "hsh", "arylen", "star", "sliceme", "kvslice", "gelem", + "indirob", 0 }; #endif @@ -275,27 +281,28 @@ static const yytype_uint8 yyr1[] = 110, 105, 111, 105, 112, 113, 114, 115, 116, 117, 117, 118, 118, 119, 119, 120, 120, 121, 121, 122, 121, 121, 123, 121, 121, 121, 121, 121, 121, 121, - 121, 124, 125, 121, 121, 121, 121, 121, 126, 121, - 121, 121, 127, 128, 128, 129, 129, 129, 129, 129, - 129, 129, 129, 130, 130, 130, 131, 131, 132, 133, - 133, 134, 134, 135, 136, 137, 138, 139, 139, 140, - 141, 142, 143, 143, 144, 144, 145, 145, 145, 146, - 146, 147, 148, 147, 149, 150, 150, 151, 151, 151, - 151, 152, 152, 152, 153, 153, 153, 153, 153, 153, - 153, 153, 154, 153, 155, 155, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, + 121, 124, 125, 121, 121, 121, 126, 121, 121, 121, + 121, 127, 121, 121, 121, 128, 129, 129, 130, 130, + 130, 130, 130, 130, 130, 130, 131, 131, 131, 132, + 132, 133, 134, 134, 135, 135, 136, 137, 138, 139, + 140, 140, 141, 142, 143, 144, 144, 145, 145, 146, + 146, 146, 147, 147, 148, 149, 148, 150, 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, 157, 158, 158, 158, 158, 158, 158, - 158, 158, 158, 159, 159, 159, 159, 159, 160, 160, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 161, 162, 161, - 161, 161, 161, 161, 163, 163, 164, 164, 164, 164, - 164, 165, 165, 166, 166, 167, 168, 169, 170, 171, - 172, 172, 173, 174, 174, 175, 175, 176, 176, 177, - 177, 177, 177 + 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, 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, 169, + 169, 169, 170, 170, 171, 172, 173, 174, 175, 175, + 176, 177, 177, 178, 178, 179, 179, 180, 180, 180, + 180 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -305,372 +312,408 @@ static const yytype_uint8 yyr2[] = 0, 3, 0, 3, 4, 7, 0, 4, 0, 0, 2, 0, 2, 1, 1, 2, 2, 1, 4, 0, 7, 4, 0, 7, 7, 7, 6, 6, 2, 8, - 8, 0, 0, 13, 9, 8, 7, 2, 0, 8, - 2, 1, 2, 0, 3, 1, 1, 3, 3, 3, - 3, 3, 3, 0, 2, 6, 0, 2, 0, 0, - 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, - 0, 0, 1, 1, 0, 1, 0, 2, 1, 2, - 1, 0, 0, 3, 5, 1, 1, 3, 3, 3, - 1, 2, 3, 1, 3, 5, 6, 3, 3, 5, - 2, 4, 0, 5, 1, 1, 5, 4, 5, 4, - 5, 6, 5, 4, 5, 4, 3, 6, 4, 5, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 3, 2, 4, 3, 5, 2, 2, - 1, 1, 1, 1, 5, 2, 1, 2, 3, 1, - 2, 1, 1, 1, 1, 1, 1, 4, 4, 5, - 5, 1, 1, 3, 4, 3, 4, 4, 4, 4, - 4, 1, 2, 2, 1, 2, 2, 1, 2, 1, - 2, 1, 3, 1, 3, 1, 3, 4, 0, 5, - 1, 1, 1, 1, 3, 2, 3, 2, 1, 1, - 1, 0, 1, 0, 1, 1, 2, 2, 2, 2, - 2, 4, 2, 1, 3, 1, 3, 1, 3, 1, - 1, 1, 1 + 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, + 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, + 2, 1, 2, 1, 0, 0, 3, 5, 1, 1, + 3, 3, 3, 1, 2, 3, 1, 3, 5, 6, + 3, 3, 5, 2, 4, 0, 5, 1, 1, 5, + 4, 5, 4, 5, 6, 5, 4, 5, 4, 3, + 6, 4, 5, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 3, 2, 4, 3, + 5, 2, 2, 1, 1, 1, 1, 5, 2, 1, + 2, 3, 1, 2, 1, 1, 1, 1, 1, 1, + 4, 4, 5, 5, 1, 1, 3, 4, 3, 4, + 4, 4, 4, 4, 1, 2, 2, 1, 2, 2, + 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, + 4, 0, 5, 1, 1, 1, 1, 3, 2, 3, + 2, 1, 1, 1, 0, 1, 0, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 4, + 2, 1, 3, 1, 3, 1, 3, 1, 1, 1, + 1 }; -/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE doesn't specify something else to do. Zero +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 2, 4, 6, 8, 10, 12, 0, 16, 223, + 0, 2, 4, 6, 8, 10, 12, 0, 16, 226, 0, 0, 0, 19, 1, 19, 0, 0, 0, 0, - 0, 0, 0, 0, 210, 0, 0, 181, 208, 169, - 203, 205, 199, 80, 213, 80, 191, 212, 201, 0, - 0, 194, 221, 0, 0, 0, 0, 0, 0, 197, - 0, 0, 0, 0, 0, 0, 0, 224, 100, 211, - 176, 160, 161, 162, 163, 103, 166, 5, 182, 171, - 174, 173, 175, 172, 0, 0, 0, 16, 7, 55, - 51, 27, 81, 0, 0, 79, 0, 0, 0, 0, - 0, 0, 0, 0, 66, 9, 0, 56, 0, 11, - 24, 23, 0, 0, 154, 0, 144, 145, 239, 242, - 241, 240, 227, 228, 229, 232, 226, 221, 0, 0, - 0, 0, 200, 0, 84, 192, 0, 0, 223, 195, - 196, 239, 222, 110, 240, 0, 230, 159, 158, 0, - 0, 82, 83, 221, 167, 0, 215, 218, 220, 219, - 198, 193, 146, 147, 165, 152, 151, 170, 0, 0, - 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 213, 0, 0, 184, 211, 172, + 206, 208, 202, 83, 216, 83, 194, 215, 204, 0, + 0, 197, 224, 0, 0, 0, 0, 0, 0, 200, + 0, 0, 0, 0, 0, 0, 0, 227, 103, 214, + 179, 163, 164, 165, 166, 106, 169, 5, 185, 174, + 177, 176, 178, 175, 0, 0, 0, 16, 7, 58, + 54, 27, 84, 0, 0, 82, 0, 0, 0, 0, + 0, 0, 0, 0, 69, 9, 0, 59, 0, 11, + 24, 23, 0, 0, 157, 0, 147, 148, 247, 250, + 249, 248, 235, 236, 237, 240, 234, 224, 0, 0, + 0, 0, 203, 0, 87, 195, 0, 0, 226, 198, + 199, 247, 225, 113, 248, 0, 238, 162, 161, 0, + 0, 85, 86, 224, 170, 0, 218, 221, 223, 222, + 201, 196, 149, 150, 168, 155, 154, 173, 0, 0, + 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 150, 149, 148, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 19, 78, 79, 0, 32, 16, 16, - 16, 16, 16, 16, 0, 16, 16, 38, 0, 47, - 50, 0, 0, 0, 0, 0, 0, 26, 25, 20, - 153, 108, 223, 0, 0, 204, 112, 85, 86, 202, - 206, 0, 0, 0, 104, 156, 0, 185, 217, 0, - 90, 214, 0, 168, 99, 98, 97, 102, 0, 0, - 126, 0, 139, 135, 136, 132, 133, 130, 0, 142, - 141, 140, 138, 137, 134, 143, 131, 0, 0, 0, - 234, 236, 238, 0, 114, 0, 0, 107, 115, 183, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, - 0, 29, 0, 0, 71, 0, 0, 0, 0, 0, - 16, 0, 0, 67, 59, 60, 73, 57, 58, 61, - 62, 0, 0, 128, 221, 88, 16, 207, 111, 0, - 155, 216, 89, 0, 0, 0, 119, 125, 0, 0, - 0, 186, 187, 188, 190, 189, 231, 123, 0, 223, - 184, 0, 117, 0, 177, 0, 178, 0, 14, 16, - 28, 84, 16, 31, 0, 0, 72, 0, 0, 74, - 76, 0, 0, 225, 70, 75, 0, 0, 56, 0, - 0, 0, 109, 209, 113, 87, 91, 157, 105, 129, - 0, 122, 164, 0, 118, 124, 0, 120, 179, 180, - 116, 0, 86, 48, 221, 68, 68, 0, 0, 0, - 0, 41, 0, 0, 0, 92, 0, 127, 121, 106, - 0, 16, 19, 0, 0, 0, 18, 63, 63, 0, - 66, 71, 0, 36, 37, 0, 19, 21, 96, 95, - 30, 0, 33, 66, 66, 19, 0, 0, 34, 35, - 0, 46, 0, 66, 93, 0, 0, 49, 39, 40, - 0, 64, 0, 66, 42, 45, 94, 0, 53, 22, - 17, 0, 44, 68, 15, 19, 52, 0, 0, 0, - 63, 0, 54, 65, 0, 43 + 0, 153, 152, 151, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 19, 81, 82, 0, 32, 16, 16, + 16, 16, 16, 0, 16, 0, 16, 16, 38, 0, + 50, 53, 0, 0, 0, 0, 0, 0, 26, 25, + 20, 156, 111, 226, 0, 0, 207, 115, 88, 89, + 205, 209, 0, 0, 0, 107, 159, 0, 188, 220, + 0, 93, 217, 0, 171, 102, 101, 100, 105, 0, + 0, 129, 0, 142, 138, 139, 135, 136, 133, 0, + 145, 144, 143, 141, 140, 137, 146, 134, 0, 0, + 0, 242, 244, 246, 0, 117, 0, 0, 110, 118, + 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 80, 0, 29, 0, 0, 74, 0, 0, 0, 0, + 16, 232, 0, 233, 229, 230, 231, 0, 16, 0, + 0, 70, 62, 63, 76, 60, 61, 64, 65, 0, + 0, 131, 224, 91, 16, 210, 114, 0, 158, 219, + 92, 0, 0, 0, 122, 128, 0, 0, 0, 189, + 190, 191, 193, 192, 239, 126, 0, 226, 187, 0, + 120, 0, 180, 0, 181, 0, 14, 16, 28, 87, + 16, 31, 0, 0, 75, 0, 0, 77, 79, 0, + 0, 228, 0, 16, 73, 78, 0, 0, 59, 0, + 0, 0, 112, 212, 116, 90, 94, 160, 108, 132, + 0, 125, 167, 0, 121, 127, 0, 123, 182, 183, + 119, 0, 89, 51, 224, 71, 71, 0, 0, 0, + 46, 0, 0, 41, 0, 0, 0, 95, 0, 130, + 124, 109, 0, 16, 19, 0, 0, 0, 18, 66, + 66, 0, 0, 0, 69, 74, 0, 36, 37, 0, + 19, 21, 99, 98, 30, 0, 33, 69, 69, 19, + 0, 0, 34, 35, 0, 0, 0, 49, 0, 69, + 96, 0, 0, 52, 39, 40, 0, 67, 0, 69, + 0, 69, 42, 45, 97, 0, 56, 22, 17, 0, + 44, 0, 48, 71, 15, 19, 55, 0, 69, 0, + 0, 66, 47, 0, 57, 68, 0, 43 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 7, 8, 9, 10, 11, 12, 13, 110, 350, - 376, 417, 435, 102, 446, 219, 100, 101, 351, 293, - 421, 463, 412, 459, 466, 96, 438, 209, 414, 365, - 355, 305, 358, 367, 361, 290, 197, 123, 194, 143, - 228, 316, 241, 406, 425, 377, 430, 97, 58, 59, - 314, 277, 60, 61, 62, 63, 64, 65, 119, 66, - 146, 133, 67, 362, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 112 + -1, 7, 8, 9, 10, 11, 12, 13, 110, 358, + 386, 429, 449, 102, 462, 220, 100, 101, 359, 294, + 435, 483, 432, 424, 477, 486, 96, 452, 210, 426, + 375, 363, 313, 366, 377, 369, 291, 197, 123, 194, + 143, 229, 324, 242, 418, 439, 387, 444, 97, 58, + 59, 322, 278, 60, 61, 62, 63, 64, 65, 119, + 66, 146, 133, 67, 370, 301, 302, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 112 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -409 +#define YYPACT_NINF -416 static const yytype_int16 yypact[] = { - 706, -409, -409, -409, -409, -409, -409, 19, -409, 2549, - 2, 1201, 1108, -409, -409, -409, 1809, 2549, 2549, 50, - 50, 50, 50, 50, -409, 50, 50, -409, -409, 52, - -74, -409, 2549, -409, -409, -409, 2549, -409, -67, -54, - -9, 1716, 1623, 50, 1716, 1900, 46, 2549, 40, 2549, - 2549, 2549, 2549, 2549, 2549, 2549, 1991, 274, 20, -409, - 11, -409, -409, -409, -409, 2617, -409, -409, -8, 98, - 107, 220, -409, 61, 229, 263, 92, -409, -409, -409, - -409, -409, -409, 46, 106, -409, 37, 41, 47, 63, - 1, 100, 111, 2, 73, -409, 135, 368, 1108, -409, - -409, -409, 447, 542, -409, 9, 432, 432, -409, -409, - -409, -409, -409, -409, -409, -409, -409, 2549, 130, 134, - 2549, 124, 280, 2, 137, 2617, 141, 2084, 1623, -409, - 280, 1529, 20, -409, 1450, 2549, -409, -409, 280, 184, - 3, -409, -409, 2549, 280, 2177, 170, -409, -409, -409, - 280, 20, 432, 432, 432, 296, 296, 251, -50, 2549, - 2549, 2549, 2549, 2549, 2549, 2270, 2549, 2549, 2549, 2549, - 2549, 2549, 2549, 2549, 2549, 2549, 2549, 2549, 2549, 2549, - 2549, -409, -409, -409, 252, 2363, 2549, 2549, 2549, 2549, - 2549, 2549, 2549, -409, 243, -409, 256, -409, -409, -409, - -409, -409, -409, -409, 172, -409, -409, -409, 2, -409, - -409, 2549, 2549, 2549, 2549, 2549, 2549, -409, -409, -409, - -409, -409, 2549, 2549, 13, -409, -409, -409, 210, -409, - -409, 71, 181, 2549, 20, -409, 275, -409, -409, 158, - 260, -409, 2549, 293, 228, 228, -409, 2617, 99, 60, - -409, 261, 341, 1794, 1608, 527, 217, 2617, 2572, 1280, - 1280, 1420, 1499, 1701, 290, 432, 432, 2549, 2549, 136, - 292, 310, 311, 313, -409, 322, 2456, 208, -409, -409, - 271, 102, 91, 119, 94, 212, 115, 224, 637, -409, - 321, -409, 15, 323, 2549, 2549, 2549, 2549, 345, 1294, - -409, 2549, 2549, -409, 274, -409, 274, 274, 274, 274, - 274, 254, -48, -409, 2549, 336, -409, -409, -409, 417, - -409, -409, -409, 123, 2549, 354, -409, -409, 2549, 257, - 129, -409, -409, -409, -409, -409, -409, -409, 433, 2549, - -409, 355, -409, 357, -409, 358, -409, 372, -409, -409, - -409, 137, -409, -409, 361, 287, 274, 288, 297, 274, - -409, 299, 295, -409, -409, -409, 304, 388, 281, 2549, - 307, 314, -409, -409, -409, -409, 312, -409, -409, -409, - 140, -409, 2662, 410, -409, -409, 320, -409, -409, -409, - -409, 404, 210, -409, 2549, -409, -409, 423, 423, 2549, - 423, -409, 331, 423, 423, -409, 425, -409, -409, -409, - 367, 430, -409, 431, 423, 423, -409, 30, 30, 350, - 73, 2549, 423, -409, -409, 352, -409, -409, -409, -409, - -409, 732, -409, 73, 73, -409, 423, 340, -409, -409, - 423, -409, 435, 73, -409, 827, 38, -409, -409, -409, - 922, -409, 2549, 73, -409, -409, -409, 446, 384, -409, - -409, 373, -409, -409, -409, -409, -409, 423, 1387, 1015, - 30, 399, -409, -409, 423, -409 + 546, -416, -416, -416, -416, -416, -416, 24, -416, 2570, + 68, 1222, 1129, -416, -416, -416, 1830, 2570, 2570, 303, + 303, 303, 303, 303, -416, 303, 303, -416, -416, 60, + -25, -416, 2570, -416, -416, -416, 2570, -416, -2, 12, + 29, 1737, 1644, 303, 1737, 1921, 7, 2570, 4, 2570, + 2570, 2570, 2570, 2570, 2570, 2570, 2012, 272, 42, -416, + 3, -416, -416, -416, -416, 2638, -416, -416, 51, 32, + 45, 138, -416, 132, 156, 258, 146, -416, -416, -416, + -416, -416, -416, 7, 104, -416, 61, 76, 77, 87, + -8, 94, 95, 68, 123, -416, 183, 2010, 1129, -416, + -416, -416, 468, 563, -416, 20, 447, 447, -416, -416, + -416, -416, -416, -416, -416, -416, -416, 2570, 101, 129, + 2570, 131, 1906, 68, 213, 2638, 144, 2105, 1644, -416, + 1906, 1550, 42, -416, 1471, 2570, -416, -416, 1906, 237, + 130, -416, -416, 2570, 1906, 2198, 192, -416, -416, -416, + 1906, 42, 447, 447, 447, 539, 539, 259, -50, 2570, + 2570, 2570, 2570, 2570, 2570, 2291, 2570, 2570, 2570, 2570, + 2570, 2570, 2570, 2570, 2570, 2570, 2570, 2570, 2570, 2570, + 2570, -416, -416, -416, 219, 2384, 2570, 2570, 2570, 2570, + 2570, 2570, 2570, -416, 250, -416, 255, -416, -416, -416, + -416, -416, -416, 21, -416, 185, -416, -416, -416, 68, + -416, -416, 2570, 2570, 2570, 2570, 2570, 2570, -416, -416, + -416, -416, -416, 2570, 2570, 43, -416, -416, -416, 239, + -416, -416, -27, 189, 2570, 42, -416, 305, -416, -416, + 124, 287, -416, 2570, 312, 246, 246, -416, 2638, 205, + 62, -416, 318, 1303, 1815, 1629, 365, 329, 2638, 2593, + 352, 352, 1441, 1520, 1722, 288, 447, 447, 2570, 2570, + 262, 309, 320, 321, 325, -416, 328, 2477, 227, -416, + -416, 327, 222, 67, 225, 75, 243, 92, 277, 658, + -416, 336, -416, 9, 337, 2570, 2570, 2570, 2570, 357, + -416, -416, 270, -416, -416, -416, -416, 1315, -416, 2570, + 2570, -416, 272, -416, 272, 272, 272, 272, 272, 273, + -57, -416, 2570, 353, -416, -416, -416, 368, -416, -416, + -416, 96, 2570, 371, -416, -416, 2570, 285, 100, -416, + -416, -416, -416, -416, -416, -416, 438, 2570, -416, 377, + -416, 378, -416, 381, -416, 387, -416, -416, -416, 213, + -416, -416, 375, 298, 272, 299, 300, 272, -416, 307, + 304, -416, 349, -416, -416, -416, 315, 391, 291, 2570, + 319, 331, -416, -416, -416, -416, 333, -416, -416, -416, + 118, -416, 2683, 412, -416, -416, 332, -416, -416, -416, + -416, 403, 239, -416, 2570, -416, -416, 422, 422, 2570, + -416, 2570, 422, -416, 341, 422, 422, -416, 445, -416, + -416, -416, 383, 439, -416, 444, 422, 422, -416, 19, + 19, 356, 364, 369, 123, 2570, 422, -416, -416, 370, + -416, -416, -416, -416, -416, 753, -416, 123, 123, -416, + 422, 372, -416, -416, 422, 2570, 422, -416, 454, 123, + -416, 848, 13, -416, -416, -416, 943, -416, 2570, 123, + 374, 123, -416, -416, -416, 456, 416, -416, -416, 388, + -416, 422, -416, -416, -416, -416, -416, 422, 123, 1408, + 1036, 19, -416, 394, -416, -416, 422, -416 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -409, -409, -409, -409, -409, -409, -409, -409, -10, -409, - 22, -95, -409, -12, -409, 457, 422, 7, -409, -409, - -409, -409, -409, -409, -409, -294, -408, 88, -388, -409, - 103, 0, -287, 55, -409, -409, 330, 497, -409, 451, - 185, 145, -409, -409, -409, 133, -409, -3, -33, -409, - -409, -409, -409, -409, -409, -409, -409, 79, -409, -409, - -409, -110, -124, -409, -409, 18, 500, 501, -409, -409, - -409, -409, -409, 25 + -416, -416, -416, -416, -416, -416, -416, -416, -10, -416, + 17, -140, -416, -12, -416, 510, 431, 5, -416, -416, + -416, -416, -416, -416, -416, -416, -296, -415, -89, -401, + -416, 97, -187, -263, 41, -416, -416, 346, 496, -416, + 463, 196, 154, -416, -416, -416, 134, -416, -3, -33, + -416, -416, -416, -416, -416, -416, -416, -416, 82, -416, + -416, -416, -95, -118, -416, 186, -416, 359, 38, -44, + -40, -416, -416, -416, -416, -416, 47 }; /* 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 -238 + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -246 static const yytype_int16 yytable[] = { - 78, 94, 94, 103, 232, 364, 57, 221, 415, 132, - 439, 77, 366, 105, 370, 371, 19, 151, 95, 14, - 163, 220, 164, 236, 352, 313, 159, 160, 161, 121, - 15, 129, 162, 237, 137, 353, 126, 111, 111, 111, - 111, 111, 140, 111, 111, 113, 114, 115, 116, 127, - 117, 118, 243, 158, 373, 19, 20, 21, 457, 77, - 134, 111, 473, 120, 458, 19, 147, 135, 136, 141, - -237, 202, 326, 108, 142, 468, 436, 437, 109, 159, - 160, 161, 402, 207, 132, 159, 160, 161, 94, 159, - 160, 161, 94, 94, 128, 185, 106, 107, 311, 193, - 162, 192, 234, 342, 203, 218, 344, 186, 204, 187, - 132, 122, 419, 226, 165, 125, -233, 224, -233, 325, - 130, 208, 341, 138, 231, 57, 144, 346, 150, 196, - 152, 153, 154, 155, 156, 379, 159, 160, 161, 343, - 198, 384, 239, 145, 199, 77, 134, 159, 160, 161, - 200, 19, 407, 233, 331, 210, 244, 245, 246, 108, - 248, 249, 251, 227, 109, 461, 201, 159, 160, 161, - 159, 160, 161, 317, 364, 159, 160, 161, 159, 160, - 161, 288, 280, 281, 282, 283, 284, 285, 286, 287, - 312, 159, 160, 161, 235, 159, 160, 161, 303, 159, - 160, 161, 278, 205, 374, 159, 160, 161, 304, 306, - 307, 308, 309, 310, 206, 386, 159, 160, 161, 57, - 294, 295, 296, 297, 298, 299, 225, 301, 302, -235, - 319, -235, 345, 222, 159, 160, 161, 223, 188, 323, - 189, 247, 240, 229, 347, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 321, 267, 242, 268, 329, 330, 289, 269, 270, 271, - 272, 273, 190, 338, 191, 300, 274, 383, 94, 292, - 169, 132, 315, 318, 413, 320, 322, 111, 159, 160, - 161, 356, 306, 359, 306, 357, 368, 360, 359, 359, - 159, 160, 161, 418, 324, 420, 161, 179, 423, 424, - 332, 339, 180, 181, 182, 183, 363, 275, 184, 433, - 434, 380, 369, 211, 212, 213, 214, 443, 333, 334, - 215, 335, 216, 159, 160, 161, 57, 159, 160, 161, - 336, 451, 349, 169, 170, 453, 354, 159, 160, 161, - 159, 160, 161, 169, 170, 276, 372, 159, 160, 161, - 19, 132, 375, 327, 381, 387, 359, 388, 389, 178, - 179, 391, 470, 340, 393, 180, 181, 182, 183, 475, - 179, 184, 390, -74, 394, 180, 181, 182, 183, 395, - 396, 184, -238, -238, -238, -238, 359, 184, 399, 397, - 431, 398, 167, 168, 169, 170, 400, 382, 401, 403, - 211, 212, 213, 214, 445, 405, 404, 215, 356, 216, - 408, 94, 409, 450, 410, 173, 174, 175, 176, 177, - 178, 179, 416, 422, 426, 94, 180, 181, 182, 183, - 94, 427, 184, 452, 159, 160, 161, -13, 79, 359, - 428, 432, 440, 469, 444, 454, 77, 465, 16, 94, - 17, 18, 19, 20, 21, 22, 23, 80, 464, 99, - 24, 25, 26, 27, 28, 467, 29, 30, 31, 32, - 33, 34, 81, 98, 82, 83, 35, 84, 85, 86, - 87, 88, 89, 159, 160, 161, 90, 91, 92, 93, - 36, 474, 37, 38, 39, 40, 41, 42, 441, 159, - 160, 161, 43, 44, 45, 46, 47, 48, 49, 378, - 217, 448, 449, 471, 442, 291, 50, 180, 181, 182, - 183, 455, 124, 184, 195, 385, 392, 411, 51, 52, - 53, 462, -3, 79, 429, 0, 54, 55, 148, 149, - 56, 77, 0, 16, 0, 17, 18, 19, 20, 21, - 22, 23, 80, 0, 0, 24, 25, 26, 27, 28, - 0, 29, 30, 31, 32, 33, 34, 81, 98, 82, - 83, 35, 84, 85, 86, 87, 88, 89, 0, 0, - 0, 90, 91, 92, 93, 36, 0, 37, 38, 39, - 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, - 46, 47, 48, 49, 0, 0, 0, 179, 0, 0, - 0, 50, 180, 181, 182, 183, 0, 0, 184, 0, - 0, 0, 0, 51, 52, 53, 0, 0, 79, 0, - 0, 54, 55, 0, 0, 56, 77, 348, 16, 0, - 17, 18, 19, 20, 21, 22, 23, 80, 0, 0, - 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, - 33, 34, 81, 98, 82, 83, 35, 84, 85, 86, - 87, 88, 89, 0, 0, 0, 90, 91, 92, 93, - 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, - 0, 0, 43, 44, 45, 46, 47, 48, 49, 1, - 2, 3, 4, 5, 6, 0, 50, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, - 53, 0, 0, 79, 0, 0, 54, 55, 0, 0, - 56, 77, 447, 16, 0, 17, 18, 19, 20, 21, - 22, 23, 80, 0, 0, 24, 25, 26, 27, 28, - 0, 29, 30, 31, 32, 33, 34, 81, 98, 82, - 83, 35, 84, 85, 86, 87, 88, 89, 0, 0, - 0, 90, 91, 92, 93, 36, 0, 37, 38, 39, - 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, - 46, 47, 48, 49, 0, 0, 0, 0, 0, 0, - 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 51, 52, 53, 0, 0, 79, 0, - 0, 54, 55, 0, 0, 56, 77, 456, 16, 0, - 17, 18, 19, 20, 21, 22, 23, 80, 0, 0, - 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, - 33, 34, 81, 98, 82, 83, 35, 84, 85, 86, - 87, 88, 89, 0, 0, 0, 90, 91, 92, 93, - 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, - 0, 0, 43, 44, 45, 46, 47, 48, 49, 0, - 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, - 53, 0, 0, 79, 0, 0, 54, 55, 0, 0, - 56, 77, 460, 16, 0, 17, 18, 19, 20, 21, + 78, 94, 94, 103, 148, 427, 57, 19, 149, 132, + 233, 374, 163, 105, 164, 453, 95, 151, 360, 19, + 20, 21, 222, 162, 14, 15, 159, 160, 161, 361, + 141, 129, 221, 475, 137, 142, 19, 20, 21, 476, + 23, 186, 140, 187, 376, 383, 380, 381, 238, 159, + 160, 161, 244, 158, -241, 321, -241, 111, 111, 111, + 111, 111, 202, 111, 111, 450, 451, 113, 114, 115, + 116, 120, 117, 118, 334, 325, 495, 77, 121, 350, + 134, 111, 489, 208, 132, 203, 147, 352, 94, 135, + 136, 300, 94, 94, 193, 204, 159, 160, 161, 106, + 107, 126, 235, 219, 354, 319, 165, 145, 389, 365, + 132, 368, 394, 227, 122, 127, 414, 225, 125, 159, + 160, 161, 162, 130, 232, 57, 138, 196, 205, 144, + 419, 150, 128, 152, 153, 154, 155, 156, 159, 160, + 161, -245, 240, 159, 160, 161, 431, -243, 433, -243, + 237, 159, 160, 161, 185, 192, 245, 246, 247, 305, + 249, 250, 252, 306, 198, 188, 134, 189, 159, 160, + 161, 209, 159, 160, 161, 234, 159, 160, 161, 199, + 200, 289, 281, 282, 283, 284, 285, 286, 287, 288, + 201, 320, 470, 374, 159, 160, 161, 206, 207, 311, + 159, 160, 161, 211, 223, 479, 159, 160, 161, 312, + 314, 315, 316, 317, 318, 295, 296, 297, 298, 299, + 57, 307, 279, 309, 310, 333, 329, 384, 268, 396, + 269, 327, 224, 226, 270, 271, 272, 273, 274, 228, + 331, 304, 349, 275, 248, 351, 230, 236, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 353, 241, 337, 338, 190, 430, 191, + 243, 77, 434, 290, 346, 437, 438, 19, 293, 94, + 339, 159, 160, 161, 276, 108, 447, 448, 308, 132, + 109, 326, 364, 314, 367, 314, 459, 355, 159, 160, + 161, 159, 160, 161, 378, 393, 367, 367, 111, 425, + 467, 323, 77, 330, 469, 328, 471, 372, 19, 159, + 160, 161, 277, 332, 161, 379, 108, 340, 305, 390, + 347, 109, 306, 212, 213, 214, 215, 371, 341, 342, + 216, 488, 217, 343, 57, 457, 344, 491, 159, 160, + 161, 169, 170, 159, 160, 161, 497, 357, 464, 465, + 362, 159, 160, 161, 19, 20, 21, 159, 160, 161, + 473, 132, 19, 373, 401, 382, 367, 403, 179, 385, + 480, 391, 482, 180, 181, 182, 183, 397, 398, 184, + 411, 399, 169, -77, 159, 160, 161, 400, 404, 492, + 405, 406, 407, 159, 160, 161, 367, 409, 367, 408, + 304, 413, 445, 167, 168, 169, 170, 412, 392, 179, + 335, 415, 420, 422, 180, 181, 182, 183, 461, 348, + 184, 428, 364, 416, 421, 94, 417, 466, 175, 176, + 177, 178, 179, 436, 159, 160, 161, 180, 181, 182, + 183, 94, 367, 184, 440, 179, 94, 441, 454, 442, + 180, 181, 182, 183, 446, 367, 184, 455, -13, 79, + 388, 456, 460, 490, 472, 468, 481, 77, 484, 16, + 94, 17, 18, 19, 20, 21, 22, 23, 80, 485, + 487, 24, 25, 26, 27, 28, 496, 29, 30, 31, + 32, 33, 34, 81, 98, 82, 83, 35, 84, 85, + 86, 87, 88, 89, 159, 160, 161, 90, 91, 92, + 93, 36, 99, 37, 38, 39, 40, 41, 42, 218, + 493, 124, 458, 43, 44, 45, 46, 47, 48, 49, + 395, 292, 180, 181, 182, 183, 195, 50, 184, 1, + 2, 3, 4, 5, 6, 402, 423, 443, 410, 51, + 52, 53, 303, -3, 79, 0, 0, 54, 55, 0, + 0, 56, 77, 0, 16, 0, 17, 18, 19, 20, + 21, 22, 23, 80, 0, 0, 24, 25, 26, 27, + 28, 0, 29, 30, 31, 32, 33, 34, 81, 98, + 82, 83, 35, 84, 85, 86, 87, 88, 89, 0, + 0, 0, 90, 91, 92, 93, 36, 0, 37, 38, + 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, + 45, 46, 47, 48, 49, -246, -246, -246, 0, 0, + 184, 0, 50, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 52, 53, 0, 0, 79, + 0, 0, 54, 55, 0, 0, 56, 77, 356, 16, + 0, 17, 18, 19, 20, 21, 22, 23, 80, 0, + 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, + 32, 33, 34, 81, 98, 82, 83, 35, 84, 85, + 86, 87, 88, 89, 0, 0, 0, 90, 91, 92, + 93, 36, 0, 37, 38, 39, 40, 41, 42, 0, + 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, + 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, + 52, 53, 0, 0, 79, 0, 0, 54, 55, 0, + 0, 56, 77, 463, 16, 0, 17, 18, 19, 20, + 21, 22, 23, 80, 0, 0, 24, 25, 26, 27, + 28, 0, 29, 30, 31, 32, 33, 34, 81, 98, + 82, 83, 35, 84, 85, 86, 87, 88, 89, 0, + 0, 0, 90, 91, 92, 93, 36, 0, 37, 38, + 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, + 45, 46, 47, 48, 49, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 52, 53, 0, 0, 79, + 0, 0, 54, 55, 0, 0, 56, 77, 474, 16, + 0, 17, 18, 19, 20, 21, 22, 23, 80, 0, + 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, + 32, 33, 34, 81, 98, 82, 83, 35, 84, 85, + 86, 87, 88, 89, 0, 0, 0, 90, 91, 92, + 93, 36, 0, 37, 38, 39, 40, 41, 42, 0, + 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, + 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, + 52, 53, 0, 0, 79, 0, 0, 54, 55, 0, + 0, 56, 77, 478, 16, 0, 17, 18, 19, 20, + 21, 22, 23, 80, 0, 0, 24, 25, 26, 27, + 28, 0, 29, 30, 31, 32, 33, 34, 81, 98, + 82, 83, 35, 84, 85, 86, 87, 88, 89, 0, + 0, 0, 90, 91, 92, 93, 36, 0, 37, 38, + 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, + 45, 46, 47, 48, 49, 0, 0, 0, 0, 0, + 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 51, 52, 53, 79, 0, 0, + 0, 0, 54, 55, 0, 77, 56, 16, 0, 17, + 18, 19, 20, 21, 22, 23, 80, 0, 0, 24, + 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, + 34, 81, 98, 82, 83, 35, 84, 85, 86, 87, + 88, 89, 0, 0, 0, 90, 91, 92, 93, 36, + 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, + 0, 43, 44, 45, 46, 47, 48, 49, 0, 0, + 494, 0, 0, 0, 0, 50, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, + 79, 0, 0, 0, 0, 54, 55, 0, 77, 56, + 16, 0, 17, 18, 19, 20, 21, 22, 23, 80, + 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, + 31, 32, 33, 34, 81, 98, 82, 83, 35, 84, + 85, 86, 87, 88, 89, 0, 0, 0, 90, 91, + 92, 93, 36, 0, 37, 38, 39, 40, 41, 42, + 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, + 49, 0, 0, 0, 0, 0, 0, 0, 50, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 51, 52, 53, 79, 0, 0, 0, 0, 54, 55, + 0, 77, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 80, 0, 0, 24, 25, 26, 27, 28, - 0, 29, 30, 31, 32, 33, 34, 81, 98, 82, + 0, 29, 30, 31, 32, 33, 34, 81, 0, 82, 83, 35, 84, 85, 86, 87, 88, 89, 0, 0, 0, 90, 91, 92, 93, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 79, 0, 0, 0, - 0, 54, 55, 0, 77, 56, 16, 0, 17, 18, - 19, 20, 21, 22, 23, 80, 0, 0, 24, 25, + 0, 54, 55, 0, 0, 56, 16, 0, 17, 18, + 19, 20, 21, 22, 23, -72, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, - 81, 98, 82, 83, 35, 84, 85, 86, 87, 88, - 89, 0, 0, 0, 90, 91, 92, 93, 36, 0, + 0, 0, 0, 0, 35, 0, 0, -246, 0, 0, + 0, 0, 0, 0, 167, 168, 169, 170, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, - 43, 44, 45, 46, 47, 48, 49, 0, 0, 472, - 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 51, 52, 53, 79, - 0, 0, 0, 0, 54, 55, 0, 77, 56, 16, - 0, 17, 18, 19, 20, 21, 22, 23, 80, 0, + 43, 44, 45, 46, 47, 48, 49, 173, 174, 175, + 176, 177, 178, 179, 50, 0, 0, 0, 180, 181, + 182, 183, 0, 0, 184, 0, 51, 52, 53, 79, + 0, 0, 0, 0, 54, 55, 0, 0, 56, 16, + 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, - 32, 33, 34, 81, 98, 82, 83, 35, 84, 85, - 86, 87, 88, 89, 0, 0, 0, 90, 91, 92, - 93, 36, 0, 37, 38, 39, 40, 41, 42, 0, - 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, - 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, - 52, 53, 79, 0, 0, 0, 0, 54, 55, 0, - 77, 56, 16, 0, 17, 18, 19, 20, 21, 22, - 23, 80, 0, 0, 24, 25, 26, 27, 28, 0, - 29, 30, 31, 32, 33, 34, 81, 0, 82, 83, - 35, 84, 85, 86, 87, 88, 89, 0, 0, 0, - 90, 91, 92, 93, 36, 0, 37, 38, 39, 40, - 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, - 47, 48, 49, 0, 0, 0, 0, 0, 0, 0, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 51, 52, 53, 79, 0, 0, 0, 0, - 54, 55, 0, 0, 56, 16, 0, 17, 18, 19, - 20, 21, 22, 23, -69, 0, 0, 24, 25, 26, - 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, + 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, + 0, -174, 0, 43, 44, 45, 46, 47, 48, 49, + 186, 0, 187, -174, 0, 0, 0, 50, 0, 0, + 0, -174, 0, 0, 0, 0, 0, 0, 0, 51, + 52, 53, 167, 168, 169, 170, 0, 54, 55, 0, + -72, 56, 0, -174, -174, -174, -174, 0, 0, 0, + -174, 0, -174, 0, 0, -174, 0, 0, 176, 177, + 178, 179, -174, -174, -174, -174, 180, 181, 182, 183, + 0, 0, 184, 0, 0, 0, 0, -174, -174, -174, + -213, -174, -174, -174, -174, -174, -174, -174, -174, -174, + -174, -174, -213, 0, 0, 0, -174, -174, -174, -174, + -213, 0, -174, -174, 0, 0, 0, 0, 0, 0, + 0, 167, 168, 169, 170, 0, 0, 0, 0, 0, + 0, 0, -213, -213, -213, -213, 0, 0, 0, -213, + 0, -213, 0, 0, -213, 0, 0, 0, 177, 178, + 179, -213, -213, -213, -213, 180, 181, 182, 183, 0, + 0, 184, 0, 0, 0, 0, -213, -213, -213, 0, + -213, -213, -213, -213, -213, -213, -213, -213, -213, -213, + -213, 0, 0, 0, 0, -213, -213, -213, -213, 0, + 0, -213, -213, 77, 0, 16, 0, 17, 18, 19, + 20, 21, 22, 23, 0, 0, 0, 131, 25, 26, + 27, 28, 109, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, - 0, 167, 168, 169, 170, 0, 0, 36, 0, 37, + 167, -246, 169, 170, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, - 44, 45, 46, 47, 48, 49, 175, 176, 177, 178, - 179, 0, 0, 50, 0, 180, 181, 182, 183, 0, - 0, 184, 0, 0, 0, 51, 52, 53, 79, 0, - 0, 0, 0, 54, 55, 0, 0, 56, 16, 0, + 44, 45, 46, 47, 48, 49, 0, 0, 178, 179, + 0, 0, 0, 50, 180, 181, 182, 183, 0, 0, + 184, 0, 0, 0, 0, 51, 52, 53, 0, 0, + 0, 0, 0, 54, 55, 0, 77, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 167, 168, 169, 170, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, - -171, 0, 43, 44, 45, 46, 47, 48, 49, 186, - 0, 187, -171, 0, 0, 0, 50, 0, 0, 0, - -171, 0, 0, 0, 0, 0, 0, 0, 51, 52, - 53, 167, 168, 169, 170, 0, 54, 55, 0, -69, - 56, 0, -171, -171, -171, -171, 0, 0, 0, -171, - 0, -171, 0, 0, -171, 0, 0, 176, 177, 178, - 179, -171, -171, -171, -171, 180, 181, 182, 183, 0, - 0, 184, 0, 0, 0, 0, -171, -171, -171, -210, - -171, -171, -171, -171, -171, -171, -171, -171, -171, -171, - -171, -210, 0, 0, 0, -171, -171, -171, -171, -210, - 0, -171, -171, 0, 0, 0, 0, 0, 0, 0, - 167, 168, 169, 170, 0, 0, 0, 0, 0, 0, - 0, -210, -210, -210, -210, 0, 0, 0, -210, 0, - -210, 0, 0, -210, 0, 0, 0, 177, 178, 179, - -210, -210, -210, -210, 180, 181, 182, 183, 0, 0, - 184, 0, 0, 0, 0, -210, -210, -210, 0, -210, - -210, -210, -210, -210, -210, -210, -210, -210, -210, -210, - 0, 0, 0, 0, -210, -210, -210, -210, 0, 0, - -210, -210, 77, 0, 16, 0, 17, 18, 19, 20, - 21, 22, 23, 0, 0, 0, 131, 25, 26, 27, - 28, 109, 29, 30, 31, 32, 33, 34, 0, 0, - 0, 0, 35, 0, 0, 0, 0, 0, 0, 167, - -238, 169, 170, 0, 0, 0, 36, 0, 37, 38, - 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, - 45, 46, 47, 48, 49, 0, 0, 178, 179, 0, - 0, 0, 50, 180, 181, 182, 183, 0, 0, 184, - 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, - 0, 0, 54, 55, 0, 77, 56, 16, 0, 17, - 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, - 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, - 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, - 0, 0, 167, 168, 169, 170, 0, 0, 0, 36, - 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, - 0, 43, 44, 45, 46, 47, 48, 49, 0, 0, - 178, 179, 0, 0, 0, 50, 180, 181, 182, 183, - 0, 0, 184, 0, 0, 0, 0, 51, 52, 53, - 0, 0, 0, 0, 0, 54, 55, 0, 0, 56, - 16, 104, 17, 18, 19, 20, 21, 22, 23, 0, - 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, - 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, - 0, 0, 0, 0, 0, -238, 0, 169, 170, 0, - 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, - 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, - 49, 0, 0, 178, 179, 0, 0, 0, 50, 180, - 181, 182, 183, 0, 0, 184, 0, 0, 0, 0, - 51, 52, 53, 0, 0, 0, 0, 0, 54, 55, - 0, 16, 56, 17, 18, 19, 20, 21, 22, 23, - 139, 0, 0, 24, 25, 26, 27, 28, 0, 29, + 0, 0, 43, 44, 45, 46, 47, 48, 49, 0, + 0, 178, 179, 0, 0, 0, 50, 180, 181, 182, + 183, 0, 0, 184, 0, 0, 0, 0, 51, 52, + 53, 0, 0, 0, 0, 0, 54, 55, 0, 0, + 56, 16, 104, 17, 18, 19, 20, 21, 22, 23, + 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -246, 0, 169, 170, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, - 48, 49, 0, 0, 0, 0, 0, 0, 0, 50, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 49, 0, 0, 178, 179, 0, 0, 0, 50, + 180, 181, 182, 183, 0, 0, 184, 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, 54, 55, 0, 16, 56, 17, 18, 19, 20, 21, 22, + 23, 139, 0, 0, 24, 25, 26, 27, 28, 0, + 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, + 35, 0, 0, 0, 0, 0, 0, 0, 0, 169, + 170, 0, 0, 0, 36, 0, 37, 38, 39, 40, + 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, + 47, 48, 49, 0, 0, 178, 179, 0, 0, 0, + 50, 180, 181, 182, 183, 0, 0, 184, 0, 0, + 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, + 54, 55, 0, 16, 56, 17, 18, 19, 20, 21, + 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, + 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, + 0, 35, 212, 213, 214, 215, 0, 0, 0, 216, + 0, 217, 0, 0, 0, 36, 0, 37, 38, 39, + 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, + 46, 47, 48, 49, 0, 0, 159, 160, 161, 0, + 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, + 0, 54, 55, 0, 157, 56, 16, 0, 17, 18, + 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, + 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, + 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, + 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, + 43, 44, 45, 46, 47, 48, 49, 0, 0, 0, + 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, + 0, 0, 0, 0, 54, 55, 0, 231, 56, 16, + 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, + 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, + 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, + 0, 0, 0, 43, 44, 45, 46, 47, 48, 49, + 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, + 52, 53, 0, 0, 0, 0, 0, 54, 55, 0, + 239, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -679,7 +722,7 @@ static const yytype_int16 yytable[] = 47, 48, 49, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, - 54, 55, 0, 157, 56, 16, 0, 17, 18, 19, + 54, 55, 0, 251, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, @@ -688,7 +731,7 @@ static const yytype_int16 yytable[] = 44, 45, 46, 47, 48, 49, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, 0, 0, - 0, 0, 0, 54, 55, 0, 230, 56, 16, 0, + 0, 0, 0, 54, 55, 0, 280, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, @@ -697,267 +740,263 @@ static const yytype_int16 yytable[] = 0, 0, 43, 44, 45, 46, 47, 48, 49, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 52, - 53, 0, 0, 0, 0, 0, 54, 55, 0, 238, + 53, 0, 0, 0, 0, 0, 54, 55, 0, 345, 56, 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, 45, 46, 47, - 48, 49, 0, 0, 0, 0, 0, 0, 0, 50, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 48, 49, 0, 0, 0, 0, 0, 166, 0, 50, + 0, 0, 0, 0, 167, 168, 169, 170, 0, 0, 0, 51, 52, 53, 0, 0, 0, 0, 0, 54, - 55, 0, 250, 56, 16, 0, 17, 18, 19, 20, - 21, 22, 23, 0, 0, 0, 24, 25, 26, 27, - 28, 0, 29, 30, 31, 32, 33, 34, 0, 0, - 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 36, 0, 37, 38, - 39, 40, 41, 42, 0, 0, 0, 0, 43, 44, - 45, 46, 47, 48, 49, 0, 0, 0, 0, 0, - 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 51, 52, 53, 0, 0, 0, - 0, 0, 54, 55, 0, 279, 56, 16, 0, 17, - 18, 19, 20, 21, 22, 23, 0, 0, 0, 24, - 25, 26, 27, 28, 0, 29, 30, 31, 32, 33, - 34, 0, 0, 0, 0, 35, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, - 0, 37, 38, 39, 40, 41, 42, 0, 0, 0, - 0, 43, 44, 45, 46, 47, 48, 49, 0, 0, - 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 51, 52, 53, - 0, 0, 0, 0, 0, 54, 55, 0, 337, 56, - 16, 0, 17, 18, 19, 20, 21, 22, 23, 0, - 0, 0, 24, 25, 26, 27, 28, 0, 29, 30, - 31, 32, 33, 34, 0, 0, 0, 0, 35, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 36, 0, 37, 38, 39, 40, 41, 42, - 0, 0, 0, 0, 43, 44, 45, 46, 47, 48, - 49, 0, 0, 0, 0, 0, 166, 0, 50, 0, - 0, 0, 0, 167, 168, 169, 170, 0, 0, 0, - 51, 52, 53, 0, 0, 0, 0, 0, 54, 55, - 0, 0, 56, 171, 172, 328, 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, + 55, 0, 0, 56, 171, 172, 336, 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, 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, 0, 0, 0, 172, 0, 173, 174, 175, + 176, 177, 178, 179, 0, 0, 0, 0, 180, 181, + 182, 183, 0, 0, 184 }; -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-409))) - -#define yytable_value_is_error(Yytable_value) \ - (!!((Yytable_value) == (-238))) - static const yytype_int16 yycheck[] = { - 10, 11, 12, 15, 128, 299, 9, 117, 396, 42, - 418, 9, 299, 16, 301, 302, 15, 50, 11, 0, - 9, 12, 11, 20, 9, 12, 76, 77, 78, 103, - 8, 41, 80, 143, 44, 20, 103, 19, 20, 21, - 22, 23, 45, 25, 26, 20, 21, 22, 23, 103, - 25, 26, 102, 56, 102, 15, 16, 17, 20, 9, - 42, 43, 470, 11, 26, 15, 48, 42, 43, 23, - 9, 70, 12, 23, 28, 463, 46, 47, 28, 76, - 77, 78, 369, 93, 117, 76, 77, 78, 98, 76, - 77, 78, 102, 103, 103, 103, 17, 18, 222, 77, - 80, 9, 135, 12, 103, 98, 12, 9, 90, 11, - 143, 32, 399, 123, 103, 36, 9, 120, 11, 20, - 41, 48, 20, 44, 127, 128, 47, 12, 49, 23, - 51, 52, 53, 54, 55, 12, 76, 77, 78, 20, - 103, 12, 145, 103, 103, 9, 128, 76, 77, 78, - 103, 15, 12, 128, 18, 20, 159, 160, 161, 23, - 163, 164, 165, 26, 28, 452, 103, 76, 77, 78, - 76, 77, 78, 102, 468, 76, 77, 78, 76, 77, - 78, 193, 185, 186, 187, 188, 189, 190, 191, 192, - 223, 76, 77, 78, 10, 76, 77, 78, 208, 76, - 77, 78, 184, 103, 314, 76, 77, 78, 211, 212, - 213, 214, 215, 216, 103, 339, 76, 77, 78, 222, - 198, 199, 200, 201, 202, 203, 102, 205, 206, 9, - 233, 11, 20, 103, 76, 77, 78, 103, 9, 242, - 11, 162, 72, 102, 20, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 102, 9, 11, 11, 267, 268, 23, 15, 16, 17, - 18, 19, 9, 276, 11, 103, 24, 20, 288, 23, - 63, 314, 72, 102, 394, 10, 26, 269, 76, 77, - 78, 294, 295, 296, 297, 295, 299, 297, 301, 302, - 76, 77, 78, 398, 11, 400, 78, 90, 403, 404, - 18, 103, 95, 96, 97, 98, 298, 65, 101, 414, - 415, 324, 300, 42, 43, 44, 45, 422, 18, 18, - 49, 18, 51, 76, 77, 78, 339, 76, 77, 78, - 18, 436, 21, 63, 64, 440, 23, 76, 77, 78, - 76, 77, 78, 63, 64, 103, 102, 76, 77, 78, - 15, 394, 26, 102, 10, 10, 369, 10, 10, 89, - 90, 349, 467, 102, 352, 95, 96, 97, 98, 474, - 90, 101, 10, 102, 23, 95, 96, 97, 98, 102, - 102, 101, 96, 97, 98, 54, 399, 101, 103, 102, - 412, 102, 61, 62, 63, 64, 102, 328, 20, 102, - 42, 43, 44, 45, 426, 103, 102, 49, 421, 51, - 10, 431, 102, 435, 20, 84, 85, 86, 87, 88, - 89, 90, 9, 102, 9, 445, 95, 96, 97, 98, - 450, 74, 101, 103, 76, 77, 78, 0, 1, 452, - 20, 20, 102, 465, 102, 20, 9, 73, 11, 469, - 13, 14, 15, 16, 17, 18, 19, 20, 22, 12, - 23, 24, 25, 26, 27, 102, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 76, 77, 78, 49, 50, 51, 52, - 53, 102, 55, 56, 57, 58, 59, 60, 420, 76, - 77, 78, 65, 66, 67, 68, 69, 70, 71, 102, - 98, 433, 434, 468, 421, 195, 79, 95, 96, 97, - 98, 443, 35, 101, 83, 102, 351, 392, 91, 92, - 93, 453, 0, 1, 411, -1, 99, 100, 48, 48, - 103, 9, -1, 11, -1, 13, 14, 15, 16, 17, - 18, 19, 20, -1, -1, 23, 24, 25, 26, 27, - -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, - -1, 49, 50, 51, 52, 53, -1, 55, 56, 57, - 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, - 68, 69, 70, 71, -1, -1, -1, 90, -1, -1, - -1, 79, 95, 96, 97, 98, -1, -1, 101, -1, - -1, -1, -1, 91, 92, 93, -1, -1, 1, -1, - -1, 99, 100, -1, -1, 103, 9, 10, 11, -1, - 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, -1, -1, -1, 49, 50, 51, 52, - 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, 65, 66, 67, 68, 69, 70, 71, 3, - 4, 5, 6, 7, 8, -1, 79, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, - 93, -1, -1, 1, -1, -1, 99, 100, -1, -1, - 103, 9, 10, 11, -1, 13, 14, 15, 16, 17, - 18, 19, 20, -1, -1, 23, 24, 25, 26, 27, - -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, - -1, 49, 50, 51, 52, 53, -1, 55, 56, 57, - 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, - 68, 69, 70, 71, -1, -1, -1, -1, -1, -1, - -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 91, 92, 93, -1, -1, 1, -1, - -1, 99, 100, -1, -1, 103, 9, 10, 11, -1, - 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, -1, -1, -1, 49, 50, 51, 52, - 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, - -1, -1, 65, 66, 67, 68, 69, 70, 71, -1, - -1, -1, -1, -1, -1, -1, 79, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, - 93, -1, -1, 1, -1, -1, 99, 100, -1, -1, - 103, 9, 10, 11, -1, 13, 14, 15, 16, 17, + 10, 11, 12, 15, 48, 406, 9, 15, 48, 42, + 128, 307, 9, 16, 11, 430, 11, 50, 9, 15, + 16, 17, 117, 80, 0, 8, 76, 77, 78, 20, + 23, 41, 12, 20, 44, 28, 15, 16, 17, 26, + 19, 9, 45, 11, 307, 102, 309, 310, 143, 76, + 77, 78, 102, 56, 9, 12, 11, 19, 20, 21, + 22, 23, 70, 25, 26, 46, 47, 20, 21, 22, + 23, 11, 25, 26, 12, 102, 491, 9, 103, 12, + 42, 43, 483, 93, 117, 93, 48, 12, 98, 42, + 43, 70, 102, 103, 77, 103, 76, 77, 78, 17, + 18, 103, 135, 98, 12, 223, 103, 103, 12, 296, + 143, 298, 12, 123, 32, 103, 379, 120, 36, 76, + 77, 78, 80, 41, 127, 128, 44, 23, 90, 47, + 12, 49, 103, 51, 52, 53, 54, 55, 76, 77, + 78, 9, 145, 76, 77, 78, 409, 9, 411, 11, + 20, 76, 77, 78, 103, 9, 159, 160, 161, 203, + 163, 164, 165, 203, 103, 9, 128, 11, 76, 77, + 78, 48, 76, 77, 78, 128, 76, 77, 78, 103, + 103, 193, 185, 186, 187, 188, 189, 190, 191, 192, + 103, 224, 455, 489, 76, 77, 78, 103, 103, 209, + 76, 77, 78, 20, 103, 468, 76, 77, 78, 212, + 213, 214, 215, 216, 217, 198, 199, 200, 201, 202, + 223, 204, 184, 206, 207, 20, 102, 322, 9, 347, + 11, 234, 103, 102, 15, 16, 17, 18, 19, 26, + 243, 203, 20, 24, 162, 20, 102, 10, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 20, 72, 268, 269, 9, 408, 11, + 11, 9, 412, 23, 277, 415, 416, 15, 23, 289, + 18, 76, 77, 78, 65, 23, 426, 427, 103, 322, + 28, 102, 295, 296, 297, 298, 436, 20, 76, 77, + 78, 76, 77, 78, 307, 20, 309, 310, 270, 404, + 450, 72, 9, 26, 454, 10, 456, 300, 15, 76, + 77, 78, 103, 11, 78, 308, 23, 18, 372, 332, + 103, 28, 372, 42, 43, 44, 45, 299, 18, 18, + 49, 481, 51, 18, 347, 434, 18, 487, 76, 77, + 78, 63, 64, 76, 77, 78, 496, 21, 447, 448, + 23, 76, 77, 78, 15, 16, 17, 76, 77, 78, + 459, 404, 15, 103, 357, 102, 379, 360, 90, 26, + 469, 10, 471, 95, 96, 97, 98, 10, 10, 101, + 373, 10, 63, 102, 76, 77, 78, 10, 23, 488, + 102, 102, 102, 76, 77, 78, 409, 103, 411, 102, + 372, 20, 424, 61, 62, 63, 64, 102, 336, 90, + 102, 102, 10, 20, 95, 96, 97, 98, 440, 102, + 101, 9, 435, 102, 102, 445, 103, 449, 86, 87, + 88, 89, 90, 102, 76, 77, 78, 95, 96, 97, + 98, 461, 455, 101, 9, 90, 466, 74, 102, 20, + 95, 96, 97, 98, 20, 468, 101, 103, 0, 1, + 102, 102, 102, 485, 20, 103, 102, 9, 22, 11, + 490, 13, 14, 15, 16, 17, 18, 19, 20, 73, + 102, 23, 24, 25, 26, 27, 102, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 76, 77, 78, 49, 50, 51, + 52, 53, 12, 55, 56, 57, 58, 59, 60, 98, + 489, 35, 435, 65, 66, 67, 68, 69, 70, 71, + 102, 195, 95, 96, 97, 98, 83, 79, 101, 3, + 4, 5, 6, 7, 8, 359, 402, 423, 372, 91, + 92, 93, 203, 0, 1, -1, -1, 99, 100, -1, + -1, 103, 9, -1, 11, -1, 13, 14, 15, 16, + 17, 18, 19, 20, -1, -1, 23, 24, 25, 26, + 27, -1, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, + -1, -1, 49, 50, 51, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, + 67, 68, 69, 70, 71, 96, 97, 98, -1, -1, + 101, -1, 79, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 91, 92, 93, -1, -1, 1, + -1, -1, 99, 100, -1, -1, 103, 9, 10, 11, + -1, 13, 14, 15, 16, 17, 18, 19, 20, -1, + -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, -1, -1, -1, 49, 50, 51, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, 79, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, + 92, 93, -1, -1, 1, -1, -1, 99, 100, -1, + -1, 103, 9, 10, 11, -1, 13, 14, 15, 16, + 17, 18, 19, 20, -1, -1, 23, 24, 25, 26, + 27, -1, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, + -1, -1, 49, 50, 51, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, + 67, 68, 69, 70, 71, -1, -1, -1, -1, -1, + -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 91, 92, 93, -1, -1, 1, + -1, -1, 99, 100, -1, -1, 103, 9, 10, 11, + -1, 13, 14, 15, 16, 17, 18, 19, 20, -1, + -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, -1, -1, -1, 49, 50, 51, + 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, 79, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, + 92, 93, -1, -1, 1, -1, -1, 99, 100, -1, + -1, 103, 9, 10, 11, -1, 13, 14, 15, 16, + 17, 18, 19, 20, -1, -1, 23, 24, 25, 26, + 27, -1, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, + -1, -1, 49, 50, 51, 52, 53, -1, 55, 56, + 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, + 67, 68, 69, 70, 71, -1, -1, -1, -1, -1, + -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 91, 92, 93, 1, -1, -1, + -1, -1, 99, 100, -1, 9, 103, 11, -1, 13, + 14, 15, 16, 17, 18, 19, 20, -1, -1, 23, + 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, -1, -1, -1, 49, 50, 51, 52, 53, + -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, + -1, 65, 66, 67, 68, 69, 70, 71, -1, -1, + 74, -1, -1, -1, -1, 79, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 91, 92, 93, + 1, -1, -1, -1, -1, 99, 100, -1, 9, 103, + 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, + -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, -1, -1, -1, 49, 50, + 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, + -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, + 71, -1, -1, -1, -1, -1, -1, -1, 79, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 91, 92, 93, 1, -1, -1, -1, -1, 99, 100, + -1, 9, 103, 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, 23, 24, 25, 26, 27, - -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, + -1, 29, 30, 31, 32, 33, 34, 35, -1, 37, 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, 92, 93, 1, -1, -1, -1, - -1, 99, 100, -1, 9, 103, 11, -1, 13, 14, + -1, 99, 100, -1, -1, 103, 11, -1, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, -1, -1, -1, 49, 50, 51, 52, 53, -1, + -1, -1, -1, -1, 39, -1, -1, 54, -1, -1, + -1, -1, -1, -1, 61, 62, 63, 64, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, - 65, 66, 67, 68, 69, 70, 71, -1, -1, 74, - -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91, 92, 93, 1, - -1, -1, -1, -1, 99, 100, -1, 9, 103, 11, - -1, 13, 14, 15, 16, 17, 18, 19, 20, -1, + 65, 66, 67, 68, 69, 70, 71, 84, 85, 86, + 87, 88, 89, 90, 79, -1, -1, -1, 95, 96, + 97, 98, -1, -1, 101, -1, 91, 92, 93, 1, + -1, -1, -1, -1, 99, 100, -1, -1, 103, 11, + -1, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, -1, -1, -1, 49, 50, 51, - 52, 53, -1, 55, 56, 57, 58, 59, 60, -1, - -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, - -1, -1, -1, -1, -1, -1, -1, 79, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, - 92, 93, 1, -1, -1, -1, -1, 99, 100, -1, - 9, 103, 11, -1, 13, 14, 15, 16, 17, 18, - 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, - 29, 30, 31, 32, 33, 34, 35, -1, 37, 38, - 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, - 49, 50, 51, 52, 53, -1, 55, 56, 57, 58, - 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, - 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, - 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 91, 92, 93, 1, -1, -1, -1, -1, - 99, 100, -1, -1, 103, 11, -1, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, 23, 24, 25, - 26, 27, -1, 29, 30, 31, 32, 33, 34, -1, + 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, 0, -1, 65, 66, 67, 68, 69, 70, 71, + 9, -1, 11, 12, -1, -1, -1, 79, -1, -1, + -1, 20, -1, -1, -1, -1, -1, -1, -1, 91, + 92, 93, 61, 62, 63, 64, -1, 99, 100, -1, + 102, 103, -1, 42, 43, 44, 45, -1, -1, -1, + 49, -1, 51, -1, -1, 54, -1, -1, 87, 88, + 89, 90, 61, 62, 63, 64, 95, 96, 97, 98, + -1, -1, 101, -1, -1, -1, -1, 76, 77, 78, + 0, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 12, -1, -1, -1, 95, 96, 97, 98, + 20, -1, 101, 102, -1, -1, -1, -1, -1, -1, + -1, 61, 62, 63, 64, -1, -1, -1, -1, -1, + -1, -1, 42, 43, 44, 45, -1, -1, -1, 49, + -1, 51, -1, -1, 54, -1, -1, -1, 88, 89, + 90, 61, 62, 63, 64, 95, 96, 97, 98, -1, + -1, 101, -1, -1, -1, -1, 76, 77, 78, -1, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, -1, -1, -1, -1, 95, 96, 97, 98, -1, + -1, 101, 102, 9, -1, 11, -1, 13, 14, 15, + 16, 17, 18, 19, -1, -1, -1, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, - -1, 61, 62, 63, 64, -1, -1, 53, -1, 55, + 61, 62, 63, 64, -1, -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, - 66, 67, 68, 69, 70, 71, 86, 87, 88, 89, - 90, -1, -1, 79, -1, 95, 96, 97, 98, -1, - -1, 101, -1, -1, -1, 91, 92, 93, 1, -1, - -1, -1, -1, 99, 100, -1, -1, 103, 11, -1, + 66, 67, 68, 69, 70, 71, -1, -1, 89, 90, + -1, -1, -1, 79, 95, 96, 97, 98, -1, -1, + 101, -1, -1, -1, -1, 91, 92, 93, -1, -1, + -1, -1, -1, 99, 100, -1, 9, 103, 11, -1, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 61, 62, 63, 64, -1, -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, - 0, -1, 65, 66, 67, 68, 69, 70, 71, 9, - -1, 11, 12, -1, -1, -1, 79, -1, -1, -1, - 20, -1, -1, -1, -1, -1, -1, -1, 91, 92, - 93, 61, 62, 63, 64, -1, 99, 100, -1, 102, - 103, -1, 42, 43, 44, 45, -1, -1, -1, 49, - -1, 51, -1, -1, 54, -1, -1, 87, 88, 89, - 90, 61, 62, 63, 64, 95, 96, 97, 98, -1, - -1, 101, -1, -1, -1, -1, 76, 77, 78, 0, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 12, -1, -1, -1, 95, 96, 97, 98, 20, - -1, 101, 102, -1, -1, -1, -1, -1, -1, -1, - 61, 62, 63, 64, -1, -1, -1, -1, -1, -1, - -1, 42, 43, 44, 45, -1, -1, -1, 49, -1, - 51, -1, -1, 54, -1, -1, -1, 88, 89, 90, - 61, 62, 63, 64, 95, 96, 97, 98, -1, -1, - 101, -1, -1, -1, -1, 76, 77, 78, -1, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - -1, -1, -1, -1, 95, 96, 97, 98, -1, -1, - 101, 102, 9, -1, 11, -1, 13, 14, 15, 16, - 17, 18, 19, -1, -1, -1, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, -1, -1, - -1, -1, 39, -1, -1, -1, -1, -1, -1, 61, - 62, 63, 64, -1, -1, -1, 53, -1, 55, 56, - 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, - 67, 68, 69, 70, 71, -1, -1, 89, 90, -1, - -1, -1, 79, 95, 96, 97, 98, -1, -1, 101, - -1, -1, -1, -1, 91, 92, 93, -1, -1, -1, - -1, -1, 99, 100, -1, 9, 103, 11, -1, 13, - 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, - 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, - 34, -1, -1, -1, -1, 39, -1, -1, -1, -1, - -1, -1, 61, 62, 63, 64, -1, -1, -1, 53, - -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, - -1, 65, 66, 67, 68, 69, 70, 71, -1, -1, - 89, 90, -1, -1, -1, 79, 95, 96, 97, 98, - -1, -1, 101, -1, -1, -1, -1, 91, 92, 93, - -1, -1, -1, -1, -1, 99, 100, -1, -1, 103, - 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, - -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, - -1, -1, -1, -1, -1, 61, -1, 63, 64, -1, - -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, - -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, - 71, -1, -1, 89, 90, -1, -1, -1, 79, 95, - 96, 97, 98, -1, -1, 101, -1, -1, -1, -1, - 91, 92, 93, -1, -1, -1, -1, -1, 99, 100, - -1, 11, 103, 13, 14, 15, 16, 17, 18, 19, - 20, -1, -1, 23, 24, 25, 26, 27, -1, 29, + -1, -1, 65, 66, 67, 68, 69, 70, 71, -1, + -1, 89, 90, -1, -1, -1, 79, 95, 96, 97, + 98, -1, -1, 101, -1, -1, -1, -1, 91, 92, + 93, -1, -1, -1, -1, -1, 99, 100, -1, -1, + 103, 11, 12, 13, 14, 15, 16, 17, 18, 19, + -1, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 61, -1, 63, 64, -1, -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, 69, - 70, 71, -1, -1, -1, -1, -1, -1, -1, 79, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 70, 71, -1, -1, 89, 90, -1, -1, -1, 79, + 95, 96, 97, 98, -1, -1, 101, -1, -1, -1, -1, 91, 92, 93, -1, -1, -1, -1, -1, 99, 100, -1, 11, 103, 13, 14, 15, 16, 17, 18, + 19, 20, -1, -1, 23, 24, 25, 26, 27, -1, + 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, + 39, -1, -1, -1, -1, -1, -1, -1, -1, 63, + 64, -1, -1, -1, 53, -1, 55, 56, 57, 58, + 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, + 69, 70, 71, -1, -1, 89, 90, -1, -1, -1, + 79, 95, 96, 97, 98, -1, -1, 101, -1, -1, + -1, -1, 91, 92, 93, -1, -1, -1, -1, -1, + 99, 100, -1, 11, 103, 13, 14, 15, 16, 17, + 18, 19, -1, -1, -1, 23, 24, 25, 26, 27, + -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, + -1, 39, 42, 43, 44, 45, -1, -1, -1, 49, + -1, 51, -1, -1, -1, 53, -1, 55, 56, 57, + 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, + 68, 69, 70, 71, -1, -1, 76, 77, 78, -1, + -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 91, 92, 93, -1, -1, -1, -1, + -1, 99, 100, -1, 102, 103, 11, -1, 13, 14, + 15, 16, 17, 18, 19, -1, -1, -1, 23, 24, + 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, + -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, + 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, + 65, 66, 67, 68, 69, 70, 71, -1, -1, -1, + -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 91, 92, 93, -1, + -1, -1, -1, -1, 99, 100, -1, 102, 103, 11, + -1, 13, 14, 15, 16, 17, 18, 19, -1, -1, + -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, + 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, + -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, + -1, -1, -1, -1, -1, -1, -1, 79, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 91, + 92, 93, -1, -1, -1, -1, -1, 99, 100, -1, + 102, 103, 11, -1, 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -991,49 +1030,21 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, 67, 68, 69, - 70, 71, -1, -1, -1, -1, -1, -1, -1, 79, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 70, 71, -1, -1, -1, -1, -1, 54, -1, 79, + -1, -1, -1, -1, 61, 62, 63, 64, -1, -1, -1, 91, 92, 93, -1, -1, -1, -1, -1, 99, - 100, -1, 102, 103, 11, -1, 13, 14, 15, 16, - 17, 18, 19, -1, -1, -1, 23, 24, 25, 26, - 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, - -1, -1, 39, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 53, -1, 55, 56, - 57, 58, 59, 60, -1, -1, -1, -1, 65, 66, - 67, 68, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 91, 92, 93, -1, -1, -1, - -1, -1, 99, 100, -1, 102, 103, 11, -1, 13, - 14, 15, 16, 17, 18, 19, -1, -1, -1, 23, - 24, 25, 26, 27, -1, 29, 30, 31, 32, 33, - 34, -1, -1, -1, -1, 39, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 53, - -1, 55, 56, 57, 58, 59, 60, -1, -1, -1, - -1, 65, 66, 67, 68, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 91, 92, 93, - -1, -1, -1, -1, -1, 99, 100, -1, 102, 103, - 11, -1, 13, 14, 15, 16, 17, 18, 19, -1, - -1, -1, 23, 24, 25, 26, 27, -1, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, 39, -1, + 100, -1, -1, 103, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, -1, -1, -1, -1, 95, 96, + 97, 98, 54, -1, 101, -1, -1, -1, -1, 61, + 62, 63, 64, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, + 82, -1, 84, 85, 86, 87, 88, 89, 90, -1, + -1, -1, -1, 95, 96, 97, 98, 54, -1, 101, + -1, -1, -1, -1, 61, 62, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 53, -1, 55, 56, 57, 58, 59, 60, - -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, - 71, -1, -1, -1, -1, -1, 54, -1, 79, -1, - -1, -1, -1, 61, 62, 63, 64, -1, -1, -1, - 91, 92, 93, -1, -1, -1, -1, -1, 99, 100, - -1, -1, 103, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, -1, -1, -1, -1, 95, 96, 97, - 98, 54, -1, 101, -1, -1, -1, -1, 61, 62, - 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 81, 82, - -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, - -1, -1, 95, 96, 97, 98, 54, -1, 101, -1, - -1, -1, -1, 61, 62, 63, 64, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 82, -1, 84, 85, 86, 87, - 88, 89, 90, -1, -1, -1, -1, 95, 96, 97, - 98, -1, -1, 101 + -1, -1, -1, -1, -1, 82, -1, 84, 85, 86, + 87, 88, 89, 90, -1, -1, -1, -1, 95, 96, + 97, 98, -1, -1, 101 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1045,49 +1056,51 @@ static const yytype_uint8 yystos[] = 16, 17, 18, 19, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 39, 53, 55, 56, 57, 58, 59, 60, 65, 66, 67, 68, 69, 70, 71, - 79, 91, 92, 93, 99, 100, 103, 151, 152, 153, - 156, 157, 158, 159, 160, 161, 163, 166, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 9, 112, 1, + 79, 91, 92, 93, 99, 100, 103, 152, 153, 154, + 157, 158, 159, 160, 161, 162, 164, 167, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 9, 112, 1, 20, 35, 37, 38, 40, 41, 42, 43, 44, 45, - 49, 50, 51, 52, 112, 121, 129, 151, 36, 119, - 120, 121, 117, 117, 12, 151, 161, 161, 23, 28, - 112, 169, 177, 177, 177, 177, 177, 177, 177, 162, - 11, 103, 161, 141, 141, 161, 103, 103, 103, 112, - 161, 23, 152, 165, 169, 177, 177, 112, 161, 20, - 151, 23, 28, 143, 161, 103, 164, 169, 170, 171, - 161, 152, 161, 161, 161, 161, 161, 102, 151, 76, + 49, 50, 51, 52, 112, 121, 130, 152, 36, 119, + 120, 121, 117, 117, 12, 152, 162, 162, 23, 28, + 112, 172, 180, 180, 180, 180, 180, 180, 180, 163, + 11, 103, 162, 142, 142, 162, 103, 103, 103, 112, + 162, 23, 153, 166, 172, 180, 180, 112, 162, 20, + 152, 23, 28, 144, 162, 103, 165, 172, 173, 174, + 162, 153, 162, 162, 162, 162, 162, 102, 152, 76, 77, 78, 80, 9, 11, 103, 54, 61, 62, 63, 64, 81, 82, 84, 85, 86, 87, 88, 89, 90, 95, 96, 97, 98, 101, 103, 9, 11, 9, 11, - 9, 11, 9, 114, 142, 143, 23, 140, 103, 103, - 103, 103, 70, 103, 169, 103, 103, 112, 48, 131, - 20, 42, 43, 44, 45, 49, 51, 120, 121, 119, - 12, 165, 103, 103, 151, 102, 112, 26, 144, 102, - 102, 151, 166, 177, 152, 10, 20, 165, 102, 151, - 72, 146, 11, 102, 151, 151, 151, 161, 151, 151, - 102, 151, 161, 161, 161, 161, 161, 161, 161, 161, - 161, 161, 161, 161, 161, 161, 161, 9, 11, 15, - 16, 17, 18, 19, 24, 65, 103, 155, 169, 102, - 151, 151, 151, 151, 151, 151, 151, 151, 117, 23, - 139, 140, 23, 123, 114, 114, 114, 114, 114, 114, - 103, 114, 114, 112, 151, 135, 151, 151, 151, 151, - 151, 166, 152, 12, 154, 72, 145, 102, 102, 151, - 10, 102, 26, 151, 11, 20, 12, 102, 83, 151, - 151, 18, 18, 18, 18, 18, 18, 102, 151, 103, - 102, 20, 12, 20, 12, 20, 12, 20, 10, 21, - 113, 122, 9, 20, 23, 134, 151, 135, 136, 151, - 135, 138, 167, 169, 129, 133, 136, 137, 151, 114, - 136, 136, 102, 102, 165, 26, 114, 149, 102, 12, - 151, 10, 161, 20, 12, 102, 166, 10, 10, 10, - 10, 114, 144, 114, 23, 102, 102, 102, 102, 103, - 102, 20, 136, 102, 102, 103, 147, 12, 10, 102, - 20, 145, 126, 165, 132, 132, 9, 115, 115, 136, - 115, 124, 102, 115, 115, 148, 9, 74, 20, 149, - 150, 117, 20, 115, 115, 116, 46, 47, 130, 130, - 102, 131, 134, 115, 102, 117, 118, 10, 131, 131, - 117, 115, 103, 115, 20, 131, 10, 20, 26, 127, - 10, 136, 131, 125, 22, 73, 128, 102, 132, 117, - 115, 137, 74, 130, 102, 115 + 9, 11, 9, 114, 143, 144, 23, 141, 103, 103, + 103, 103, 70, 93, 103, 172, 103, 103, 112, 48, + 132, 20, 42, 43, 44, 45, 49, 51, 120, 121, + 119, 12, 166, 103, 103, 152, 102, 112, 26, 145, + 102, 102, 152, 167, 180, 153, 10, 20, 166, 102, + 152, 72, 147, 11, 102, 152, 152, 152, 162, 152, + 152, 102, 152, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 9, 11, + 15, 16, 17, 18, 19, 24, 65, 103, 156, 172, + 102, 152, 152, 152, 152, 152, 152, 152, 152, 117, + 23, 140, 141, 23, 123, 114, 114, 114, 114, 114, + 70, 169, 170, 171, 172, 173, 174, 114, 103, 114, + 114, 112, 152, 136, 152, 152, 152, 152, 152, 167, + 153, 12, 155, 72, 146, 102, 102, 152, 10, 102, + 26, 152, 11, 20, 12, 102, 83, 152, 152, 18, + 18, 18, 18, 18, 18, 102, 152, 103, 102, 20, + 12, 20, 12, 20, 12, 20, 10, 21, 113, 122, + 9, 20, 23, 135, 152, 136, 137, 152, 136, 139, + 168, 172, 114, 103, 130, 134, 137, 138, 152, 114, + 137, 137, 102, 102, 166, 26, 114, 150, 102, 12, + 152, 10, 162, 20, 12, 102, 167, 10, 10, 10, + 10, 114, 145, 114, 23, 102, 102, 102, 102, 103, + 169, 114, 102, 20, 137, 102, 102, 103, 148, 12, + 10, 102, 20, 146, 127, 166, 133, 133, 9, 115, + 115, 137, 126, 137, 115, 124, 102, 115, 115, 149, + 9, 74, 20, 150, 151, 117, 20, 115, 115, 116, + 46, 47, 131, 131, 102, 103, 102, 132, 135, 115, + 102, 117, 118, 10, 132, 132, 117, 115, 103, 115, + 137, 115, 20, 132, 10, 20, 26, 128, 10, 137, + 132, 102, 132, 125, 22, 73, 129, 102, 115, 133, + 117, 115, 132, 138, 74, 131, 102, 115 }; typedef enum { @@ -1111,21 +1124,22 @@ static const toketypes yy_type_tab[] = toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, - toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, - toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_ival, toketype_opval, + toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, + toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, + toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, - toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval + toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, + toketype_opval }; /* Generated from: - * 3a61f8d977f9bf0c587556e88cbbdbb0e347178ba03f85de232e25817751ee3c perly.y + * e00865c409632c145afdedc53ed48cbd223351eb895754d2775ff66a5aae8533 perly.y * d1d4df7b8e30ac9dede664af9179e6e5e7ddc7f2ad9c4eff9e2e5b32c9e16a6e regen_perly.pl * ex: set ro: */ @@ -71,7 +71,8 @@ %type <opval> sliceme kvslice gelem %type <opval> listexpr nexpr texpr iexpr mexpr mnexpr miexpr %type <opval> optlistexpr optexpr indirob listop method -%type <opval> formname subname proto optsubbody cont my_scalar formblock +%type <opval> formname subname proto optsubbody cont my_scalar my_var +%type <opval> refgen_topic formblock %type <opval> subattrlist myattrlist myattrterm myterm %type <opval> realsubbody subsignature termbinop termunop anonymous termdo %type <opval> formstmtseq formline formarg @@ -378,6 +379,31 @@ barestmt: PLUGSTMT op_lvalue($2, OP_ENTERLOOP), $5, $7, $8)); parser->copline = (line_t)$1; } + | FOR REFGEN MY remember my_var + { parser->in_my = 0; $<opval>$ = my($5); } + '(' mexpr ')' mblock cont + { + $$ = block_end( + $4, + newFOROP(0, + op_lvalue( + newUNOP(OP_REFGEN, 0, + op_lvalue($<opval>6, + OP_REFGEN)), + OP_ENTERLOOP), + $8, $10, $11) + ); + parser->copline = (line_t)$1; + } + | FOR REFGEN refgen_topic '(' remember mexpr ')' mblock cont + { + $$ = block_end($5, newFOROP( + 0, op_lvalue(newUNOP(OP_REFGEN, 0, + op_lvalue($3, + OP_REFGEN)), + OP_ENTERLOOP), $6, $8, $9)); + parser->copline = (line_t)$1; + } | FOR '(' remember mexpr ')' mblock cont { $$ = block_end($3, @@ -1018,6 +1044,15 @@ my_scalar: scalar { parser->in_my = 0; $$ = my($1); } ; +my_var : scalar + | ary + | hsh + ; + +refgen_topic: my_var + | amper + ; + amper : '&' indirob { $$ = newCVREF($1,$2); } ; @@ -6288,6 +6288,8 @@ PP(pp_lvref) &PL_vtbl_lvref, (char *)elem, elem ? HEf_SVKEY : ARGTARG); mg->mg_private = PL_op->op_private; + if (PL_op->op_private & OPpLVREF_ITER) + mg->mg_flags |= MGf_PERSIST; if (UNLIKELY(PL_op->op_private & OPpLVAL_INTRO)) { if (elem) { MAGIC *mg; @@ -2112,7 +2112,7 @@ PP(pp_enteriter) itervar = &PAD_SVl(PL_op->op_targ); #endif } - else { /* symbol table variable */ + else if (LIKELY(isGV(TOPs))) { /* symbol table variable */ GV * const gv = MUTABLE_GV(POPs); SV** svp = &GvSV(gv); save_pushptrptr(gv, SvREFCNT_inc(*svp), SAVEt_GVSV); @@ -2120,6 +2120,14 @@ PP(pp_enteriter) itervar = (void *)gv; save_aliased_sv(gv); } + else { + SV * const sv = POPs; + assert(SvTYPE(sv) == SVt_PVMG); + assert(SvMAGIC(sv)); + assert(SvMAGIC(sv)->mg_type == PERL_MAGIC_lvref); + itervar = (void *)sv; + cxtype |= CXp_FOR_LVREF; + } if (PL_op->op_private & OPpITER_DEF) cxtype |= CXp_FOR_DEF; @@ -2133,6 +2141,8 @@ PP(pp_enteriter) if (SvTYPE(maybe_ary) != SVt_PVAV) { dPOPss; SV * const right = maybe_ary; + if (UNLIKELY(cxtype & CXp_FOR_LVREF)) + DIE(aTHX_ "Assigned value is not a reference"); SvGETMAGIC(sv); SvGETMAGIC(right); if (RANGE_IS_NUMERIC(sv,right)) { @@ -1963,6 +1963,11 @@ PP(pp_iter) sv = AvARRAY(av)[ix]; } + if (UNLIKELY(cx->cx_type & CXp_FOR_LVREF)) { + SvSetMagicSV(*itersvp, sv); + break; + } + if (LIKELY(sv)) { if (UNLIKELY(SvIS_FREED(sv))) { *itersvp = NULL; |