#line 54 "perly.c"
#define YYERRCODE 256
static short yylhs[] = { -1,
- 54, 0, 8, 6, 9, 7, 10, 10, 10, 11,
- 11, 11, 11, 24, 24, 24, 24, 24, 24, 24,
- 14, 14, 14, 13, 13, 42, 42, 12, 12, 12,
- 12, 12, 12, 12, 26, 26, 27, 27, 28, 29,
- 30, 31, 32, 53, 53, 1, 1, 1, 1, 1,
- 2, 38, 38, 46, 55, 3, 4, 5, 39, 40,
- 40, 44, 44, 44, 45, 45, 41, 41, 56, 56,
- 58, 57, 15, 15, 15, 25, 25, 25, 36, 36,
- 36, 36, 36, 36, 36, 36, 59, 36, 37, 37,
+ 0, 9, 7, 6, 10, 8, 11, 11, 11, 12,
+ 12, 12, 12, 25, 25, 25, 25, 25, 25, 25,
+ 15, 15, 15, 14, 14, 43, 43, 13, 13, 13,
+ 13, 13, 13, 13, 27, 27, 28, 28, 29, 30,
+ 31, 32, 33, 54, 54, 1, 1, 1, 1, 1,
+ 2, 39, 39, 47, 55, 3, 4, 5, 40, 41,
+ 41, 45, 45, 45, 46, 46, 42, 42, 56, 56,
+ 58, 57, 16, 16, 16, 26, 26, 26, 37, 37,
+ 37, 37, 37, 37, 37, 37, 59, 37, 38, 38,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 51, 51, 51, 51, 51, 51,
+ 51, 51, 52, 52, 52, 52, 52, 53, 53, 53,
+ 53, 53, 53, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 50, 50, 50, 50, 50, 50,
- 50, 50, 51, 51, 51, 51, 51, 52, 52, 52,
- 52, 52, 52, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 47, 47, 48, 48, 48, 48,
- 48, 33, 33, 34, 34, 34, 43, 23, 18, 19,
- 20, 21, 22, 35, 35, 35, 35,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 48, 48, 49, 49, 49, 49,
+ 49, 34, 34, 35, 35, 35, 44, 24, 19, 20,
+ 21, 22, 23, 36, 36, 36, 36,
};
static short yylen[] = { 2,
- 0, 2, 4, 0, 4, 0, 0, 2, 2, 2,
+ 2, 4, 0, 0, 4, 0, 0, 2, 2, 2,
1, 2, 3, 1, 1, 3, 3, 3, 3, 3,
0, 2, 6, 7, 7, 0, 2, 8, 8, 10,
9, 8, 11, 3, 0, 1, 0, 1, 1, 1,
1, 0, 1, 0, 1, 2, 1, 2, 2, 2,
2, 2, 2, 1, 1, 1, 1,
};
-static short yydefred[] = { 1,
+static short yydefred[] = { 4,
0, 7, 0, 45, 58, 56, 0, 56, 56, 8,
46, 9, 11, 48, 0, 47, 49, 50, 0, 0,
- 0, 70, 71, 0, 14, 4, 173, 0, 0, 154,
+ 0, 70, 71, 0, 14, 3, 173, 0, 0, 154,
0, 168, 0, 57, 57, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 146, 148, 0, 0, 0,
0, 174, 140, 134, 135, 136, 137, 52, 0, 59,
0, 69, 0, 0, 7, 194, 197, 196, 195, 0,
- 0, 0, 0, 0, 0, 4, 4, 4, 4, 4,
- 4, 0, 0, 0, 0, 0, 163, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3, 3, 3, 3, 3,
+ 3, 0, 0, 0, 0, 0, 163, 0, 0, 0,
0, 85, 0, 192, 0, 129, 0, 0, 0, 0,
0, 0, 0, 179, 181, 180, 0, 188, 0, 0,
0, 0, 0, 0, 0, 0, 124, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 119, 120, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
0, 51, 61, 0, 0, 0, 0, 83, 0, 0,
- 87, 0, 0, 0, 0, 0, 0, 0, 4, 167,
+ 87, 0, 0, 0, 0, 0, 0, 0, 3, 167,
169, 0, 0, 0, 0, 0, 0, 0, 126, 0,
158, 178, 0, 0, 175, 0, 0, 123, 27, 0,
0, 19, 0, 0, 0, 0, 73, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 89, 0, 0, 90, 0, 0, 101, 0,
0, 0, 0, 0, 0, 0, 156, 0, 0, 0,
- 0, 0, 0, 3, 0, 0, 171, 0, 0, 0,
+ 0, 0, 0, 2, 0, 0, 171, 0, 0, 0,
42, 0, 43, 0, 0, 0, 0, 187, 0, 0,
36, 41, 0, 0, 0, 170, 186, 86, 0, 130,
0, 132, 0, 125, 177, 65, 0, 0, 0, 0,
0, 33, 0, 23,
};
static short yydgoto[] = { 1,
- 10, 11, 20, 104, 19, 95, 370, 98, 359, 3,
- 12, 13, 70, 375, 285, 72, 73, 74, 75, 76,
- 77, 78, 79, 291, 81, 292, 281, 283, 286, 294,
- 282, 284, 122, 214, 100, 82, 257, 89, 91, 194,
- 327, 156, 289, 271, 225, 14, 83, 137, 84, 85,
- 86, 87, 15, 2, 16, 17, 18, 93, 278,
+ 10, 11, 20, 104, 19, 2, 95, 370, 98, 359,
+ 3, 12, 13, 70, 375, 285, 72, 73, 74, 75,
+ 76, 77, 78, 79, 291, 81, 292, 281, 283, 286,
+ 294, 282, 284, 122, 214, 100, 82, 257, 89, 91,
+ 194, 327, 156, 289, 271, 225, 14, 83, 137, 84,
+ 85, 86, 87, 15, 16, 17, 18, 93, 278,
};
static short yysindex[] = { 0,
0, 0, -132, 0, 0, 0, -51, 0, 0, 0,
0, 0, 179, 0,
};
static short yygindex[] = { 0,
- 0, 0, 196, 425, 0, -2, 0, 37, 634, -94,
- 0, 0, 0, -323, -15, 2445, 0, 999, 414, 417,
- 0, 0, 0, 463, -43, 0, 0, 321, -198, 103,
- 147, 280, -91, -185, 1, 0, 0, 0, 464, -44,
- 222, 338, 0, -179, 0, 0, 0, 0, 0, 0,
+ 0, 0, 196, 425, 0, 0, -2, 0, 37, 634,
+ -94, 0, 0, 0, -323, -15, 2445, 0, 999, 414,
+ 417, 0, 0, 0, 463, -43, 0, 0, 321, -198,
+ 103, 147, 280, -91, -185, 1, 0, 0, 0, 464,
+ -44, 222, 338, 0, -179, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
};
#define YYTABLESIZE 4568
307, 21, 180, 226, 21, 21, 21, 345, 21, 350,
21, 21, 65, 21, 272, 96, 162, 163, 121, 298,
97, 162, 163, 270, 121, 304, 310, 21, 312, 313,
- 306, 26, 21, 26, 26, 253, 2, 162, 163, 113,
+ 306, 26, 21, 26, 26, 253, 1, 162, 163, 113,
113, 113, 113, 162, 163, 308, 113, 314, 113, 367,
163, 110, 162, 163, 60, 75, 75, 75, 75, 21,
162, 163, 75, 162, 163, 381, 330, 113, 113, 44,
};
static char *yyrule[] = {
"$accept : prog",
-"$$1 :",
-"prog : $$1 lineseq",
+"prog : progstart lineseq",
"block : '{' remember lineseq '}'",
"remember :",
+"progstart :",
"mblock : '{' mremember lineseq '}'",
"mremember :",
"lineseq :",
"subbody : ';'",
"package : PACKAGE WORD ';'",
"package : PACKAGE ';'",
-"$$2 :",
-"use : USE startsub $$2 WORD WORD listexpr ';'",
+"$$1 :",
+"use : USE startsub $$1 WORD WORD listexpr ';'",
"expr : expr ANDOP expr",
"expr : expr OROP expr",
"expr : argexpr",
"listop : FUNCMETH indirob '(' listexprcom ')'",
"listop : LSTOP listexpr",
"listop : FUNC '(' listexprcom ')'",
-"$$3 :",
-"listop : LSTOPSUB startanonsub block $$3 listexpr",
+"$$2 :",
+"listop : LSTOPSUB startanonsub block $$2 listexpr",
"method : METHOD",
"method : scalar",
"subscripted : star '{' expr ';' '}'",
#define YYMAXDEPTH 500
#endif
#endif
-#line 789 "perly.y"
+#line 793 "perly.y"
/* PROGRAM */
/* more stuff added to make perly_c.diff easier to apply */
ysave->oldyychar = yychar;
ysave->oldyyval = yyval;
ysave->oldyylval = yylval;
-
+
#if YYDEBUG
if ((yys = getenv("YYDEBUG")))
{
ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
ysave->yyss = Renew(yyss, yystacksize, short);
if (!yyvs || !yyss)
- goto yyoverflow;
+ goto yyoverflow;
yyssp = yyss + yyps_index;
yyvsp = yyvs + yypv_index;
}
ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
ysave->yyss = Renew(yyss, yystacksize, short);
if (!yyvs || !yyss)
- goto yyoverflow;
+ goto yyoverflow;
yyssp = yyss + yyps_index;
yyvsp = yyvs + yypv_index;
}
switch (yyn)
{
case 1:
-#line 130 "perly.y"
-{
-#if defined(YYDEBUG) && defined(DEBUGGING)
- yydebug = (DEBUG_p_TEST);
-#endif
- PL_expect = XSTATE; yyval.ival = block_start(TRUE);
- }
+#line 131 "perly.y"
+{ yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); }
break;
case 2:
-#line 137 "perly.y"
-{ newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); }
-break;
-case 3:
-#line 142 "perly.y"
+#line 136 "perly.y"
{ if (PL_copline > (line_t)yyvsp[-3].ival)
PL_copline = yyvsp[-3].ival;
yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
break;
-case 4:
-#line 148 "perly.y"
+case 3:
+#line 142 "perly.y"
{ yyval.ival = block_start(TRUE); }
break;
+case 4:
+#line 146 "perly.y"
+{
+#if defined(YYDEBUG) && defined(DEBUGGING)
+ yydebug = (DEBUG_p_TEST);
+#endif
+ PL_expect = XSTATE; yyval.ival = block_start(TRUE);
+ }
+break;
case 5:
-#line 152 "perly.y"
+#line 156 "perly.y"
{ if (PL_copline > (line_t)yyvsp[-3].ival)
PL_copline = yyvsp[-3].ival;
yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
break;
case 6:
-#line 158 "perly.y"
+#line 162 "perly.y"
{ yyval.ival = block_start(FALSE); }
break;
case 7:
-#line 163 "perly.y"
+#line 167 "perly.y"
{ yyval.opval = Nullop; }
break;
case 8:
-#line 165 "perly.y"
+#line 169 "perly.y"
{ yyval.opval = yyvsp[-1].opval; }
break;
case 9:
-#line 167 "perly.y"
+#line 171 "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 10:
-#line 175 "perly.y"
+#line 179 "perly.y"
{ yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); }
break;
case 12:
-#line 178 "perly.y"
+#line 182 "perly.y"
{ if (yyvsp[-1].pval != Nullch) {
yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
}
PL_expect = XSTATE; }
break;
case 13:
-#line 187 "perly.y"
+#line 191 "perly.y"
{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
PL_expect = XSTATE; }
break;
case 14:
-#line 193 "perly.y"
+#line 197 "perly.y"
{ yyval.opval = Nullop; }
break;
case 15:
-#line 195 "perly.y"
+#line 199 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 16:
-#line 197 "perly.y"
+#line 201 "perly.y"
{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); }
break;
case 17:
-#line 199 "perly.y"
+#line 203 "perly.y"
{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); }
break;
case 18:
-#line 201 "perly.y"
+#line 205 "perly.y"
{ yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); }
break;
case 19:
-#line 203 "perly.y"
+#line 207 "perly.y"
{ yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);}
break;
case 20:
-#line 205 "perly.y"
+#line 209 "perly.y"
{ yyval.opval = newFOROP(0, Nullch, yyvsp[-1].ival,
Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); }
break;
case 21:
-#line 211 "perly.y"
+#line 215 "perly.y"
{ yyval.opval = Nullop; }
break;
case 22:
-#line 213 "perly.y"
+#line 217 "perly.y"
{ (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); }
break;
case 23:
-#line 215 "perly.y"
+#line 219 "perly.y"
{ PL_copline = yyvsp[-5].ival;
yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval);
PL_hints |= HINT_BLOCK_SCOPE; }
break;
case 24:
-#line 222 "perly.y"
+#line 226 "perly.y"
{ PL_copline = yyvsp[-6].ival;
yyval.opval = block_end(yyvsp[-4].ival,
newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
break;
case 25:
-#line 226 "perly.y"
+#line 230 "perly.y"
{ PL_copline = 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 233 "perly.y"
+#line 237 "perly.y"
{ yyval.opval = Nullop; }
break;
case 27:
-#line 235 "perly.y"
+#line 239 "perly.y"
{ yyval.opval = scope(yyvsp[0].opval); }
break;
case 28:
-#line 240 "perly.y"
+#line 244 "perly.y"
{ PL_copline = yyvsp[-6].ival;
yyval.opval = block_end(yyvsp[-4].ival,
newSTATEOP(0, yyvsp[-7].pval,
yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
break;
case 29:
-#line 246 "perly.y"
+#line 250 "perly.y"
{ PL_copline = yyvsp[-6].ival;
yyval.opval = block_end(yyvsp[-4].ival,
newSTATEOP(0, yyvsp[-7].pval,
yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
break;
case 30:
-#line 252 "perly.y"
+#line 256 "perly.y"
{ yyval.opval = block_end(yyvsp[-6].ival,
newFOROP(0, yyvsp[-9].pval, yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
case 31:
-#line 255 "perly.y"
+#line 259 "perly.y"
{ yyval.opval = block_end(yyvsp[-4].ival,
newFOROP(0, yyvsp[-8].pval, yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
case 32:
-#line 259 "perly.y"
+#line 263 "perly.y"
{ yyval.opval = block_end(yyvsp[-4].ival,
newFOROP(0, yyvsp[-7].pval, yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
case 33:
-#line 263 "perly.y"
+#line 267 "perly.y"
{ OP *forop;
PL_copline = yyvsp[-9].ival;
forop = newSTATEOP(0, yyvsp[-10].pval,
yyval.opval = block_end(yyvsp[-7].ival, forop); }
break;
case 34:
-#line 278 "perly.y"
+#line 282 "perly.y"
{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
newWHILEOP(0, 1, (LOOP*)Nullop,
NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
case 35:
-#line 285 "perly.y"
+#line 289 "perly.y"
{ yyval.opval = Nullop; }
break;
case 37:
-#line 291 "perly.y"
+#line 295 "perly.y"
{ (void)scan_num("1", &yylval); yyval.opval = yylval.opval; }
break;
case 39:
-#line 297 "perly.y"
+#line 301 "perly.y"
{ yyval.opval = invert(scalar(yyvsp[0].opval)); }
break;
case 40:
-#line 302 "perly.y"
+#line 306 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
case 41:
-#line 306 "perly.y"
+#line 310 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
case 42:
-#line 310 "perly.y"
+#line 314 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
case 43:
-#line 314 "perly.y"
+#line 318 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
case 44:
-#line 319 "perly.y"
+#line 323 "perly.y"
{ yyval.pval = Nullch; }
break;
case 46:
-#line 325 "perly.y"
+#line 329 "perly.y"
{ yyval.ival = 0; }
break;
case 47:
-#line 327 "perly.y"
+#line 331 "perly.y"
{ yyval.ival = 0; }
break;
case 48:
-#line 329 "perly.y"
+#line 333 "perly.y"
{ yyval.ival = 0; }
break;
case 49:
-#line 331 "perly.y"
+#line 335 "perly.y"
{ yyval.ival = 0; }
break;
case 50:
-#line 333 "perly.y"
+#line 337 "perly.y"
{ yyval.ival = 0; }
break;
case 51:
-#line 337 "perly.y"
+#line 341 "perly.y"
{ newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
break;
case 52:
-#line 340 "perly.y"
+#line 344 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 53:
-#line 341 "perly.y"
+#line 345 "perly.y"
{ yyval.opval = Nullop; }
break;
case 54:
-#line 346 "perly.y"
+#line 350 "perly.y"
{ newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
break;
case 55:
-#line 351 "perly.y"
+#line 355 "perly.y"
{ newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
break;
case 56:
-#line 355 "perly.y"
+#line 359 "perly.y"
{ yyval.ival = start_subparse(FALSE, 0); }
break;
case 57:
-#line 359 "perly.y"
+#line 363 "perly.y"
{ yyval.ival = start_subparse(FALSE, CVf_ANON); }
break;
case 58:
-#line 363 "perly.y"
+#line 367 "perly.y"
{ yyval.ival = start_subparse(TRUE, 0); }
break;
case 59:
-#line 367 "perly.y"
+#line 371 "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"))
yyval.opval = yyvsp[0].opval; }
break;
case 60:
-#line 376 "perly.y"
+#line 380 "perly.y"
{ yyval.opval = Nullop; }
break;
case 62:
-#line 382 "perly.y"
+#line 386 "perly.y"
{ yyval.opval = Nullop; }
break;
case 63:
-#line 384 "perly.y"
+#line 388 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 64:
-#line 386 "perly.y"
+#line 390 "perly.y"
{ yyval.opval = Nullop; }
break;
case 65:
-#line 391 "perly.y"
+#line 395 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 66:
-#line 393 "perly.y"
+#line 397 "perly.y"
{ yyval.opval = Nullop; }
break;
case 67:
-#line 397 "perly.y"
+#line 401 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 68:
-#line 398 "perly.y"
+#line 402 "perly.y"
{ yyval.opval = Nullop; PL_expect = XSTATE; }
break;
case 69:
-#line 402 "perly.y"
+#line 406 "perly.y"
{ package(yyvsp[-1].opval); }
break;
case 70:
-#line 404 "perly.y"
+#line 408 "perly.y"
{ package(Nullop); }
break;
case 71:
-#line 408 "perly.y"
+#line 412 "perly.y"
{ CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
break;
case 72:
-#line 410 "perly.y"
+#line 414 "perly.y"
{ utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); }
break;
case 73:
-#line 415 "perly.y"
+#line 419 "perly.y"
{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
case 74:
-#line 417 "perly.y"
+#line 421 "perly.y"
{ yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
case 76:
-#line 423 "perly.y"
+#line 427 "perly.y"
{ yyval.opval = yyvsp[-1].opval; }
break;
case 77:
-#line 425 "perly.y"
+#line 429 "perly.y"
{ yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
break;
case 79:
-#line 431 "perly.y"
+#line 435 "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 80:
-#line 434 "perly.y"
+#line 438 "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 81:
-#line 437 "perly.y"
+#line 441 "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 82:
-#line 442 "perly.y"
+#line 446 "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 83:
-#line 446 "perly.y"
+#line 450 "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 84:
-#line 451 "perly.y"
+#line 455 "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 85:
-#line 456 "perly.y"
+#line 460 "perly.y"
{ yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
break;
case 86:
-#line 458 "perly.y"
+#line 462 "perly.y"
{ yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
break;
case 87:
-#line 460 "perly.y"
+#line 464 "perly.y"
{ yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); }
break;
case 88:
-#line 462 "perly.y"
+#line 466 "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 91:
-#line 476 "perly.y"
+#line 480 "perly.y"
{ yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval)); }
break;
case 92:
-#line 478 "perly.y"
+#line 482 "perly.y"
{ yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
break;
case 93:
-#line 480 "perly.y"
+#line 484 "perly.y"
{ yyval.opval = newBINOP(OP_AELEM, 0,
ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
scalar(yyvsp[-1].opval));}
break;
case 94:
-#line 484 "perly.y"
+#line 488 "perly.y"
{ yyval.opval = newBINOP(OP_AELEM, 0,
ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
scalar(yyvsp[-1].opval));}
break;
case 95:
-#line 488 "perly.y"
+#line 492 "perly.y"
{ yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
PL_expect = XOPERATOR; }
break;
case 96:
-#line 491 "perly.y"
+#line 495 "perly.y"
{ yyval.opval = newBINOP(OP_HELEM, 0,
ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
jmaybe(yyvsp[-2].opval));
PL_expect = XOPERATOR; }
break;
case 97:
-#line 496 "perly.y"
+#line 500 "perly.y"
{ yyval.opval = newBINOP(OP_HELEM, 0,
ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
jmaybe(yyvsp[-2].opval));
PL_expect = XOPERATOR; }
break;
case 98:
-#line 501 "perly.y"
+#line 505 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
newCVREF(0, scalar(yyvsp[-3].opval))); }
break;
case 99:
-#line 504 "perly.y"
+#line 508 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[-1].opval,
newCVREF(0, scalar(yyvsp[-4].opval)))); }
break;
case 100:
-#line 509 "perly.y"
+#line 513 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[-1].opval,
newCVREF(0, scalar(yyvsp[-3].opval)))); }
break;
case 101:
-#line 513 "perly.y"
+#line 517 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
newCVREF(0, scalar(yyvsp[-2].opval))); }
break;
case 102:
-#line 519 "perly.y"
+#line 523 "perly.y"
{ yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
break;
case 103:
-#line 521 "perly.y"
+#line 525 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
case 104:
-#line 523 "perly.y"
+#line 527 "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 105:
-#line 527 "perly.y"
+#line 531 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
case 106:
-#line 529 "perly.y"
+#line 533 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
case 107:
-#line 531 "perly.y"
+#line 535 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
case 108:
-#line 533 "perly.y"
+#line 537 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
case 109:
-#line 535 "perly.y"
+#line 539 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
case 110:
-#line 537 "perly.y"
+#line 541 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
case 111:
-#line 539 "perly.y"
+#line 543 "perly.y"
{ yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
break;
case 112:
-#line 541 "perly.y"
+#line 545 "perly.y"
{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
case 113:
-#line 543 "perly.y"
+#line 547 "perly.y"
{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
case 114:
-#line 545 "perly.y"
+#line 549 "perly.y"
{ yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
break;
case 115:
-#line 550 "perly.y"
+#line 554 "perly.y"
{ yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
break;
case 116:
-#line 552 "perly.y"
+#line 556 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 117:
-#line 554 "perly.y"
+#line 558 "perly.y"
{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
break;
case 118:
-#line 556 "perly.y"
+#line 560 "perly.y"
{ yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
break;
case 119:
-#line 558 "perly.y"
+#line 562 "perly.y"
{ yyval.opval = newUNOP(OP_POSTINC, 0,
mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
break;
case 120:
-#line 561 "perly.y"
+#line 565 "perly.y"
{ yyval.opval = newUNOP(OP_POSTDEC, 0,
mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
break;
case 121:
-#line 564 "perly.y"
+#line 568 "perly.y"
{ yyval.opval = newUNOP(OP_PREINC, 0,
mod(scalar(yyvsp[0].opval), OP_PREINC)); }
break;
case 122:
-#line 567 "perly.y"
+#line 571 "perly.y"
{ yyval.opval = newUNOP(OP_PREDEC, 0,
mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
break;
case 123:
-#line 574 "perly.y"
+#line 578 "perly.y"
{ yyval.opval = newANONLIST(yyvsp[-1].opval); }
break;
case 124:
-#line 576 "perly.y"
+#line 580 "perly.y"
{ yyval.opval = newANONLIST(Nullop); }
break;
case 125:
-#line 578 "perly.y"
+#line 582 "perly.y"
{ yyval.opval = newANONHASH(yyvsp[-2].opval); }
break;
case 126:
-#line 580 "perly.y"
+#line 584 "perly.y"
{ yyval.opval = newANONHASH(Nullop); }
break;
case 127:
-#line 582 "perly.y"
+#line 586 "perly.y"
{ yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
break;
case 128:
-#line 588 "perly.y"
+#line 592 "perly.y"
{ yyval.opval = dofile(yyvsp[0].opval); }
break;
case 129:
-#line 590 "perly.y"
+#line 594 "perly.y"
{ yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
break;
case 130:
-#line 592 "perly.y"
+#line 596 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
prepend_elem(OP_LIST,
)),Nullop)); dep();}
break;
case 131:
-#line 600 "perly.y"
+#line 604 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
append_elem(OP_LIST,
)))); dep();}
break;
case 132:
-#line 609 "perly.y"
+#line 613 "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 133:
-#line 613 "perly.y"
+#line 617 "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 138:
-#line 625 "perly.y"
+#line 629 "perly.y"
{ yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
break;
case 139:
-#line 627 "perly.y"
+#line 631 "perly.y"
{ yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
break;
case 140:
-#line 629 "perly.y"
+#line 633 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 141:
-#line 631 "perly.y"
+#line 635 "perly.y"
{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
break;
case 142:
-#line 633 "perly.y"
+#line 637 "perly.y"
{ yyval.opval = sawparens(yyvsp[-1].opval); }
break;
case 143:
-#line 635 "perly.y"
+#line 639 "perly.y"
{ yyval.opval = sawparens(newNULLLIST()); }
break;
case 144:
-#line 637 "perly.y"
+#line 641 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 145:
-#line 639 "perly.y"
+#line 643 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 146:
-#line 641 "perly.y"
+#line 645 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 147:
-#line 643 "perly.y"
+#line 647 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 148:
-#line 645 "perly.y"
+#line 649 "perly.y"
{ yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
break;
case 149:
-#line 647 "perly.y"
+#line 651 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 150:
-#line 649 "perly.y"
+#line 653 "perly.y"
{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
break;
case 151:
-#line 651 "perly.y"
+#line 655 "perly.y"
{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
break;
case 152:
-#line 653 "perly.y"
+#line 657 "perly.y"
{ yyval.opval = prepend_elem(OP_ASLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_ASLICE, 0,
ref(yyvsp[-3].opval, OP_ASLICE))); }
break;
case 153:
-#line 659 "perly.y"
+#line 663 "perly.y"
{ yyval.opval = prepend_elem(OP_HSLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_HSLICE, 0,
PL_expect = XOPERATOR; }
break;
case 154:
-#line 666 "perly.y"
+#line 670 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 155:
-#line 668 "perly.y"
+#line 672 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
break;
case 156:
-#line 670 "perly.y"
+#line 674 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
break;
case 157:
-#line 672 "perly.y"
+#line 676 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
break;
case 158:
-#line 675 "perly.y"
+#line 679 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
break;
case 159:
-#line 678 "perly.y"
+#line 682 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
PL_hints |= HINT_BLOCK_SCOPE; }
break;
case 160:
-#line 681 "perly.y"
+#line 685 "perly.y"
{ yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
break;
case 161:
-#line 683 "perly.y"
+#line 687 "perly.y"
{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
break;
case 162:
-#line 685 "perly.y"
+#line 689 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, 0); }
break;
case 163:
-#line 687 "perly.y"
+#line 691 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
break;
case 164:
-#line 689 "perly.y"
+#line 693 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
break;
case 165:
-#line 691 "perly.y"
+#line 695 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
break;
case 166:
-#line 694 "perly.y"
+#line 698 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, 0); }
break;
case 167:
-#line 696 "perly.y"
+#line 700 "perly.y"
{ yyval.opval = newOP(yyvsp[-2].ival, 0); }
break;
case 168:
-#line 698 "perly.y"
+#line 702 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
scalar(yyvsp[0].opval)); }
break;
case 169:
-#line 701 "perly.y"
+#line 705 "perly.y"
{ yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
break;
case 170:
-#line 703 "perly.y"
+#line 707 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
break;
case 171:
-#line 705 "perly.y"
+#line 709 "perly.y"
{ yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
break;
case 172:
-#line 707 "perly.y"
+#line 711 "perly.y"
{ yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
break;
case 175:
-#line 714 "perly.y"
+#line 718 "perly.y"
{ yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); }
break;
case 176:
-#line 716 "perly.y"
+#line 720 "perly.y"
{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
break;
case 177:
-#line 721 "perly.y"
+#line 725 "perly.y"
{ yyval.opval = sawparens(yyvsp[-1].opval); }
break;
case 178:
-#line 723 "perly.y"
+#line 727 "perly.y"
{ yyval.opval = sawparens(newNULLLIST()); }
break;
case 179:
-#line 725 "perly.y"
+#line 729 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 180:
-#line 727 "perly.y"
+#line 731 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 181:
-#line 729 "perly.y"
+#line 733 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 182:
-#line 734 "perly.y"
+#line 738 "perly.y"
{ yyval.opval = Nullop; }
break;
case 183:
-#line 736 "perly.y"
+#line 740 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 184:
-#line 740 "perly.y"
+#line 744 "perly.y"
{ yyval.opval = Nullop; }
break;
case 185:
-#line 742 "perly.y"
+#line 746 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 186:
-#line 744 "perly.y"
+#line 748 "perly.y"
{ yyval.opval = yyvsp[-1].opval; }
break;
case 187:
-#line 750 "perly.y"
+#line 754 "perly.y"
{ PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); }
break;
case 188:
-#line 754 "perly.y"
+#line 758 "perly.y"
{ yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
break;
case 189:
-#line 758 "perly.y"
+#line 762 "perly.y"
{ yyval.opval = newSVREF(yyvsp[0].opval); }
break;
case 190:
-#line 762 "perly.y"
+#line 766 "perly.y"
{ yyval.opval = newAVREF(yyvsp[0].opval); }
break;
case 191:
-#line 766 "perly.y"
+#line 770 "perly.y"
{ yyval.opval = newHVREF(yyvsp[0].opval); }
break;
case 192:
-#line 770 "perly.y"
+#line 774 "perly.y"
{ yyval.opval = newAVREF(yyvsp[0].opval); }
break;
case 193:
-#line 774 "perly.y"
+#line 778 "perly.y"
{ yyval.opval = newGVREF(0,yyvsp[0].opval); }
break;
case 194:
-#line 779 "perly.y"
+#line 783 "perly.y"
{ yyval.opval = scalar(yyvsp[0].opval); }
break;
case 195:
-#line 781 "perly.y"
+#line 785 "perly.y"
{ yyval.opval = scalar(yyvsp[0].opval); }
break;
case 196:
-#line 783 "perly.y"
+#line 787 "perly.y"
{ yyval.opval = scope(yyvsp[0].opval); }
break;
case 197:
-#line 786 "perly.y"
+#line 790 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
#line 2459 "perly.c"
ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
ysave->yyss = Renew(yyss, yystacksize, short);
if (!yyvs || !yyss)
- goto yyoverflow;
+ goto yyoverflow;
yyssp = yyss + yyps_index;
yyvsp = yyvs + yypv_index;
}
%token COLONATTR
%type <ival> prog decl format startsub startanonsub startformsub
-%type <ival> remember mremember '&'
+%type <ival> progstart remember mremember '&'
%type <opval> block mblock lineseq line loop cond else
%type <opval> expr term subscripted scalar ary hsh arylen star amper sideff
%type <opval> argexpr nexpr texpr iexpr mexpr mnexpr mtexpr miexpr
%% /* RULES */
/* The whole program */
-prog : /* NULL */
- {
-#if defined(YYDEBUG) && defined(DEBUGGING)
- yydebug = (DEBUG_p_TEST);
-#endif
- PL_expect = XSTATE; $$ = block_start(TRUE);
- }
+prog : progstart
/*CONTINUED*/ lineseq
- { newPROG(block_end($1,$2)); }
+ { $$ = $1; newPROG(block_end($1,$2)); }
;
/* An ordinary block */
{ $$ = block_start(TRUE); }
;
+progstart:
+ {
+#if defined(YYDEBUG) && defined(DEBUGGING)
+ yydebug = (DEBUG_p_TEST);
+#endif
+ PL_expect = XSTATE; $$ = block_start(TRUE);
+ }
+ ;
+
+
mblock : '{' mremember lineseq '}'
{ if (PL_copline > (line_t)$1)
PL_copline = $1;
{ $$ = convert($1, 0, $2); }
| FUNC '(' listexprcom ')' /* print (@args) */
{ $$ = convert($1, 0, $3); }
- | LSTOPSUB startanonsub block /* map { foo } ... */
+ | LSTOPSUB startanonsub block /* map { foo } ... */
{ $3 = newANONATTRSUB($2, 0, Nullop, $3); }
listexpr %prec LSTOP /* ... @bar */
{ $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
| '[' ']'
{ $$ = newANONLIST(Nullop); }
| HASHBRACK expr ';' '}' %prec '(' /* { foo => "Bar" } */
- { $$ = newANONHASH($2); }
+ { $$ = newANONHASH($2); }
| HASHBRACK ';' '}' %prec '(' /* { } (';' by tokener) */
{ $$ = newANONHASH(Nullop); }
| ANONSUB startanonsub proto subattrlist block %prec '('
{ $$ = $1; }
| amper /* &foo; */
{ $$ = newUNOP(OP_ENTERSUB, 0, scalar($1)); }
- | amper '(' ')' /* &foo() */
+ | amper '(' ')' /* &foo() */
{ $$ = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar($1)); }
| amper '(' expr ')' /* &foo(@args) */
{ $$ = newUNOP(OP_ENTERSUB, OPf_STACKED,
---- perly.c.orig Sun Jun 10 21:13:50 2001
-+++ perly.c Sun Jun 10 21:13:51 2001
+--- perly.c.orig Tue Jun 19 08:39:52 2001
++++ perly.c Tue Jun 19 08:39:24 2001
+@@ -1,5 +1,5 @@
+ #ifndef lint
+-static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91";
++/* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */
+ #endif
+ #define YYBYACC 1
+ #line 16 "perly.y"
@@ -50,70 +50,9 @@
#define yylex yylex_r
#endif
#define YYERRCODE 256
-short yylhs[] = { -1,
+static short yylhs[] = { -1,
- 54, 0, 8, 6, 9, 7, 10, 10, 10, 11,
- 11, 11, 11, 24, 24, 24, 24, 24, 24, 24,
- 14, 14, 14, 13, 13, 42, 42, 12, 12, 12,
+ 0, 9, 7, 6, 10, 8, 11, 11, 11, 12,
+ 12, 12, 12, 25, 25, 25, 25, 25, 25, 25,
+ 15, 15, 15, 14, 14, 43, 43, 13, 13, 13,
@@ -135,7 +74,7 @@
- 48, 33, 33, 34, 34, 34, 43, 23, 18, 19,
- 20, 21, 22, 35, 35, 35, 35,
+ 49, 34, 34, 35, 35, 35, 44, 24, 19, 20,
+ 21, 22, 23, 36, 36, 36, 36,
};
-short yylen[] = { 2,
+static short yylen[] = { 2,
- 0, 2, 4, 0, 4, 0, 0, 2, 2, 2,
+ 2, 4, 0, 0, 4, 0, 0, 2, 2, 2,
1, 2, 3, 1, 1, 3, 3, 3, 3, 3,
0, 2, 6, 7, 7, 0, 2, 8, 8, 10,
@@ -157,7 +96,7 @@
1, 0, 1, 0, 1, 2, 1, 2, 2, 2,
2, 2, 2, 1, 1, 1, 1,
};
--short yydefred[] = { 1,
-+static short yydefred[] = { 1,
+-short yydefred[] = { 4,
++static short yydefred[] = { 4,
0, 7, 0, 45, 58, 56, 0, 56, 56, 8,
46, 9, 11, 48, 0, 47, 49, 50, 0, 0,
- 0, 70, 71, 0, 14, 4, 173, 0, 0, 154,
+ 0, 70, 71, 0, 14, 3, 173, 0, 0, 154,
@@ -199,7 +138,7 @@
0, 22, 0, 0, 0, 31, 5, 0, 30, 0,
0, 33, 0, 23,
};
-short yydgoto[] = { 1,
+static short yydgoto[] = { 1,
- 10, 11, 20, 104, 19, 95, 370, 98, 359, 3,
- 12, 13, 70, 375, 285, 72, 73, 74, 75, 76,
- 77, 78, 79, 291, 81, 292, 281, 283, 286, 294,
+ 10, 11, 20, 104, 19, 2, 95, 370, 98, 359,
+ 3, 12, 13, 70, 375, 285, 72, 73, 74, 75,
+ 76, 77, 78, 79, 291, 81, 292, 281, 283, 286,
@@ -207,7 +146,7 @@
- 327, 156, 289, 271, 225, 14, 83, 137, 84, 85,
- 86, 87, 15, 2, 16, 17, 18, 93, 278,
+ 194, 327, 156, 289, 271, 225, 14, 83, 137, 84,
+ 85, 86, 87, 15, 16, 17, 18, 93, 278,
};
-short yysindex[] = { 0,
+static short yysindex[] = { 0,
};
-short yygindex[] = { 0,
+static short yygindex[] = { 0,
- 0, 0, 196, 425, 0, -2, 0, 37, 634, -94,
- 0, 0, 0, -323, -15, 2445, 0, 999, 414, 417,
- 0, 0, 0, 463, -43, 0, 0, 321, -198, 103,
+ 0, 0, 196, 425, 0, 0, -2, 0, 37, 634,
+ -94, 0, 0, 0, -323, -15, 2445, 0, 999, 414,
+ 417, 0, 0, 0, 463, -43, 0, 0, 321, -198,
@@ -300,7 +239,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0,
};
-char *yyrule[] = {
+static char *yyrule[] = {
"$accept : prog",
- "$$1 :",
- "prog : $$1 lineseq",
+ "prog : progstart lineseq",
+ "block : '{' remember lineseq '}'",
@@ -1456,17 +1395,6 @@
#define YYMAXDEPTH 500
#endif
-short yyss[YYSTACKSIZE];
-YYSTYPE yyvs[YYSTACKSIZE];
-#define yystacksize YYSTACKSIZE
- #line 789 "perly.y"
+ #line 793 "perly.y"
/* PROGRAM */
@@ -1477,7 +1405,7 @@
#define yyparse() Perl_yyparse(pTHX)
-#line 1481 "y.tab.c"
-+#line 1481 "perly.c"
++#line 1409 "perly.c"
#define YYABORT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
-@@ -1485,10 +1413,30 @@
+@@ -1485,11 +1413,31 @@
yyparse()
{
register int yym, yyn, yystate;
register char *yys;
- extern char *getenv();
+#endif
-
++
+ struct ysv *ysave;
+#ifdef USE_ITHREADS
+ ENTER; /* force yydestruct() before we return */
+ ysave->oldyychar = yychar;
+ ysave->oldyyval = yyval;
+ ysave->oldyylval = yylval;
-+
+
+- if (yys = getenv("YYDEBUG"))
+#if YYDEBUG
- if (yys = getenv("YYDEBUG"))
++ if ((yys = getenv("YYDEBUG")))
{
yyn = *yys;
-@@ -1501,6 +1449,16 @@
+ if (yyn >= '0' && yyn <= '9')
+@@ -1501,12 +1449,22 @@
yyerrflag = 0;
yychar = (-1);
yyssp = yyss;
yyvsp = yyvs;
*yyssp = yystate = 0;
+
+ yyloop:
+- if (yyn = yydefred[yystate]) goto yyreduce;
++ if ((yyn = yydefred[yystate])) goto yyreduce;
+ if (yychar < 0)
+ {
+ if ((yychar = yylex()) < 0) yychar = 0;
@@ -1516,7 +1474,7 @@
yys = 0;
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
#endif
if (yyssp >= yyss + yystacksize - 1)
{
-- goto yyoverflow;
+ /*
+ ** reallocate and recover. Note that pointers
+ ** have to be reset, or bad things will happen
+ ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
+ ysave->yyss = Renew(yyss, yystacksize, short);
+ if (!yyvs || !yyss)
-+ goto yyoverflow;
+ goto yyoverflow;
+ yyssp = yyss + yyps_index;
+ yyvsp = yyvs + yypv_index;
}
*++yyssp = yystate = yytable[yyn];
*++yyvsp = yylval;
-@@ -1549,12 +1519,12 @@
+@@ -1547,14 +1517,14 @@
+ }
+ if (yyerrflag) goto yyinrecovery;
#ifdef lint
- goto yynewerror;
+- goto yynewerror;
++
#endif
-yynewerror:
+
yyerror("syntax error");
#ifdef lint
- goto yyerrlab;
+- goto yyerrlab;
++
#endif
-yyerrlab:
+
#endif
if (yyssp >= yyss + yystacksize - 1)
{
-- goto yyoverflow;
+ /*
+ ** reallocate and recover. Note that pointers
+ ** have to be reset, or bad things will happen
+ ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
+ ysave->yyss = Renew(yyss, yystacksize, short);
+ if (!yyvs || !yyss)
-+ goto yyoverflow;
+ goto yyoverflow;
+ yyssp = yyss + yyps_index;
+ yyvsp = yyvs + yypv_index;
}
#endif
yym = yylen[yyn];
@@ -2473,7 +2455,7 @@
- #line 786 "perly.y"
+ #line 790 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-#line 2477 "y.tab.c"
-+#line 2477 "perly.c"
++#line 2459 "perly.c"
}
yyssp -= yym;
yystate = *yyssp;
#endif
if (yyssp >= yyss + yystacksize - 1)
{
-- goto yyoverflow;
+ /*
+ ** reallocate and recover. Note that pointers
+ ** have to be reset, or bad things will happen
+ ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
+ ysave->yyss = Renew(yyss, yystacksize, short);
+ if (!yyvs || !yyss)
-+ goto yyoverflow;
+ goto yyoverflow;
+ yyssp = yyss + yyps_index;
+ yyvsp = yyvs + yypv_index;
}
#line 54 "perly.c"
#define YYERRCODE 256
static short yylhs[] = { -1,
- 54, 0, 8, 6, 9, 7, 10, 10, 10, 11,
- 11, 11, 11, 24, 24, 24, 24, 24, 24, 24,
- 14, 14, 14, 13, 13, 42, 42, 12, 12, 12,
- 12, 12, 12, 12, 26, 26, 27, 27, 28, 29,
- 30, 31, 32, 53, 53, 1, 1, 1, 1, 1,
- 2, 38, 38, 46, 55, 3, 4, 5, 39, 40,
- 40, 44, 44, 44, 45, 45, 41, 41, 56, 56,
- 58, 57, 15, 15, 15, 25, 25, 25, 36, 36,
- 36, 36, 36, 36, 36, 36, 59, 36, 37, 37,
+ 0, 9, 7, 6, 10, 8, 11, 11, 11, 12,
+ 12, 12, 12, 25, 25, 25, 25, 25, 25, 25,
+ 15, 15, 15, 14, 14, 43, 43, 13, 13, 13,
+ 13, 13, 13, 13, 27, 27, 28, 28, 29, 30,
+ 31, 32, 33, 54, 54, 1, 1, 1, 1, 1,
+ 2, 39, 39, 47, 55, 3, 4, 5, 40, 41,
+ 41, 45, 45, 45, 46, 46, 42, 42, 56, 56,
+ 58, 57, 16, 16, 16, 26, 26, 26, 37, 37,
+ 37, 37, 37, 37, 37, 37, 59, 37, 38, 38,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 50, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 51, 51, 51, 51, 51, 51,
+ 51, 51, 52, 52, 52, 52, 52, 53, 53, 53,
+ 53, 53, 53, 17, 17, 17, 17, 17, 17, 17,
17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 49, 49, 49, 49, 49, 49, 49, 49, 49,
- 49, 49, 49, 49, 50, 50, 50, 50, 50, 50,
- 50, 50, 51, 51, 51, 51, 51, 52, 52, 52,
- 52, 52, 52, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 47, 47, 48, 48, 48, 48,
- 48, 33, 33, 34, 34, 34, 43, 23, 18, 19,
- 20, 21, 22, 35, 35, 35, 35,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 48, 48, 49, 49, 49, 49,
+ 49, 34, 34, 35, 35, 35, 44, 24, 19, 20,
+ 21, 22, 23, 36, 36, 36, 36,
};
static short yylen[] = { 2,
- 0, 2, 4, 0, 4, 0, 0, 2, 2, 2,
+ 2, 4, 0, 0, 4, 0, 0, 2, 2, 2,
1, 2, 3, 1, 1, 3, 3, 3, 3, 3,
0, 2, 6, 7, 7, 0, 2, 8, 8, 10,
9, 8, 11, 3, 0, 1, 0, 1, 1, 1,
1, 0, 1, 0, 1, 2, 1, 2, 2, 2,
2, 2, 2, 1, 1, 1, 1,
};
-static short yydefred[] = { 1,
+static short yydefred[] = { 4,
0, 7, 0, 45, 58, 56, 0, 56, 56, 8,
46, 9, 11, 48, 0, 47, 49, 50, 0, 0,
- 0, 70, 71, 0, 14, 4, 173, 0, 0, 154,
+ 0, 70, 71, 0, 14, 3, 173, 0, 0, 154,
0, 168, 0, 57, 57, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 146, 148, 0, 0, 0,
0, 174, 140, 134, 135, 136, 137, 52, 0, 59,
0, 69, 0, 0, 7, 194, 197, 196, 195, 0,
- 0, 0, 0, 0, 0, 4, 4, 4, 4, 4,
- 4, 0, 0, 0, 0, 0, 163, 0, 0, 0,
+ 0, 0, 0, 0, 0, 3, 3, 3, 3, 3,
+ 3, 0, 0, 0, 0, 0, 163, 0, 0, 0,
0, 85, 0, 192, 0, 129, 0, 0, 0, 0,
0, 0, 0, 179, 181, 180, 0, 188, 0, 0,
0, 0, 0, 0, 0, 0, 124, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 119, 120, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 13,
0, 51, 61, 0, 0, 0, 0, 83, 0, 0,
- 87, 0, 0, 0, 0, 0, 0, 0, 4, 167,
+ 87, 0, 0, 0, 0, 0, 0, 0, 3, 167,
169, 0, 0, 0, 0, 0, 0, 0, 126, 0,
158, 178, 0, 0, 175, 0, 0, 123, 27, 0,
0, 19, 0, 0, 0, 0, 73, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 89, 0, 0, 90, 0, 0, 101, 0,
0, 0, 0, 0, 0, 0, 156, 0, 0, 0,
- 0, 0, 0, 3, 0, 0, 171, 0, 0, 0,
+ 0, 0, 0, 2, 0, 0, 171, 0, 0, 0,
42, 0, 43, 0, 0, 0, 0, 187, 0, 0,
36, 41, 0, 0, 0, 170, 186, 86, 0, 130,
0, 132, 0, 125, 177, 65, 0, 0, 0, 0,
0, 33, 0, 23,
};
static short yydgoto[] = { 1,
- 10, 11, 20, 104, 19, 95, 370, 98, 359, 3,
- 12, 13, 70, 375, 285, 72, 73, 74, 75, 76,
- 77, 78, 79, 291, 81, 292, 281, 283, 286, 294,
- 282, 284, 122, 214, 100, 82, 257, 89, 91, 194,
- 327, 156, 289, 271, 225, 14, 83, 137, 84, 85,
- 86, 87, 15, 2, 16, 17, 18, 93, 278,
+ 10, 11, 20, 104, 19, 2, 95, 370, 98, 359,
+ 3, 12, 13, 70, 375, 285, 72, 73, 74, 75,
+ 76, 77, 78, 79, 291, 81, 292, 281, 283, 286,
+ 294, 282, 284, 122, 214, 100, 82, 257, 89, 91,
+ 194, 327, 156, 289, 271, 225, 14, 83, 137, 84,
+ 85, 86, 87, 15, 16, 17, 18, 93, 278,
};
static short yysindex[] = { 0,
0, 0, -132, 0, 0, 0, -51, 0, 0, 0,
0, 0, 179, 0,
};
static short yygindex[] = { 0,
- 0, 0, 196, 425, 0, -2, 0, 37, 634, -94,
- 0, 0, 0, -323, -15, 2445, 0, 999, 414, 417,
- 0, 0, 0, 463, -43, 0, 0, 321, -198, 103,
- 147, 280, -91, -185, 1, 0, 0, 0, 464, -44,
- 222, 338, 0, -179, 0, 0, 0, 0, 0, 0,
+ 0, 0, 196, 425, 0, 0, -2, 0, 37, 634,
+ -94, 0, 0, 0, -323, -15, 2445, 0, 999, 414,
+ 417, 0, 0, 0, 463, -43, 0, 0, 321, -198,
+ 103, 147, 280, -91, -185, 1, 0, 0, 0, 464,
+ -44, 222, 338, 0, -179, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0,
};
#define YYTABLESIZE 4568
307, 21, 180, 226, 21, 21, 21, 345, 21, 350,
21, 21, 65, 21, 272, 96, 162, 163, 121, 298,
97, 162, 163, 270, 121, 304, 310, 21, 312, 313,
- 306, 26, 21, 26, 26, 253, 2, 162, 163, 113,
+ 306, 26, 21, 26, 26, 253, 1, 162, 163, 113,
113, 113, 113, 162, 163, 308, 113, 314, 113, 367,
163, 110, 162, 163, 60, 75, 75, 75, 75, 21,
162, 163, 75, 162, 163, 381, 330, 113, 113, 44,
};
static char *yyrule[] = {
"$accept : prog",
-"$$1 :",
-"prog : $$1 lineseq",
+"prog : progstart lineseq",
"block : '{' remember lineseq '}'",
"remember :",
+"progstart :",
"mblock : '{' mremember lineseq '}'",
"mremember :",
"lineseq :",
"subbody : ';'",
"package : PACKAGE WORD ';'",
"package : PACKAGE ';'",
-"$$2 :",
-"use : USE startsub $$2 WORD WORD listexpr ';'",
+"$$1 :",
+"use : USE startsub $$1 WORD WORD listexpr ';'",
"expr : expr ANDOP expr",
"expr : expr OROP expr",
"expr : argexpr",
"listop : FUNCMETH indirob '(' listexprcom ')'",
"listop : LSTOP listexpr",
"listop : FUNC '(' listexprcom ')'",
-"$$3 :",
-"listop : LSTOPSUB startanonsub block $$3 listexpr",
+"$$2 :",
+"listop : LSTOPSUB startanonsub block $$2 listexpr",
"method : METHOD",
"method : scalar",
"subscripted : star '{' expr ';' '}'",
#define YYMAXDEPTH 500
#endif
#endif
-#line 789 "perly.y"
+#line 793 "perly.y"
/* PROGRAM */
/* more stuff added to make perly_c.diff easier to apply */
#endif
#define yyparse() Perl_yyparse(pTHX)
-#line 1481 "perly.c"
+#line 1409 "perly.c"
#define YYABORT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
ysave->oldyychar = yychar;
ysave->oldyyval = yyval;
ysave->oldyylval = yylval;
-
+
#if YYDEBUG
- if (yys = getenv("YYDEBUG"))
+ if ((yys = getenv("YYDEBUG")))
{
yyn = *yys;
if (yyn >= '0' && yyn <= '9')
*yyssp = yystate = 0;
yyloop:
- if (yyn = yydefred[yystate]) goto yyreduce;
+ if ((yyn = yydefred[yystate])) goto yyreduce;
if (yychar < 0)
{
if ((yychar = yylex()) < 0) yychar = 0;
ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
ysave->yyss = Renew(yyss, yystacksize, short);
if (!yyvs || !yyss)
- goto yyoverflow;
+ goto yyoverflow;
yyssp = yyss + yyps_index;
yyvsp = yyvs + yypv_index;
}
ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
ysave->yyss = Renew(yyss, yystacksize, short);
if (!yyvs || !yyss)
- goto yyoverflow;
+ goto yyoverflow;
yyssp = yyss + yyps_index;
yyvsp = yyvs + yypv_index;
}
switch (yyn)
{
case 1:
-#line 130 "perly.y"
-{
-#if defined(YYDEBUG) && defined(DEBUGGING)
- yydebug = (DEBUG_p_TEST);
-#endif
- PL_expect = XSTATE; yyval.ival = block_start(TRUE);
- }
+#line 131 "perly.y"
+{ yyval.ival = yyvsp[-1].ival; newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); }
break;
case 2:
-#line 137 "perly.y"
-{ newPROG(block_end(yyvsp[-1].ival,yyvsp[0].opval)); }
-break;
-case 3:
-#line 142 "perly.y"
+#line 136 "perly.y"
{ if (PL_copline > (line_t)yyvsp[-3].ival)
PL_copline = yyvsp[-3].ival;
yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
break;
-case 4:
-#line 148 "perly.y"
+case 3:
+#line 142 "perly.y"
{ yyval.ival = block_start(TRUE); }
break;
+case 4:
+#line 146 "perly.y"
+{
+#if defined(YYDEBUG) && defined(DEBUGGING)
+ yydebug = (DEBUG_p_TEST);
+#endif
+ PL_expect = XSTATE; yyval.ival = block_start(TRUE);
+ }
+break;
case 5:
-#line 152 "perly.y"
+#line 156 "perly.y"
{ if (PL_copline > (line_t)yyvsp[-3].ival)
PL_copline = yyvsp[-3].ival;
yyval.opval = block_end(yyvsp[-2].ival, yyvsp[-1].opval); }
break;
case 6:
-#line 158 "perly.y"
+#line 162 "perly.y"
{ yyval.ival = block_start(FALSE); }
break;
case 7:
-#line 163 "perly.y"
+#line 167 "perly.y"
{ yyval.opval = Nullop; }
break;
case 8:
-#line 165 "perly.y"
+#line 169 "perly.y"
{ yyval.opval = yyvsp[-1].opval; }
break;
case 9:
-#line 167 "perly.y"
+#line 171 "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 10:
-#line 175 "perly.y"
+#line 179 "perly.y"
{ yyval.opval = newSTATEOP(0, yyvsp[-1].pval, yyvsp[0].opval); }
break;
case 12:
-#line 178 "perly.y"
+#line 182 "perly.y"
{ if (yyvsp[-1].pval != Nullch) {
yyval.opval = newSTATEOP(0, yyvsp[-1].pval, newOP(OP_NULL, 0));
}
PL_expect = XSTATE; }
break;
case 13:
-#line 187 "perly.y"
+#line 191 "perly.y"
{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval, yyvsp[-1].opval);
PL_expect = XSTATE; }
break;
case 14:
-#line 193 "perly.y"
+#line 197 "perly.y"
{ yyval.opval = Nullop; }
break;
case 15:
-#line 195 "perly.y"
+#line 199 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 16:
-#line 197 "perly.y"
+#line 201 "perly.y"
{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[0].opval, yyvsp[-2].opval); }
break;
case 17:
-#line 199 "perly.y"
+#line 203 "perly.y"
{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[0].opval, yyvsp[-2].opval); }
break;
case 18:
-#line 201 "perly.y"
+#line 205 "perly.y"
{ yyval.opval = newLOOPOP(OPf_PARENS, 1, scalar(yyvsp[0].opval), yyvsp[-2].opval); }
break;
case 19:
-#line 203 "perly.y"
+#line 207 "perly.y"
{ yyval.opval = newLOOPOP(OPf_PARENS, 1, yyvsp[0].opval, yyvsp[-2].opval);}
break;
case 20:
-#line 205 "perly.y"
+#line 209 "perly.y"
{ yyval.opval = newFOROP(0, Nullch, yyvsp[-1].ival,
Nullop, yyvsp[0].opval, yyvsp[-2].opval, Nullop); }
break;
case 21:
-#line 211 "perly.y"
+#line 215 "perly.y"
{ yyval.opval = Nullop; }
break;
case 22:
-#line 213 "perly.y"
+#line 217 "perly.y"
{ (yyvsp[0].opval)->op_flags |= OPf_PARENS; yyval.opval = scope(yyvsp[0].opval); }
break;
case 23:
-#line 215 "perly.y"
+#line 219 "perly.y"
{ PL_copline = yyvsp[-5].ival;
yyval.opval = newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval);
PL_hints |= HINT_BLOCK_SCOPE; }
break;
case 24:
-#line 222 "perly.y"
+#line 226 "perly.y"
{ PL_copline = yyvsp[-6].ival;
yyval.opval = block_end(yyvsp[-4].ival,
newCONDOP(0, yyvsp[-3].opval, scope(yyvsp[-1].opval), yyvsp[0].opval)); }
break;
case 25:
-#line 226 "perly.y"
+#line 230 "perly.y"
{ PL_copline = 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 233 "perly.y"
+#line 237 "perly.y"
{ yyval.opval = Nullop; }
break;
case 27:
-#line 235 "perly.y"
+#line 239 "perly.y"
{ yyval.opval = scope(yyvsp[0].opval); }
break;
case 28:
-#line 240 "perly.y"
+#line 244 "perly.y"
{ PL_copline = yyvsp[-6].ival;
yyval.opval = block_end(yyvsp[-4].ival,
newSTATEOP(0, yyvsp[-7].pval,
yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
break;
case 29:
-#line 246 "perly.y"
+#line 250 "perly.y"
{ PL_copline = yyvsp[-6].ival;
yyval.opval = block_end(yyvsp[-4].ival,
newSTATEOP(0, yyvsp[-7].pval,
yyvsp[-6].ival, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval))); }
break;
case 30:
-#line 252 "perly.y"
+#line 256 "perly.y"
{ yyval.opval = block_end(yyvsp[-6].ival,
newFOROP(0, yyvsp[-9].pval, yyvsp[-8].ival, yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
case 31:
-#line 255 "perly.y"
+#line 259 "perly.y"
{ yyval.opval = block_end(yyvsp[-4].ival,
newFOROP(0, yyvsp[-8].pval, yyvsp[-7].ival, mod(yyvsp[-6].opval, OP_ENTERLOOP),
yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
case 32:
-#line 259 "perly.y"
+#line 263 "perly.y"
{ yyval.opval = block_end(yyvsp[-4].ival,
newFOROP(0, yyvsp[-7].pval, yyvsp[-6].ival, Nullop, yyvsp[-3].opval, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
case 33:
-#line 263 "perly.y"
+#line 267 "perly.y"
{ OP *forop;
PL_copline = yyvsp[-9].ival;
forop = newSTATEOP(0, yyvsp[-10].pval,
yyval.opval = block_end(yyvsp[-7].ival, forop); }
break;
case 34:
-#line 278 "perly.y"
+#line 282 "perly.y"
{ yyval.opval = newSTATEOP(0, yyvsp[-2].pval,
newWHILEOP(0, 1, (LOOP*)Nullop,
NOLINE, Nullop, yyvsp[-1].opval, yyvsp[0].opval)); }
break;
case 35:
-#line 285 "perly.y"
+#line 289 "perly.y"
{ yyval.opval = Nullop; }
break;
case 37:
-#line 291 "perly.y"
+#line 295 "perly.y"
{ (void)scan_num("1", &yylval); yyval.opval = yylval.opval; }
break;
case 39:
-#line 297 "perly.y"
+#line 301 "perly.y"
{ yyval.opval = invert(scalar(yyvsp[0].opval)); }
break;
case 40:
-#line 302 "perly.y"
+#line 306 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
case 41:
-#line 306 "perly.y"
+#line 310 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
case 42:
-#line 310 "perly.y"
+#line 314 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
case 43:
-#line 314 "perly.y"
+#line 318 "perly.y"
{ yyval.opval = yyvsp[0].opval; intro_my(); }
break;
case 44:
-#line 319 "perly.y"
+#line 323 "perly.y"
{ yyval.pval = Nullch; }
break;
case 46:
-#line 325 "perly.y"
+#line 329 "perly.y"
{ yyval.ival = 0; }
break;
case 47:
-#line 327 "perly.y"
+#line 331 "perly.y"
{ yyval.ival = 0; }
break;
case 48:
-#line 329 "perly.y"
+#line 333 "perly.y"
{ yyval.ival = 0; }
break;
case 49:
-#line 331 "perly.y"
+#line 335 "perly.y"
{ yyval.ival = 0; }
break;
case 50:
-#line 333 "perly.y"
+#line 337 "perly.y"
{ yyval.ival = 0; }
break;
case 51:
-#line 337 "perly.y"
+#line 341 "perly.y"
{ newFORM(yyvsp[-2].ival, yyvsp[-1].opval, yyvsp[0].opval); }
break;
case 52:
-#line 340 "perly.y"
+#line 344 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 53:
-#line 341 "perly.y"
+#line 345 "perly.y"
{ yyval.opval = Nullop; }
break;
case 54:
-#line 346 "perly.y"
+#line 350 "perly.y"
{ newMYSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
break;
case 55:
-#line 351 "perly.y"
+#line 355 "perly.y"
{ newATTRSUB(yyvsp[-4].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
break;
case 56:
-#line 355 "perly.y"
+#line 359 "perly.y"
{ yyval.ival = start_subparse(FALSE, 0); }
break;
case 57:
-#line 359 "perly.y"
+#line 363 "perly.y"
{ yyval.ival = start_subparse(FALSE, CVf_ANON); }
break;
case 58:
-#line 363 "perly.y"
+#line 367 "perly.y"
{ yyval.ival = start_subparse(TRUE, 0); }
break;
case 59:
-#line 367 "perly.y"
+#line 371 "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"))
yyval.opval = yyvsp[0].opval; }
break;
case 60:
-#line 376 "perly.y"
+#line 380 "perly.y"
{ yyval.opval = Nullop; }
break;
case 62:
-#line 382 "perly.y"
+#line 386 "perly.y"
{ yyval.opval = Nullop; }
break;
case 63:
-#line 384 "perly.y"
+#line 388 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 64:
-#line 386 "perly.y"
+#line 390 "perly.y"
{ yyval.opval = Nullop; }
break;
case 65:
-#line 391 "perly.y"
+#line 395 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 66:
-#line 393 "perly.y"
+#line 397 "perly.y"
{ yyval.opval = Nullop; }
break;
case 67:
-#line 397 "perly.y"
+#line 401 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 68:
-#line 398 "perly.y"
+#line 402 "perly.y"
{ yyval.opval = Nullop; PL_expect = XSTATE; }
break;
case 69:
-#line 402 "perly.y"
+#line 406 "perly.y"
{ package(yyvsp[-1].opval); }
break;
case 70:
-#line 404 "perly.y"
+#line 408 "perly.y"
{ package(Nullop); }
break;
case 71:
-#line 408 "perly.y"
+#line 412 "perly.y"
{ CvSPECIAL_on(PL_compcv); /* It's a BEGIN {} */ }
break;
case 72:
-#line 410 "perly.y"
+#line 414 "perly.y"
{ utilize(yyvsp[-6].ival, yyvsp[-5].ival, yyvsp[-3].opval, yyvsp[-2].opval, yyvsp[-1].opval); }
break;
case 73:
-#line 415 "perly.y"
+#line 419 "perly.y"
{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
case 74:
-#line 417 "perly.y"
+#line 421 "perly.y"
{ yyval.opval = newLOGOP(yyvsp[-1].ival, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
case 76:
-#line 423 "perly.y"
+#line 427 "perly.y"
{ yyval.opval = yyvsp[-1].opval; }
break;
case 77:
-#line 425 "perly.y"
+#line 429 "perly.y"
{ yyval.opval = append_elem(OP_LIST, yyvsp[-2].opval, yyvsp[0].opval); }
break;
case 79:
-#line 431 "perly.y"
+#line 435 "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 80:
-#line 434 "perly.y"
+#line 438 "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 81:
-#line 437 "perly.y"
+#line 441 "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 82:
-#line 442 "perly.y"
+#line 446 "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 83:
-#line 446 "perly.y"
+#line 450 "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 84:
-#line 451 "perly.y"
+#line 455 "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 85:
-#line 456 "perly.y"
+#line 460 "perly.y"
{ yyval.opval = convert(yyvsp[-1].ival, 0, yyvsp[0].opval); }
break;
case 86:
-#line 458 "perly.y"
+#line 462 "perly.y"
{ yyval.opval = convert(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
break;
case 87:
-#line 460 "perly.y"
+#line 464 "perly.y"
{ yyvsp[0].opval = newANONATTRSUB(yyvsp[-1].ival, 0, Nullop, yyvsp[0].opval); }
break;
case 88:
-#line 462 "perly.y"
+#line 466 "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 91:
-#line 476 "perly.y"
+#line 480 "perly.y"
{ yyval.opval = newBINOP(OP_GELEM, 0, yyvsp[-4].opval, scalar(yyvsp[-2].opval)); }
break;
case 92:
-#line 478 "perly.y"
+#line 482 "perly.y"
{ yyval.opval = newBINOP(OP_AELEM, 0, oopsAV(yyvsp[-3].opval), scalar(yyvsp[-1].opval)); }
break;
case 93:
-#line 480 "perly.y"
+#line 484 "perly.y"
{ yyval.opval = newBINOP(OP_AELEM, 0,
ref(newAVREF(yyvsp[-4].opval),OP_RV2AV),
scalar(yyvsp[-1].opval));}
break;
case 94:
-#line 484 "perly.y"
+#line 488 "perly.y"
{ yyval.opval = newBINOP(OP_AELEM, 0,
ref(newAVREF(yyvsp[-3].opval),OP_RV2AV),
scalar(yyvsp[-1].opval));}
break;
case 95:
-#line 488 "perly.y"
+#line 492 "perly.y"
{ yyval.opval = newBINOP(OP_HELEM, 0, oopsHV(yyvsp[-4].opval), jmaybe(yyvsp[-2].opval));
PL_expect = XOPERATOR; }
break;
case 96:
-#line 491 "perly.y"
+#line 495 "perly.y"
{ yyval.opval = newBINOP(OP_HELEM, 0,
ref(newHVREF(yyvsp[-5].opval),OP_RV2HV),
jmaybe(yyvsp[-2].opval));
PL_expect = XOPERATOR; }
break;
case 97:
-#line 496 "perly.y"
+#line 500 "perly.y"
{ yyval.opval = newBINOP(OP_HELEM, 0,
ref(newHVREF(yyvsp[-4].opval),OP_RV2HV),
jmaybe(yyvsp[-2].opval));
PL_expect = XOPERATOR; }
break;
case 98:
-#line 501 "perly.y"
+#line 505 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
newCVREF(0, scalar(yyvsp[-3].opval))); }
break;
case 99:
-#line 504 "perly.y"
+#line 508 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[-1].opval,
newCVREF(0, scalar(yyvsp[-4].opval)))); }
break;
case 100:
-#line 509 "perly.y"
+#line 513 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[-1].opval,
newCVREF(0, scalar(yyvsp[-3].opval)))); }
break;
case 101:
-#line 513 "perly.y"
+#line 517 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
newCVREF(0, scalar(yyvsp[-2].opval))); }
break;
case 102:
-#line 519 "perly.y"
+#line 523 "perly.y"
{ yyval.opval = newASSIGNOP(OPf_STACKED, yyvsp[-2].opval, yyvsp[-1].ival, yyvsp[0].opval); }
break;
case 103:
-#line 521 "perly.y"
+#line 525 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
case 104:
-#line 523 "perly.y"
+#line 527 "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 105:
-#line 527 "perly.y"
+#line 531 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
case 106:
-#line 529 "perly.y"
+#line 533 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
case 107:
-#line 531 "perly.y"
+#line 535 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
case 108:
-#line 533 "perly.y"
+#line 537 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
case 109:
-#line 535 "perly.y"
+#line 539 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
case 110:
-#line 537 "perly.y"
+#line 541 "perly.y"
{ yyval.opval = newBINOP(yyvsp[-1].ival, 0, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval)); }
break;
case 111:
-#line 539 "perly.y"
+#line 543 "perly.y"
{ yyval.opval = newRANGE(yyvsp[-1].ival, scalar(yyvsp[-2].opval), scalar(yyvsp[0].opval));}
break;
case 112:
-#line 541 "perly.y"
+#line 545 "perly.y"
{ yyval.opval = newLOGOP(OP_AND, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
case 113:
-#line 543 "perly.y"
+#line 547 "perly.y"
{ yyval.opval = newLOGOP(OP_OR, 0, yyvsp[-2].opval, yyvsp[0].opval); }
break;
case 114:
-#line 545 "perly.y"
+#line 549 "perly.y"
{ yyval.opval = bind_match(yyvsp[-1].ival, yyvsp[-2].opval, yyvsp[0].opval); }
break;
case 115:
-#line 550 "perly.y"
+#line 554 "perly.y"
{ yyval.opval = newUNOP(OP_NEGATE, 0, scalar(yyvsp[0].opval)); }
break;
case 116:
-#line 552 "perly.y"
+#line 556 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 117:
-#line 554 "perly.y"
+#line 558 "perly.y"
{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
break;
case 118:
-#line 556 "perly.y"
+#line 560 "perly.y"
{ yyval.opval = newUNOP(OP_COMPLEMENT, 0, scalar(yyvsp[0].opval));}
break;
case 119:
-#line 558 "perly.y"
+#line 562 "perly.y"
{ yyval.opval = newUNOP(OP_POSTINC, 0,
mod(scalar(yyvsp[-1].opval), OP_POSTINC)); }
break;
case 120:
-#line 561 "perly.y"
+#line 565 "perly.y"
{ yyval.opval = newUNOP(OP_POSTDEC, 0,
mod(scalar(yyvsp[-1].opval), OP_POSTDEC)); }
break;
case 121:
-#line 564 "perly.y"
+#line 568 "perly.y"
{ yyval.opval = newUNOP(OP_PREINC, 0,
mod(scalar(yyvsp[0].opval), OP_PREINC)); }
break;
case 122:
-#line 567 "perly.y"
+#line 571 "perly.y"
{ yyval.opval = newUNOP(OP_PREDEC, 0,
mod(scalar(yyvsp[0].opval), OP_PREDEC)); }
break;
case 123:
-#line 574 "perly.y"
+#line 578 "perly.y"
{ yyval.opval = newANONLIST(yyvsp[-1].opval); }
break;
case 124:
-#line 576 "perly.y"
+#line 580 "perly.y"
{ yyval.opval = newANONLIST(Nullop); }
break;
case 125:
-#line 578 "perly.y"
+#line 582 "perly.y"
{ yyval.opval = newANONHASH(yyvsp[-2].opval); }
break;
case 126:
-#line 580 "perly.y"
+#line 584 "perly.y"
{ yyval.opval = newANONHASH(Nullop); }
break;
case 127:
-#line 582 "perly.y"
+#line 586 "perly.y"
{ yyval.opval = newANONATTRSUB(yyvsp[-3].ival, yyvsp[-2].opval, yyvsp[-1].opval, yyvsp[0].opval); }
break;
case 128:
-#line 588 "perly.y"
+#line 592 "perly.y"
{ yyval.opval = dofile(yyvsp[0].opval); }
break;
case 129:
-#line 590 "perly.y"
+#line 594 "perly.y"
{ yyval.opval = newUNOP(OP_NULL, OPf_SPECIAL, scope(yyvsp[0].opval)); }
break;
case 130:
-#line 592 "perly.y"
+#line 596 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
prepend_elem(OP_LIST,
)),Nullop)); dep();}
break;
case 131:
-#line 600 "perly.y"
+#line 604 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB,
OPf_SPECIAL|OPf_STACKED,
append_elem(OP_LIST,
)))); dep();}
break;
case 132:
-#line 609 "perly.y"
+#line 613 "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 133:
-#line 613 "perly.y"
+#line 617 "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 138:
-#line 625 "perly.y"
+#line 629 "perly.y"
{ yyval.opval = newCONDOP(0, yyvsp[-4].opval, yyvsp[-2].opval, yyvsp[0].opval); }
break;
case 139:
-#line 627 "perly.y"
+#line 631 "perly.y"
{ yyval.opval = newUNOP(OP_REFGEN, 0, mod(yyvsp[0].opval,OP_REFGEN)); }
break;
case 140:
-#line 629 "perly.y"
+#line 633 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 141:
-#line 631 "perly.y"
+#line 635 "perly.y"
{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
break;
case 142:
-#line 633 "perly.y"
+#line 637 "perly.y"
{ yyval.opval = sawparens(yyvsp[-1].opval); }
break;
case 143:
-#line 635 "perly.y"
+#line 639 "perly.y"
{ yyval.opval = sawparens(newNULLLIST()); }
break;
case 144:
-#line 637 "perly.y"
+#line 641 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 145:
-#line 639 "perly.y"
+#line 643 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 146:
-#line 641 "perly.y"
+#line 645 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 147:
-#line 643 "perly.y"
+#line 647 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 148:
-#line 645 "perly.y"
+#line 649 "perly.y"
{ yyval.opval = newUNOP(OP_AV2ARYLEN, 0, ref(yyvsp[0].opval, OP_AV2ARYLEN));}
break;
case 149:
-#line 647 "perly.y"
+#line 651 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 150:
-#line 649 "perly.y"
+#line 653 "perly.y"
{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, yyvsp[-4].opval); }
break;
case 151:
-#line 651 "perly.y"
+#line 655 "perly.y"
{ yyval.opval = newSLICEOP(0, yyvsp[-1].opval, Nullop); }
break;
case 152:
-#line 653 "perly.y"
+#line 657 "perly.y"
{ yyval.opval = prepend_elem(OP_ASLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_ASLICE, 0,
ref(yyvsp[-3].opval, OP_ASLICE))); }
break;
case 153:
-#line 659 "perly.y"
+#line 663 "perly.y"
{ yyval.opval = prepend_elem(OP_HSLICE,
newOP(OP_PUSHMARK, 0),
newLISTOP(OP_HSLICE, 0,
PL_expect = XOPERATOR; }
break;
case 154:
-#line 666 "perly.y"
+#line 670 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 155:
-#line 668 "perly.y"
+#line 672 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, 0, scalar(yyvsp[0].opval)); }
break;
case 156:
-#line 670 "perly.y"
+#line 674 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED, scalar(yyvsp[-2].opval)); }
break;
case 157:
-#line 672 "perly.y"
+#line 676 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[-1].opval, scalar(yyvsp[-3].opval))); }
break;
case 158:
-#line 675 "perly.y"
+#line 679 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
break;
case 159:
-#line 678 "perly.y"
+#line 682 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, OPf_SPECIAL);
PL_hints |= HINT_BLOCK_SCOPE; }
break;
case 160:
-#line 681 "perly.y"
+#line 685 "perly.y"
{ yyval.opval = newLOOPEX(yyvsp[-1].ival,yyvsp[0].opval); }
break;
case 161:
-#line 683 "perly.y"
+#line 687 "perly.y"
{ yyval.opval = newUNOP(OP_NOT, 0, scalar(yyvsp[0].opval)); }
break;
case 162:
-#line 685 "perly.y"
+#line 689 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, 0); }
break;
case 163:
-#line 687 "perly.y"
+#line 691 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
break;
case 164:
-#line 689 "perly.y"
+#line 693 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-1].ival, 0, yyvsp[0].opval); }
break;
case 165:
-#line 691 "perly.y"
+#line 695 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
append_elem(OP_LIST, yyvsp[0].opval, scalar(yyvsp[-1].opval))); }
break;
case 166:
-#line 694 "perly.y"
+#line 698 "perly.y"
{ yyval.opval = newOP(yyvsp[0].ival, 0); }
break;
case 167:
-#line 696 "perly.y"
+#line 700 "perly.y"
{ yyval.opval = newOP(yyvsp[-2].ival, 0); }
break;
case 168:
-#line 698 "perly.y"
+#line 702 "perly.y"
{ yyval.opval = newUNOP(OP_ENTERSUB, OPf_STACKED,
scalar(yyvsp[0].opval)); }
break;
case 169:
-#line 701 "perly.y"
+#line 705 "perly.y"
{ yyval.opval = newOP(yyvsp[-2].ival, OPf_SPECIAL); }
break;
case 170:
-#line 703 "perly.y"
+#line 707 "perly.y"
{ yyval.opval = newUNOP(yyvsp[-3].ival, 0, yyvsp[-1].opval); }
break;
case 171:
-#line 705 "perly.y"
+#line 709 "perly.y"
{ yyval.opval = pmruntime(yyvsp[-3].opval, yyvsp[-1].opval, Nullop); }
break;
case 172:
-#line 707 "perly.y"
+#line 711 "perly.y"
{ yyval.opval = pmruntime(yyvsp[-5].opval, yyvsp[-3].opval, yyvsp[-1].opval); }
break;
case 175:
-#line 714 "perly.y"
+#line 718 "perly.y"
{ yyval.opval = my_attrs(yyvsp[-1].opval,yyvsp[0].opval); }
break;
case 176:
-#line 716 "perly.y"
+#line 720 "perly.y"
{ yyval.opval = localize(yyvsp[0].opval,yyvsp[-1].ival); }
break;
case 177:
-#line 721 "perly.y"
+#line 725 "perly.y"
{ yyval.opval = sawparens(yyvsp[-1].opval); }
break;
case 178:
-#line 723 "perly.y"
+#line 727 "perly.y"
{ yyval.opval = sawparens(newNULLLIST()); }
break;
case 179:
-#line 725 "perly.y"
+#line 729 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 180:
-#line 727 "perly.y"
+#line 731 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 181:
-#line 729 "perly.y"
+#line 733 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 182:
-#line 734 "perly.y"
+#line 738 "perly.y"
{ yyval.opval = Nullop; }
break;
case 183:
-#line 736 "perly.y"
+#line 740 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 184:
-#line 740 "perly.y"
+#line 744 "perly.y"
{ yyval.opval = Nullop; }
break;
case 185:
-#line 742 "perly.y"
+#line 746 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
case 186:
-#line 744 "perly.y"
+#line 748 "perly.y"
{ yyval.opval = yyvsp[-1].opval; }
break;
case 187:
-#line 750 "perly.y"
+#line 754 "perly.y"
{ PL_in_my = 0; yyval.opval = my(yyvsp[0].opval); }
break;
case 188:
-#line 754 "perly.y"
+#line 758 "perly.y"
{ yyval.opval = newCVREF(yyvsp[-1].ival,yyvsp[0].opval); }
break;
case 189:
-#line 758 "perly.y"
+#line 762 "perly.y"
{ yyval.opval = newSVREF(yyvsp[0].opval); }
break;
case 190:
-#line 762 "perly.y"
+#line 766 "perly.y"
{ yyval.opval = newAVREF(yyvsp[0].opval); }
break;
case 191:
-#line 766 "perly.y"
+#line 770 "perly.y"
{ yyval.opval = newHVREF(yyvsp[0].opval); }
break;
case 192:
-#line 770 "perly.y"
+#line 774 "perly.y"
{ yyval.opval = newAVREF(yyvsp[0].opval); }
break;
case 193:
-#line 774 "perly.y"
+#line 778 "perly.y"
{ yyval.opval = newGVREF(0,yyvsp[0].opval); }
break;
case 194:
-#line 779 "perly.y"
+#line 783 "perly.y"
{ yyval.opval = scalar(yyvsp[0].opval); }
break;
case 195:
-#line 781 "perly.y"
+#line 785 "perly.y"
{ yyval.opval = scalar(yyvsp[0].opval); }
break;
case 196:
-#line 783 "perly.y"
+#line 787 "perly.y"
{ yyval.opval = scope(yyvsp[0].opval); }
break;
case 197:
-#line 786 "perly.y"
+#line 790 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-#line 2477 "perly.c"
+#line 2459 "perly.c"
}
yyssp -= yym;
yystate = *yyssp;
ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
ysave->yyss = Renew(yyss, yystacksize, short);
if (!yyvs || !yyss)
- goto yyoverflow;
+ goto yyoverflow;
yyssp = yyss + yyps_index;
yyvsp = yyvs + yypv_index;
}