-Index: perly.c
-*** perly.c.old Wed Jun 10 03:48:43 1998
---- perly.c Wed Jun 10 03:55:10 1998
+*** perly.c.orig Mon Jul 26 03:27:57 1999
+--- perly.c Mon Jul 26 02:47:03 1999
***************
-*** 7,10 ****
---- 7,18 ----
+*** 8,91 ****
#include "perl.h"
-+ #ifdef PERL_OBJECT
-+ static void
-+ Dep(CPerlObj *pPerl)
-+ {
-+ pPerl->deprecate("\"do\" to call subroutines");
-+ }
-+ #define dep() Dep(this)
-+ #else
- static void
- dep(void)
-***************
-*** 12,82 ****
- deprecate("\"do\" to call subroutines");
- }
+ #define dep() deprecate("\"do\" to call subroutines")
-! #line 29 "perly.y"
+! #line 27 "perly.y"
+! /* I sense a Big Blue pattern here... */
+! #if !defined(OEMVS) && !defined(__OPEN_VM) && !defined(POSIX_BC)
+! #line 31 "perly.y"
! typedef union {
! I32 ival;
! char *pval;
! OP *opval;
! GV *gvval;
! } YYSTYPE;
-! #line 23 "y.tab.c"
+! #line 39 "perly.y"
+! #endif /* !OEMVS && !__OPEN_VM && !POSIX_BC */
+
+! #ifdef USE_PURE_BISON
+! #define YYLEX_PARAM (&yychar)
+! #endif
+! #line 29 "y.tab.c"
! #define WORD 257
! #define METHOD 258
! #define FUNCMETH 259
! #define NOAMP 294
! #define LOCAL 295
! #define MY 296
-! #define OROP 297
-! #define ANDOP 298
-! #define NOTOP 299
-! #define ASSIGNOP 300
-! #define OROR 301
-! #define ANDAND 302
-! #define BITOROP 303
-! #define BITANDOP 304
-! #define SHIFTOP 305
-! #define MATCHOP 306
-! #define UMINUS 307
-! #define REFGEN 308
-! #define POWOP 309
-! #define PREINC 310
-! #define PREDEC 311
-! #define POSTINC 312
-! #define POSTDEC 313
-! #define ARROW 314
+! #define PREC_LOW 297
+! #define OROP 298
+! #define ANDOP 299
+! #define NOTOP 300
+! #define ASSIGNOP 301
+! #define OROR 302
+! #define ANDAND 303
+! #define BITOROP 304
+! #define BITANDOP 305
+! #define SHIFTOP 306
+! #define MATCHOP 307
+! #define UMINUS 308
+! #define REFGEN 309
+! #define POWOP 310
+! #define PREINC 311
+! #define PREDEC 312
+! #define POSTINC 313
+! #define POSTDEC 314
+! #define ARROW 315
#define YYERRCODE 256
- short yylhs[] = { -1,
---- 20,26 ----
- deprecate("\"do\" to call subroutines");
- }
-+ #endif
+! short yylhs[] = { -1,
+ 46, 0, 9, 7, 10, 8, 11, 11, 11, 12,
+ 12, 12, 12, 25, 25, 25, 25, 25, 25, 25,
+--- 8,25 ----
+ #include "perl.h"
+
++ #define yydebug PL_yydebug
++ #define yynerrs PL_yynerrs
++ #define yyerrflag PL_yyerrflag
++ #define yychar PL_yychar
++ #define yyval PL_yyval
++ #define yylval PL_yylval
++
+ #define dep() deprecate("\"do\" to call subroutines")
+
+! static void yydestruct(pTHXo_ void *ptr);
-! #line 16 "perly.c"
+! #line 27 "perly.y"
#define YYERRCODE 256
- short yylhs[] = { -1,
+! static short yylhs[] = { -1,
+ 46, 0, 9, 7, 10, 8, 11, 11, 11, 12,
+ 12, 12, 12, 25, 25, 25, 25, 25, 25, 25,
+***************
+*** 107,111 ****
+ 24, 19, 20, 21, 22, 23, 36, 36, 36, 36,
+ };
+! short yylen[] = { 2,
+ 0, 2, 4, 0, 4, 0, 0, 2, 2, 2,
+ 1, 2, 3, 1, 1, 3, 3, 3, 3, 3,
+--- 41,45 ----
+ 24, 19, 20, 21, 22, 23, 36, 36, 36, 36,
+ };
+! static short yylen[] = { 2,
+ 0, 2, 4, 0, 4, 0, 0, 2, 2, 2,
+ 1, 2, 3, 1, 1, 3, 3, 3, 3, 3,
+***************
+*** 127,131 ****
+ 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+ };
+! short yydefred[] = { 1,
+ 0, 7, 0, 45, 56, 54, 0, 54, 8, 46,
+ 9, 11, 0, 47, 48, 49, 0, 0, 0, 63,
+--- 61,65 ----
+ 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+ };
+! static short yydefred[] = { 1,
+ 0, 7, 0, 45, 56, 54, 0, 54, 8, 46,
+ 9, 11, 0, 47, 48, 49, 0, 0, 0, 63,
+***************
+*** 166,170 ****
+ 5, 0, 30, 0, 0, 33, 0, 23,
+ };
+! short yydgoto[] = { 1,
+ 9, 66, 10, 18, 96, 17, 87, 344, 90, 333,
+ 3, 11, 12, 68, 349, 267, 70, 71, 72, 73,
+--- 100,104 ----
+ 5, 0, 30, 0, 0, 33, 0, 23,
+ };
+! static short yydgoto[] = { 1,
+ 9, 66, 10, 18, 96, 17, 87, 344, 90, 333,
+ 3, 11, 12, 68, 349, 267, 70, 71, 72, 73,
+***************
+*** 174,178 ****
+ 260,
+ };
+! short yysindex[] = { 0,
+ 0, 0, 142, 0, 0, 0, -57, 0, 0, 0,
+ 0, 0, 622, 0, 0, 0, -239, -229, -10, 0,
+--- 108,112 ----
+ 260,
+ };
+! static short yysindex[] = { 0,
+ 0, 0, 142, 0, 0, 0, -57, 0, 0, 0,
+ 0, 0, 622, 0, 0, 0, -239, -229, -10, 0,
+***************
+*** 213,217 ****
+ 0, 228, 0, 92, 92, 0, -204, 0,
+ };
+! short yyrindex[] = { 0,
+ 0, 0, 225, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 155, 0, 0, 0,
+--- 147,151 ----
+ 0, 228, 0, 92, 92, 0, -204, 0,
+ };
+! static short yyrindex[] = { 0,
+ 0, 0, 225, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 155, 0, 0, 0,
+***************
+*** 252,256 ****
+ 0, 0, 0, 0, 0, 0, 168, 0,
+ };
+! short yygindex[] = { 0,
+ 0, 0, 0, 339, 320, 0, -11, 0, 913, 360,
+ -78, 0, 0, 0, -320, -13, 4321, 0, 1367, 0,
+--- 186,190 ----
+ 0, 0, 0, 0, 0, 0, 168, 0,
+ };
+! static short yygindex[] = { 0,
+ 0, 0, 0, 339, 320, 0, -11, 0, 913, 360,
+ -78, 0, 0, 0, -320, -13, 4321, 0, 1367, 0,
+***************
+*** 261,265 ****
+ };
+ #define YYTABLESIZE 4610
+! short yytable[] = { 69,
+ 206, 20, 295, 62, 113, 257, 184, 103, 183, 298,
+ 172, 62, 125, 104, 252, 350, 104, 81, 209, 169,
+--- 195,199 ----
+ };
+ #define YYTABLESIZE 4610
+! static short yytable[] = { 69,
+ 206, 20, 295, 62, 113, 257, 184, 103, 183, 298,
+ 172, 62, 125, 104, 252, 350, 104, 81, 209, 169,
+***************
+*** 724,728 ****
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 321,
+ };
+! short yycheck[] = { 13,
+ 59, 59, 59, 36, 43, 185, 92, 40, 87, 59,
+ 91, 36, 51, 41, 59, 336, 44, 257, 41, 40,
+--- 658,662 ----
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 321,
+ };
+! static short yycheck[] = { 13,
+ 59, 59, 59, 36, 43, 185, 92, 40, 87, 59,
+ 91, 36, 51, 41, 59, 336, 44, 257, 41, 40,
***************
-*** 1337,1361 ****
- int yyerrflag;
- int yychar;
+*** 1193,1197 ****
+ #define YYMAXTOKEN 315
+ #if YYDEBUG
+! char *yyname[] = {
+ "end-of-file",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,0,0,
+ "'!'",0,0,"'$'","'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'",0,0,0,0,0,0,0,
+--- 1127,1131 ----
+ #define YYMAXTOKEN 315
+ #if YYDEBUG
+! static char *yyname[] = {
+ "end-of-file",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,0,0,
+ "'!'",0,0,"'$'","'%'","'&'",0,"'('","')'","'*'","'+'","','","'-'",0,0,0,0,0,0,0,
+***************
+*** 1210,1214 ****
+ "POSTINC","POSTDEC","ARROW",
+ };
+! char *yyrule[] = {
+ "$accept : prog",
+ "$$1 :",
+--- 1144,1148 ----
+ "POSTINC","POSTDEC","ARROW",
+ };
+! static char *yyrule[] = {
+ "$accept : prog",
+ "$$1 :",
+***************
+*** 1408,1436 ****
+ #endif
+ #endif
+- int yydebug;
+- int yynerrs;
+- int yyerrflag;
+- int yychar;
- short *yyssp;
- YYSTYPE *yyvsp;
- YYSTYPE yyval;
- YYSTYPE yylval;
+- YYSTYPE yyval;
+- YYSTYPE yylval;
- short yyss[YYSTACKSIZE];
- YYSTYPE yyvs[YYSTACKSIZE];
- #define yystacksize YYSTACKSIZE
- #line 635 "perly.y"
+ #line 666 "perly.y"
/* PROGRAM */
-! #line 1349 "y.tab.c"
+! #line 1424 "y.tab.c"
#define YYABORT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
if (yys = getenv("YYDEBUG"))
{
---- 1281,1347 ----
- int yyerrflag;
- int yychar;
- YYSTYPE yyval;
- YYSTYPE yylval;
- #line 635 "perly.y"
+--- 1342,1391 ----
+ #endif
+ #endif
+ #line 666 "perly.y"
/* PROGRAM */
-! #line 1349 "perly.c"
+! #line 1427 "perly.c"
#define YYABORT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
+ YYSTYPE oldyylval;
+ };
+
-+ void
-+ yydestruct(void *ptr)
-+ {
-+ struct ysv* ysave = (struct ysv*)ptr;
-+ if (ysave->yyss) Safefree(ysave->yyss);
-+ if (ysave->yyvs) Safefree(ysave->yyvs);
-+ yydebug = ysave->oldyydebug;
-+ yynerrs = ysave->oldyynerrs;
-+ yyerrflag = ysave->oldyyerrflag;
-+ yychar = ysave->oldyychar;
-+ yyval = ysave->oldyyval;
-+ yylval = ysave->oldyylval;
-+ Safefree(ysave);
-+ }
-+
int
-! yyparse(void)
+! Perl_yyparse(pTHX)
{
register int yym, yyn, yystate;
+ register short *yyssp;
if (yys = getenv("YYDEBUG"))
{
***************
-*** 1370,1373 ****
---- 1356,1369 ----
+*** 1445,1448 ****
+--- 1400,1413 ----
yychar = (-1);
+ /*
yyssp = yyss;
yyvsp = yyvs;
***************
-*** 1385,1389 ****
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
-! printf("yydebug: state %d, reading %d (%s)\n", yystate,
- yychar, yys);
- }
---- 1381,1385 ----
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
-! PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", yystate,
- yychar, yys);
- }
-***************
-*** 1395,1404 ****
+*** 1470,1479 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, shifting to state %d\n",
! goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
---- 1391,1414 ----
+--- 1435,1458 ----
#if YYDEBUG
if (yydebug)
! PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n",
! int yypv_index = (yyvsp - yyvs);
! yystacksize += YYSTACKSIZE;
! ysave->yyvs = yyvs =
-! (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
+! (YYSTYPE*)PerlMem_realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
! ysave->yyss = yyss =
-! (short*)realloc((char*)yyss,yystacksize * sizeof(short));
+! (short*)PerlMem_realloc((char*)yyss,yystacksize * sizeof(short));
! if (!yyvs || !yyss)
! goto yyoverflow;
! yyssp = yyss + yyps_index;
}
*++yyssp = yystate = yytable[yyn];
***************
-*** 1436,1445 ****
+*** 1511,1520 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, error recovery shifting\
! goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
---- 1446,1470 ----
+--- 1490,1514 ----
#if YYDEBUG
if (yydebug)
! PerlIO_printf(Perl_debug_log,
! int yyps_index = (yyssp - yyss);
! int yypv_index = (yyvsp - yyvs);
! yystacksize += YYSTACKSIZE;
-! ysave->yyvs = yyvs = (YYSTYPE*)realloc((char*)yyvs,
+! ysave->yyvs = yyvs = (YYSTYPE*)PerlMem_realloc((char*)yyvs,
! yystacksize * sizeof(YYSTYPE));
-! ysave->yyss = yyss = (short*)realloc((char*)yyss,
+! ysave->yyss = yyss = (short*)PerlMem_realloc((char*)yyss,
! yystacksize * sizeof(short));
! if (!yyvs || !yyss)
! goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
***************
-*** 1451,1456 ****
+*** 1526,1531 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: error recovery discarding state %d\n",
! *yyssp);
#endif
if (yyssp <= yyss) goto yyabort;
---- 1476,1482 ----
+--- 1520,1526 ----
#if YYDEBUG
if (yydebug)
! PerlIO_printf(Perl_debug_log,
#endif
if (yyssp <= yyss) goto yyabort;
***************
-*** 1469,1474 ****
+*** 1544,1549 ****
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! printf("yydebug: state %d, error recovery discards token %d (%s)\n",
! yystate, yychar, yys);
}
#endif
---- 1495,1501 ----
+--- 1539,1545 ----
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! PerlIO_printf(Perl_debug_log,
}
#endif
***************
-*** 1479,1483 ****
+*** 1554,1558 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, reducing by rule %d (%s)\n",
yystate, yyn, yyrule[yyn]);
#endif
---- 1506,1510 ----
+--- 1550,1554 ----
#if YYDEBUG
if (yydebug)
! PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
yystate, yyn, yyrule[yyn]);
#endif
***************
-*** 2263,2267 ****
+*** 2358,2362 ****
{ yyval.opval = yyvsp[0].opval; }
break;
-! #line 2266 "y.tab.c"
+! #line 2361 "y.tab.c"
}
yyssp -= yym;
---- 2290,2294 ----
+--- 2354,2358 ----
{ yyval.opval = yyvsp[0].opval; }
break;
-! #line 2266 "perly.c"
+! #line 2365 "perly.c"
}
yyssp -= yym;
***************
-*** 2273,2278 ****
+*** 2368,2373 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: after reduction, shifting from state 0 to\
! state %d\n", YYFINAL);
#endif
yystate = YYFINAL;
---- 2300,2306 ----
+--- 2364,2370 ----
#if YYDEBUG
if (yydebug)
! PerlIO_printf(Perl_debug_log,
#endif
yystate = YYFINAL;
***************
-*** 2288,2292 ****
+*** 2383,2387 ****
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! printf("yydebug: state %d, reading %d (%s)\n",
YYFINAL, yychar, yys);
}
---- 2316,2320 ----
+--- 2380,2384 ----
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n",
YYFINAL, yychar, yys);
}
***************
-*** 2303,2312 ****
+*** 2398,2407 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: after reduction, shifting from state %d \
! goto yyoverflow;
}
*++yyssp = yystate;
---- 2331,2355 ----
+--- 2395,2419 ----
#if YYDEBUG
if (yydebug)
! PerlIO_printf(Perl_debug_log,
! int yypv_index = (yyvsp - yyvs);
! yystacksize += YYSTACKSIZE;
! ysave->yyvs = yyvs =
-! (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
+! (YYSTYPE*)PerlMem_realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
! ysave->yyss = yyss =
-! (short*)realloc((char*)yyss,yystacksize * sizeof(short));
+! (short*)PerlMem_realloc((char*)yyss,yystacksize * sizeof(short));
! if (!yyvs || !yyss)
! goto yyoverflow;
! yyssp = yyss + yyps_index;
}
*++yyssp = yystate;
***************
-*** 2314,2321 ****
+*** 2409,2416 ****
goto yyloop;
yyoverflow:
! yyerror("yacc stack overflow");
yyaccept:
! return (0);
}
---- 2357,2364 ----
+--- 2421,2448 ----
goto yyloop;
yyoverflow:
! yyerror("Out of memory for yacc stack");
! retval = 1;
yyaccept:
! return retval;
+! }
+!
+! #ifdef PERL_OBJECT
+! #define NO_XSLOCKS
+! #include "XSUB.h"
+! #endif
+!
+! static void
+! yydestruct(pTHXo_ void *ptr)
+! {
+! struct ysv* ysave = (struct ysv*)ptr;
+! if (ysave->yyss) Safefree(ysave->yyss);
+! if (ysave->yyvs) Safefree(ysave->yyvs);
+! yydebug = ysave->oldyydebug;
+! yynerrs = ysave->oldyynerrs;
+! yyerrflag = ysave->oldyyerrflag;
+! yychar = ysave->oldyychar;
+! yyval = ysave->oldyyval;
+! yylval = ysave->oldyylval;
+! Safefree(ysave);
}