summaryrefslogtreecommitdiff
path: root/perly.act
diff options
context:
space:
mode:
authorDave Mitchell <davem@fdisolutions.com>2004-02-14 02:06:53 +0000
committerDave Mitchell <davem@fdisolutions.com>2004-02-14 02:06:53 +0000
commit0de566d74fdaf0a49123989fe8d4ad06603c6608 (patch)
treea7e6f359c44eb372067a0f7567f1e4ef9953ae22 /perly.act
parent21d1ba01f501963c6f61499860ffc70a78ab21c0 (diff)
downloadperl-0de566d74fdaf0a49123989fe8d4ad06603c6608.tar.gz
Switch from byacc to bison and simplify the perly.* regeneration
process p4raw-id: //depot/perl@22302
Diffstat (limited to 'perly.act')
-rw-r--r--perly.act1043
1 files changed, 1043 insertions, 0 deletions
diff --git a/perly.act b/perly.act
new file mode 100644
index 0000000000..eafa340b95
--- /dev/null
+++ b/perly.act
@@ -0,0 +1,1043 @@
+case 2:
+#line 88 "perly.y"
+ { yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); ;}
+ break;
+
+ case 3:
+#line 93 "perly.y"
+ { if (PL_copline > (line_t)yyvsp[-3].ival)
+ PL_copline = (line_t)yyvsp[-3].ival;
+ yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); ;}
+ break;
+
+ case 4:
+#line 99 "perly.y"
+ { yyval.ival = block_start(TRUE); ;}
+ break;
+
+ case 5:
+#line 103 "perly.y"
+ {
+ PL_expect = XSTATE; yyval.ival = block_start(TRUE);
+ ;}
+ break;
+
+ case 6:
+#line 110 "perly.y"
+ { if (PL_copline > (line_t)yyvsp[-3].ival)
+ PL_copline = (line_t)yyvsp[-3].ival;
+ yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); ;}
+ break;
+
+ case 7:
+#line 116 "perly.y"
+ { yyval.ival = block_start(FALSE); ;}
+ break;
+
+ case 8:
+#line 121 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 9:
+#line 123 "perly.y"
+ { yyval.opval = yyvsp[-1].opval; ;}
+ break;
+
+ case 10:
+#line 125 "perly.y"
+ { yyval.opval = append_list(OP_LINESEQ,
+ (LISTOP*)yyvsp[-1].opval, (LISTOP*)yyvsp[0].opval);
+ PL_pad_reset_pending = TRUE;
+ if (yyvsp[-1].opval && yyvsp[0].opval) PL_hints |= HINT_BLOCK_SCOPE; ;}
+ break;
+
+ case 11:
+#line 133 "perly.y"
+ { yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); ;}
+ break;
+
+ case 13:
+#line 136 "perly.y"
+ { if (yyvsp[-1].pval != Nullch) {
+ yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
+ }
+ else {
+ yyval.opval = Nullop;
+ PL_copline = NOLINE;
+ }
+ PL_expect = XSTATE; ;}
+ break;
+
+ case 14:
+#line 145 "perly.y"
+ { yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
+ PL_expect = XSTATE; ;}
+ break;
+
+ case 15:
+#line 151 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 16:
+#line 153 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 17:
+#line 155 "perly.y"
+ { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); ;}
+ break;
+
+ case 18:
+#line 157 "perly.y"
+ { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); ;}
+ break;
+
+ case 19:
+#line 159 "perly.y"
+ { yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); ;}
+ break;
+
+ case 20:
+#line 161 "perly.y"
+ { yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);;}
+ break;
+
+ case 21:
+#line 163 "perly.y"
+ { yyval.opval = newFOROP(0, Nullch, (line_t)yyvsp[-1].ival,
+ Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); ;}
+ break;
+
+ case 22:
+#line 169 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 23:
+#line 171 "perly.y"
+ { (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); ;}
+ break;
+
+ case 24:
+#line 173 "perly.y"
+ { PL_copline = (line_t)yyvsp[-5].ival;
+ yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval);
+ PL_hints |= HINT_BLOCK_SCOPE; ;}
+ break;
+
+ case 25:
+#line 180 "perly.y"
+ { PL_copline = (line_t)yyvsp[-6].ival;
+ yyval.opval = block_end(yyvsp[-4].ival,
+ newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); ;}
+ break;
+
+ case 26:
+#line 184 "perly.y"
+ { PL_copline = (line_t)yyvsp[-6].ival;
+ yyval.opval = block_end(yyvsp[-4].ival,
+ newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); ;}
+ break;
+
+ case 27:
+#line 191 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 28:
+#line 193 "perly.y"
+ { yyval.opval = scope(yyvsp[0].opval); ;}
+ break;
+
+ case 29:
+#line 198 "perly.y"
+ { PL_copline = (line_t)yyvsp[-6].ival;
+ yyval.opval = block_end(yyvsp[-4].ival,
+ newSTATEOP(0, yyvsp[-7].pval,
+ newWHILEOP(0, 1, (LOOP*)Nullop,
+ yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); ;}
+ break;
+
+ case 30:
+#line 204 "perly.y"
+ { PL_copline = (line_t)yyvsp[-6].ival;
+ yyval.opval = block_end(yyvsp[-4].ival,
+ newSTATEOP(0, yyvsp[-7].pval,
+ newWHILEOP(0, 1, (LOOP*)Nullop,
+ yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); ;}
+ break;
+
+ case 31:
+#line 210 "perly.y"
+ { yyval.opval = block_end(yyvsp[-6].ival,
+ newFOROP(0, yyvsp[-9].pval, (line_t)yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
+ break;
+
+ case 32:
+#line 213 "perly.y"
+ { yyval.opval = block_end(yyvsp[-4].ival,
+ newFOROP(0, yyvsp[-8].pval, (line_t)yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
+ yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
+ break;
+
+ case 33:
+#line 217 "perly.y"
+ { yyval.opval = block_end(yyvsp[-4].ival,
+ newFOROP(0, yyvsp[-7].pval, (line_t)yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); ;}
+ break;
+
+ case 34:
+#line 221 "perly.y"
+ { OP *forop;
+ PL_copline = (line_t)yyvsp[-9].ival;
+ forop = newSTATEOP(0, yyvsp[-10].pval,
+ newWHILEOP(0, 1, (LOOP*)Nullop,
+ yyvsp[-9].ival, scalar(yyvsp[-4].opval),
+ yyvsp[0].opval, yyvsp[-2].opval));
+ if (yyvsp[-6].opval) {
+ forop = append_elem(OP_LINESEQ,
+ newSTATEOP(0, (yyvsp[-10].pval?savepv(yyvsp[-10].pval):Nullch),
+ yyvsp[-6].opval),
+ forop);
+ }
+
+ yyval.opval = block_end(yyvsp[-7].ival, forop); ;}
+ break;
+
+ case 35:
+#line 236 "perly.y"
+ { yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
+ newWHILEOP(0, 1, (LOOP*)Nullop,
+ NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); ;}
+ break;
+
+ case 36:
+#line 243 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 38:
+#line 249 "perly.y"
+ { (void)scan_num("1", &yylval); yyval.opval = yylval.opval; ;}
+ break;
+
+ case 40:
+#line 255 "perly.y"
+ { yyval.opval = invert(scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 41:
+#line 260 "perly.y"
+ { yyval.opval = yyvsp[0].opval; intro_my(); ;}
+ break;
+
+ case 42:
+#line 264 "perly.y"
+ { yyval.opval = yyvsp[0].opval; intro_my(); ;}
+ break;
+
+ case 43:
+#line 268 "perly.y"
+ { yyval.opval = yyvsp[0].opval; intro_my(); ;}
+ break;
+
+ case 44:
+#line 272 "perly.y"
+ { yyval.opval = yyvsp[0].opval; intro_my(); ;}
+ break;
+
+ case 45:
+#line 277 "perly.y"
+ { yyval.pval = Nullch; ;}
+ break;
+
+ case 47:
+#line 283 "perly.y"
+ { yyval.ival = 0; ;}
+ break;
+
+ case 48:
+#line 285 "perly.y"
+ { yyval.ival = 0; ;}
+ break;
+
+ case 49:
+#line 287 "perly.y"
+ { yyval.ival = 0; ;}
+ break;
+
+ case 50:
+#line 289 "perly.y"
+ { yyval.ival = 0; ;}
+ break;
+
+ case 51:
+#line 291 "perly.y"
+ { yyval.ival = 0; ;}
+ break;
+
+ case 52:
+#line 295 "perly.y"
+ { newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 53:
+#line 298 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 54:
+#line 299 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 55:
+#line 304 "perly.y"
+ { newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 56:
+#line 309 "perly.y"
+ { newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 57:
+#line 313 "perly.y"
+ { yyval.ival = start_subparse(FALSE, 0); ;}
+ break;
+
+ case 58:
+#line 317 "perly.y"
+ { yyval.ival = start_subparse(FALSE, CVf_ANON); ;}
+ break;
+
+ case 59:
+#line 321 "perly.y"
+ { yyval.ival = start_subparse(TRUE, 0); ;}
+ break;
+
+ case 60:
+#line 325 "perly.y"
+ { STRLEN n_a; char *name = SvPV(((SVOP*)yyvsp[0].opval)->op_sv,n_a);
+ if (strEQ(name, "BEGIN") || strEQ(name, "END")
+ || strEQ(name, "INIT") || strEQ(name, "CHECK"))
+ CvSPECIAL_on(PL_compcv);
+ yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 61:
+#line 334 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 63:
+#line 340 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 64:
+#line 342 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 65:
+#line 344 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 66:
+#line 349 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 67:
+#line 351 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 68:
+#line 355 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 69:
+#line 356 "perly.y"
+ { yyval.opval = Nullop; PL_expect = XSTATE; ;}
+ break;
+
+ case 70:
+#line 360 "perly.y"
+ { package(yyvsp[-1].opval); ;}
+ break;
+
+ case 71:
+#line 364 "perly.y"
+ { CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ ;}
+ break;
+
+ case 72:
+#line 366 "perly.y"
+ { utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); ;}
+ break;
+
+ case 73:
+#line 371 "perly.y"
+ { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 74:
+#line 373 "perly.y"
+ { yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 75:
+#line 375 "perly.y"
+ { yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 77:
+#line 381 "perly.y"
+ { yyval.opval = yyvsp[-1].opval; ;}
+ break;
+
+ case 78:
+#line 383 "perly.y"
+ { yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 80:
+#line 389 "perly.y"
+ { yyval.opval = convert(yyvsp[-2].ival, OPf_STACKED,
+ prepend_elem(OP_LIST, newGVREF(yyvsp[-2].ival,yyvsp[-1].opval), yyvsp[0].opval) ); ;}
+ break;
+
+ case 81:
+#line 392 "perly.y"
+ { yyval.opval = convert(yyvsp[-4].ival, OPf_STACKED,
+ prepend_elem(OP_LIST, newGVREF(yyvsp[-4].ival,yyvsp[-2].opval), yyvsp[-1].opval) ); ;}
+ break;
+
+ case 82:
+#line 395 "perly.y"
+ { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST,
+ prepend_elem(OP_LIST, scalar(yyvsp[-5].opval), yyvsp[-1].opval),
+ newUNOP(OP_METHOD, 0, yyvsp[-3].opval))); ;}
+ break;
+
+ case 83:
+#line 400 "perly.y"
+ { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST, scalar(yyvsp[-2].opval),
+ newUNOP(OP_METHOD, 0, yyvsp[0].opval))); ;}
+ break;
+
+ case 84:
+#line 404 "perly.y"
+ { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST,
+ prepend_elem(OP_LIST, yyvsp[-1].opval, yyvsp[0].opval),
+ newUNOP(OP_METHOD, 0, yyvsp[-2].opval))); ;}
+ break;
+
+ case 85:
+#line 409 "perly.y"
+ { yyval.opval = convert(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST,
+ prepend_elem(OP_LIST, yyvsp[-3].opval, yyvsp[-1].opval),
+ newUNOP(OP_METHOD, 0, yyvsp[-4].opval))); ;}
+ break;
+
+ case 86:
+#line 414 "perly.y"
+ { yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
+ break;
+
+ case 87:
+#line 416 "perly.y"
+ { yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); ;}
+ break;
+
+ case 88:
+#line 418 "perly.y"
+ { yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); ;}
+ break;
+
+ case 89:
+#line 420 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST,
+ prepend_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval), yyvsp[-4].opval)); ;}
+ break;
+
+ case 92:
+#line 434 "perly.y"
+ { yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval));
+ PL_expect = XOPERATOR; ;}
+ break;
+
+ case 93:
+#line 437 "perly.y"
+ { yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); ;}
+ break;
+
+ case 94:
+#line 439 "perly.y"
+ { yyval.opval = newBINOP(OP_AELEM, 0,
+ ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
+ scalar(yyvsp[-1].opval));;}
+ break;
+
+ case 95:
+#line 443 "perly.y"
+ { yyval.opval = newBINOP(OP_AELEM, 0,
+ ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
+ scalar(yyvsp[-1].opval));;}
+ break;
+
+ case 96:
+#line 447 "perly.y"
+ { yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
+ PL_expect = XOPERATOR; ;}
+ break;
+
+ case 97:
+#line 450 "perly.y"
+ { yyval.opval = newBINOP(OP_HELEM, 0,
+ ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
+ jmaybe(yyvsp[-2].opval));
+ PL_expect = XOPERATOR; ;}
+ break;
+
+ case 98:
+#line 455 "perly.y"
+ { yyval.opval = newBINOP(OP_HELEM, 0,
+ ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
+ jmaybe(yyvsp[-2].opval));
+ PL_expect = XOPERATOR; ;}
+ break;
+
+ case 99:
+#line 460 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ newCVREF(0, scalar(yyvsp[-3].opval))); ;}
+ break;
+
+ case 100:
+#line 463 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST, yyvsp[-1].opval,
+ newCVREF(0, scalar(yyvsp[-4].opval)))); ;}
+ break;
+
+ case 101:
+#line 468 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST, yyvsp[-1].opval,
+ newCVREF(0, scalar(yyvsp[-3].opval)))); ;}
+ break;
+
+ case 102:
+#line 472 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ newCVREF(0, scalar(yyvsp[-2].opval))); ;}
+ break;
+
+ case 103:
+#line 478 "perly.y"
+ { yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); ;}
+ break;
+
+ case 104:
+#line 480 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 105:
+#line 482 "perly.y"
+ { if (yyvsp[-1].ival != OP_REPEAT)
+ scalar(yyvsp[-2].opval);
+ yyval.opval = newBINOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 106:
+#line 486 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 107:
+#line 488 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 108:
+#line 490 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 109:
+#line 492 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 110:
+#line 494 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 111:
+#line 496 "perly.y"
+ { yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 112:
+#line 498 "perly.y"
+ { yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));;}
+ break;
+
+ case 113:
+#line 500 "perly.y"
+ { yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 114:
+#line 502 "perly.y"
+ { yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 115:
+#line 504 "perly.y"
+ { yyval.opval = newLOGOP(OP_DOR, 0, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 116:
+#line 506 "perly.y"
+ { yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 117:
+#line 511 "perly.y"
+ { yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 118:
+#line 513 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 119:
+#line 515 "perly.y"
+ { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 120:
+#line 517 "perly.y"
+ { yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));;}
+ break;
+
+ case 121:
+#line 519 "perly.y"
+ { yyval.opval = newUNOP(OP_POSTINC, 0,
+ mod(scalar(yyvsp[-1].opval), OP_POSTINC)); ;}
+ break;
+
+ case 122:
+#line 522 "perly.y"
+ { yyval.opval = newUNOP(OP_POSTDEC, 0,
+ mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); ;}
+ break;
+
+ case 123:
+#line 525 "perly.y"
+ { yyval.opval = newUNOP(OP_PREINC, 0,
+ mod(scalar(yyvsp[0].opval), OP_PREINC)); ;}
+ break;
+
+ case 124:
+#line 528 "perly.y"
+ { yyval.opval = newUNOP(OP_PREDEC, 0,
+ mod(scalar(yyvsp[0].opval), OP_PREDEC)); ;}
+ break;
+
+ case 125:
+#line 535 "perly.y"
+ { yyval.opval = newANONLIST(yyvsp[-1].opval); ;}
+ break;
+
+ case 126:
+#line 537 "perly.y"
+ { yyval.opval = newANONLIST(Nullop); ;}
+ break;
+
+ case 127:
+#line 539 "perly.y"
+ { yyval.opval = newANONHASH(yyvsp[-2].opval); ;}
+ break;
+
+ case 128:
+#line 541 "perly.y"
+ { yyval.opval = newANONHASH(Nullop); ;}
+ break;
+
+ case 129:
+#line 543 "perly.y"
+ { yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 130:
+#line 549 "perly.y"
+ { yyval.opval = dofile(yyvsp[0].opval); ;}
+ break;
+
+ case 131:
+#line 551 "perly.y"
+ { yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); ;}
+ break;
+
+ case 132:
+#line 553 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB,
+ OPf_SPECIAL|OPf_STACKED,
+ prepend_elem(OP_LIST,
+ scalar(newCVREF(
+ (OPpENTERSUB_AMPER<<8),
+ scalar(yyvsp[-2].opval)
+ )),Nullop)); dep();;}
+ break;
+
+ case 133:
+#line 561 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB,
+ OPf_SPECIAL|OPf_STACKED,
+ append_elem(OP_LIST,
+ yyvsp[-1].opval,
+ scalar(newCVREF(
+ (OPpENTERSUB_AMPER<<8),
+ scalar(yyvsp[-3].opval)
+ )))); dep();;}
+ break;
+
+ case 134:
+#line 570 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
+ prepend_elem(OP_LIST,
+ scalar(newCVREF(0,scalar(yyvsp[-2].opval))), Nullop)); dep();;}
+ break;
+
+ case 135:
+#line 574 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_SPECIAL|OPf_STACKED,
+ prepend_elem(OP_LIST,
+ yyvsp[-1].opval,
+ scalar(newCVREF(0,scalar(yyvsp[-3].opval))))); dep();;}
+ break;
+
+ case 140:
+#line 586 "perly.y"
+ { yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); ;}
+ break;
+
+ case 141:
+#line 588 "perly.y"
+ { yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); ;}
+ break;
+
+ case 142:
+#line 590 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 143:
+#line 592 "perly.y"
+ { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); ;}
+ break;
+
+ case 144:
+#line 594 "perly.y"
+ { yyval.opval = sawparens(yyvsp[-1].opval); ;}
+ break;
+
+ case 145:
+#line 596 "perly.y"
+ { yyval.opval = sawparens(newNULLLIST()); ;}
+ break;
+
+ case 146:
+#line 598 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 147:
+#line 600 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 148:
+#line 602 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 149:
+#line 604 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 150:
+#line 606 "perly.y"
+ { yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));;}
+ break;
+
+ case 151:
+#line 608 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 152:
+#line 610 "perly.y"
+ { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); ;}
+ break;
+
+ case 153:
+#line 612 "perly.y"
+ { yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); ;}
+ break;
+
+ case 154:
+#line 614 "perly.y"
+ { yyval.opval = prepend_elem(OP_ASLICE,
+ newOP(OP_PUSHMARK, 0),
+ newLISTOP(OP_ASLICE, 0,
+ list(yyvsp[-1].opval),
+ ref(yyvsp[-3].opval, OP_ASLICE))); ;}
+ break;
+
+ case 155:
+#line 620 "perly.y"
+ { yyval.opval = prepend_elem(OP_HSLICE,
+ newOP(OP_PUSHMARK, 0),
+ newLISTOP(OP_HSLICE, 0,
+ list(yyvsp[-2].opval),
+ ref(oopsHV(yyvsp[-4].opval), OP_HSLICE)));
+ PL_expect = XOPERATOR; ;}
+ break;
+
+ case 156:
+#line 627 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 157:
+#line 629 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 158:
+#line 631 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); ;}
+ break;
+
+ case 159:
+#line 633 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); ;}
+ break;
+
+ case 160:
+#line 636 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); ;}
+ break;
+
+ case 161:
+#line 639 "perly.y"
+ { yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
+ PL_hints |= HINT_BLOCK_SCOPE; ;}
+ break;
+
+ case 162:
+#line 642 "perly.y"
+ { yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); ;}
+ break;
+
+ case 163:
+#line 644 "perly.y"
+ { yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 164:
+#line 646 "perly.y"
+ { yyval.opval = newOP(yyvsp[0].ival, 0); ;}
+ break;
+
+ case 165:
+#line 648 "perly.y"
+ { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
+ break;
+
+ case 166:
+#line 650 "perly.y"
+ { yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); ;}
+ break;
+
+ case 167:
+#line 652 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); ;}
+ break;
+
+ case 168:
+#line 655 "perly.y"
+ { yyval.opval = newOP(yyvsp[0].ival, 0); ;}
+ break;
+
+ case 169:
+#line 657 "perly.y"
+ { yyval.opval = newOP(yyvsp[-2].ival, 0); ;}
+ break;
+
+ case 170:
+#line 659 "perly.y"
+ { yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
+ scalar(yyvsp[0].opval)); ;}
+ break;
+
+ case 171:
+#line 662 "perly.y"
+ { yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); ;}
+ break;
+
+ case 172:
+#line 664 "perly.y"
+ { yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); ;}
+ break;
+
+ case 173:
+#line 666 "perly.y"
+ { yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); ;}
+ break;
+
+ case 174:
+#line 668 "perly.y"
+ { yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); ;}
+ break;
+
+ case 177:
+#line 675 "perly.y"
+ { yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); ;}
+ break;
+
+ case 178:
+#line 677 "perly.y"
+ { yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); ;}
+ break;
+
+ case 179:
+#line 682 "perly.y"
+ { yyval.opval = sawparens(yyvsp[-1].opval); ;}
+ break;
+
+ case 180:
+#line 684 "perly.y"
+ { yyval.opval = sawparens(newNULLLIST()); ;}
+ break;
+
+ case 181:
+#line 686 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 182:
+#line 688 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 183:
+#line 690 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 184:
+#line 695 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 185:
+#line 697 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 186:
+#line 701 "perly.y"
+ { yyval.opval = Nullop; ;}
+ break;
+
+ case 187:
+#line 703 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+ case 188:
+#line 705 "perly.y"
+ { yyval.opval = yyvsp[-1].opval; ;}
+ break;
+
+ case 189:
+#line 711 "perly.y"
+ { PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); ;}
+ break;
+
+ case 190:
+#line 715 "perly.y"
+ { yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); ;}
+ break;
+
+ case 191:
+#line 719 "perly.y"
+ { yyval.opval = newSVREF(yyvsp[0].opval); ;}
+ break;
+
+ case 192:
+#line 723 "perly.y"
+ { yyval.opval = newAVREF(yyvsp[0].opval); ;}
+ break;
+
+ case 193:
+#line 727 "perly.y"
+ { yyval.opval = newHVREF(yyvsp[0].opval); ;}
+ break;
+
+ case 194:
+#line 731 "perly.y"
+ { yyval.opval = newAVREF(yyvsp[0].opval); ;}
+ break;
+
+ case 195:
+#line 735 "perly.y"
+ { yyval.opval = newGVREF(0,yyvsp[0].opval); ;}
+ break;
+
+ case 196:
+#line 740 "perly.y"
+ { yyval.opval = scalar(yyvsp[0].opval); ;}
+ break;
+
+ case 197:
+#line 742 "perly.y"
+ { yyval.opval = scalar(yyvsp[0].opval); ;}
+ break;
+
+ case 198:
+#line 744 "perly.y"
+ { yyval.opval = scope(yyvsp[0].opval); ;}
+ break;
+
+ case 199:
+#line 747 "perly.y"
+ { yyval.opval = yyvsp[0].opval; ;}
+ break;
+
+
+