This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
use sysconf(_SC_CLK_TCK) for times()
[perl5.git] / perly_c.diff
index c0db93a..a1be108 100644 (file)
-*** perly.c.orig       Tue Mar 26 01:38:52 2002
---- perly.c    Tue Mar 26 01:38:54 2002
-***************
-*** 1,5 ****
-  #ifndef lint
-! static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91";
-  #endif
-  #define YYBYACC 1
-  #line 16 "perly.y"
---- 1,5 ----
-  #ifndef lint
-! /* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */
-  #endif
-  #define YYBYACC 1
-  #line 16 "perly.y"
-***************
-*** 9,15 ****
-  #ifdef EBCDIC
-  #undef YYDEBUG
-  #endif
-! #define dep() deprecate("\"do\" to call subroutines")
-  
-  /* stuff included here to make perly_c.diff apply better */
-  
---- 9,15 ----
-  #ifdef EBCDIC
-  #undef YYDEBUG
-  #endif
-! #define dep() deprecate_old("\"do\" to call subroutines")
-  
-  /* stuff included here to make perly_c.diff apply better */
-  
-***************
-*** 50,119 ****
-  #define yylex yylex_r
-  #endif
-  
-! #line 54 "y.tab.c"
-! #define WORD 257
-! #define METHOD 258
-! #define FUNCMETH 259
-! #define THING 260
-! #define PMFUNC 261
-! #define PRIVATEREF 262
-! #define FUNC0SUB 263
-! #define UNIOPSUB 264
-! #define LSTOPSUB 265
-! #define LABEL 266
-! #define FORMAT 267
-! #define SUB 268
-! #define ANONSUB 269
-! #define PACKAGE 270
-! #define USE 271
-! #define WHILE 272
-! #define UNTIL 273
-! #define IF 274
-! #define UNLESS 275
-! #define ELSE 276
-! #define ELSIF 277
-! #define CONTINUE 278
-! #define FOR 279
-! #define LOOPEX 280
-! #define DOTDOT 281
-! #define FUNC0 282
-! #define FUNC1 283
-! #define FUNC 284
-! #define UNIOP 285
-! #define LSTOP 286
-! #define RELOP 287
-! #define EQOP 288
-! #define MULOP 289
-! #define ADDOP 290
-! #define DOLSHARP 291
-! #define DO 292
-! #define HASHBRACK 293
-! #define NOAMP 294
-! #define LOCAL 295
-! #define MY 296
-! #define MYSUB 297
-! #define COLONATTR 298
-! #define PREC_LOW 299
-! #define OROP 300
-! #define ANDOP 301
-! #define NOTOP 302
-! #define ASSIGNOP 303
-! #define OROR 304
-! #define ANDAND 305
-! #define BITOROP 306
-! #define BITANDOP 307
-! #define SHIFTOP 308
-! #define MATCHOP 309
-! #define UMINUS 310
-! #define REFGEN 311
-! #define POWOP 312
-! #define PREINC 313
-! #define PREDEC 314
-! #define POSTINC 315
-! #define POSTDEC 316
-! #define ARROW 317
-  #define YYERRCODE 256
-! short yylhs[] = {                                        -1,
-      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,
---- 50,58 ----
-  #define yylex yylex_r
-  #endif
-  
-! #line 54 "perly.c"
-  #define YYERRCODE 256
-! static short yylhs[] = {                                        -1,
-      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,141 ****
-     49,   34,   34,   35,   35,   35,   44,   24,   19,   20,
-     21,   22,   23,   36,   36,   36,   36,
-  };
-! short yylen[] = {                                         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,
---- 74,80 ----
-     49,   34,   34,   35,   35,   35,   44,   24,   19,   20,
-     21,   22,   23,   36,   36,   36,   36,
-  };
-! static short yylen[] = {                                         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,163 ****
-      1,    0,    1,    0,    1,    2,    1,    2,    2,    2,
-      2,    2,    2,    1,    1,    1,    1,
-  };
-! 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,    3,  173,    0,    0,  154,
---- 96,102 ----
-      1,    0,    1,    0,    1,    2,    1,    2,    2,    2,
-      2,    2,    2,    1,    1,    1,    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,    3,  173,    0,    0,  154,
-***************
-*** 199,205 ****
-      0,   22,    0,    0,    0,   31,    5,    0,   30,    0,
-      0,   33,    0,   23,
-  };
-! short yydgoto[] = {                                       1,
-     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,
---- 138,144 ----
-      0,   22,    0,    0,    0,   31,    5,    0,   30,    0,
-      0,   33,    0,   23,
-  };
-! static short yydgoto[] = {                                       1,
-     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,213 ****
-    194,  327,  156,  289,  271,  225,   14,   83,  137,   84,
-     85,   86,   87,   15,   16,   17,   18,   93,  278,
-  };
-! short yysindex[] = {                                      0,
-      0,    0, -132,    0,    0,    0,  -51,    0,    0,    0,
-      0,    0,    0,    0,  650,    0,    0,    0, -239, -215,
-      5,    0,    0, -215,    0,    0,    0,  -31,  -31,    0,
---- 146,152 ----
-    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,    0,    0,  650,    0,    0,    0, -239, -215,
-      5,    0,    0, -215,    0,    0,    0,  -31,  -31,    0,
-***************
-*** 249,255 ****
-    449,    0, 2181, -150,  340,    0,    0,  355,    0,  216,
-    216,    0, -123,    0,
-  };
-! short yyrindex[] = {                                      0,
-      0,    0,  247,    0,    0,    0,    0,    0,    0,    0,
-      0,    0,    0,    0,    0,    0,    0,    0,  274,    0,
-      0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
---- 188,194 ----
-    449,    0, 2181, -150,  340,    0,    0,  355,    0,  216,
-    216,    0, -123,    0,
-  };
-! static short yyrindex[] = {                                      0,
-      0,    0,  247,    0,    0,    0,    0,    0,    0,    0,
-      0,    0,    0,    0,    0,    0,    0,    0,  274,    0,
-      0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-***************
-*** 291,297 ****
-    917,    0,    0,  119,    0,    0,    0,    0,    0,    0,
-      0,    0,  179,    0,
-  };
-! short yygindex[] = {                                      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,
---- 230,236 ----
-    917,    0,    0,  119,    0,    0,    0,    0,    0,    0,
-      0,    0,  179,    0,
-  };
-! static short yygindex[] = {                                      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,
-***************
-*** 300,306 ****
-      0,    0,    0,    0,    0,    0,    0,    0,    0,
-  };
-  #define YYTABLESIZE 4568
-! short yytable[] = {                                      71,
-    197,   65,  121,  227,   65,  111,  220,   22,  198,  293,
-    139,  296,  315,  275,  305,  102,  273,   88,  113,  228,
-     60,  113,  279,   65,  317,   60,  182,  254,  325,  101,
---- 239,245 ----
-      0,    0,    0,    0,    0,    0,    0,    0,    0,
-  };
-  #define YYTABLESIZE 4568
-! static short yytable[] = {                                      71,
-    197,   65,  121,  227,   65,  111,  220,   22,  198,  293,
-    139,  296,  315,  275,  305,  102,  273,   88,  113,  228,
-     60,  113,  279,   65,  317,   60,  182,  254,  325,  101,
-***************
-*** 759,765 ****
-      0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      0,    0,    0,    0,    0,    0,   77,   77,
-  };
-! short yycheck[] = {                                      15,
-     95,   36,   46,   41,   36,   40,   59,   59,  100,  208,
-     54,   41,   59,  199,   41,   40,  196,  257,   41,   93,
-    123,   44,  202,   36,   93,   59,   40,   40,   59,   29,
---- 698,704 ----
-      0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-      0,    0,    0,    0,    0,    0,   77,   77,
-  };
-! static short yycheck[] = {                                      15,
-     95,   36,   46,   41,   36,   40,   59,   59,  100,  208,
-     54,   41,   59,  199,   41,   40,  196,  257,   41,   93,
-    123,   44,  202,   36,   93,   59,   40,   40,   59,   29,
-***************
-*** 1224,1230 ****
-  #endif
-  #define YYMAXTOKEN 317
-  #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,
-  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,
---- 1163,1169 ----
-  #endif
-  #define YYMAXTOKEN 317
-  #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,
-  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,
-***************
-*** 1241,1247 ****
-  "ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN","POWOP",
-  "PREINC","PREDEC","POSTINC","POSTDEC","ARROW",
-  };
-! char *yyrule[] = {
-  "$accept : prog",
-  "prog : progstart lineseq",
-  "block : '{' remember lineseq '}'",
---- 1180,1186 ----
-  "ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN","POWOP",
-  "PREINC","PREDEC","POSTINC","POSTDEC","ARROW",
-  };
-! static char *yyrule[] = {
-  "$accept : prog",
-  "prog : progstart lineseq",
-  "block : '{' remember lineseq '}'",
-***************
-*** 1456,1472 ****
-  #define YYMAXDEPTH 500
-  #endif
-  #endif
-- int yydebug;
-- int yynerrs;
-- int yyerrflag;
-- int yychar;
-- short *yyssp;
-- YYSTYPE *yyvsp;
-- YYSTYPE yyval;
-- YYSTYPE yylval;
-- short yyss[YYSTACKSIZE];
-- YYSTYPE yyvs[YYSTACKSIZE];
-- #define yystacksize YYSTACKSIZE
-  #line 793 "perly.y"
-   /* PROGRAM */
-  
---- 1395,1400 ----
-***************
-*** 1477,1483 ****
-  #endif
-  #define yyparse() Perl_yyparse(pTHX)
-  
-! #line 1481 "y.tab.c"
-  #define YYABORT goto yyabort
-  #define YYACCEPT goto yyaccept
-  #define YYERROR goto yyerrlab
---- 1405,1411 ----
-  #endif
-  #define yyparse() Perl_yyparse(pTHX)
-  
-! #line 1409 "perly.c"
-  #define YYABORT goto yyabort
-  #define YYACCEPT goto yyaccept
-  #define YYERROR goto yyerrlab
-***************
-*** 1485,1495 ****
-  yyparse()
-  {
-      register int yym, yyn, yystate;
-  #if YYDEBUG
-      register char *yys;
-!     extern char *getenv();
-  
-!     if (yys = getenv("YYDEBUG"))
-      {
-          yyn = *yys;
-          if (yyn >= '0' && yyn <= '9')
---- 1413,1443 ----
-  yyparse()
-  {
-      register int yym, yyn, yystate;
-+     register short *yyssp;
-+     register YYSTYPE *yyvsp;
-+     short* yyss;
-+     YYSTYPE* yyvs;
-+     unsigned yystacksize = YYSTACKSIZE;
-+     int retval = 0;
-  #if YYDEBUG
-      register char *yys;
-! #endif
-  
-!     struct ysv *ysave;
-! #ifdef USE_ITHREADS
-!     ENTER;                   /* force yydestruct() before we return */
-! #endif
-!     New(73, ysave, 1, struct ysv);
-!     SAVEDESTRUCTOR_X(yydestruct, ysave);
-!     ysave->oldyydebug        = yydebug;
-!     ysave->oldyynerrs        = yynerrs;
-!     ysave->oldyyerrflag      = yyerrflag;
-!     ysave->oldyychar = yychar;
-!     ysave->oldyyval  = yyval;
-!     ysave->oldyylval = yylval;
-! 
-! #if YYDEBUG
-!     if ((yys = getenv("YYDEBUG")))
-      {
-          yyn = *yys;
-          if (yyn >= '0' && yyn <= '9')
-***************
-*** 1501,1512 ****
-      yyerrflag = 0;
-      yychar = (-1);
-  
-      yyssp = yyss;
-      yyvsp = yyvs;
-      *yyssp = yystate = 0;
-  
-  yyloop:
-!     if (yyn = yydefred[yystate]) goto yyreduce;
-      if (yychar < 0)
-      {
-          if ((yychar = yylex()) < 0) yychar = 0;
---- 1449,1470 ----
-      yyerrflag = 0;
-      yychar = (-1);
-  
-+     /*
-+     ** Initialize private stacks (yyparse may be called from an action)
-+     */
-+     New(73, yyss, yystacksize, short);
-+     New(73, yyvs, yystacksize, YYSTYPE);
-+     ysave->yyss = yyss;
-+     ysave->yyvs = yyvs;
-+     if (!yyvs || !yyss)
-+      goto yyoverflow;
-+ 
-      yyssp = yyss;
-      yyvsp = yyvs;
-      *yyssp = yystate = 0;
-  
-  yyloop:
-!     if ((yyn = yydefred[yystate])) goto yyreduce;
-      if (yychar < 0)
-      {
-          if ((yychar = yylex()) < 0) yychar = 0;
-***************
-*** 1516,1522 ****
-              yys = 0;
-              if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-              if (!yys) yys = "illegal-symbol";
-!             printf("yydebug: state %d, reading %d (%s)\n", yystate,
-                      yychar, yys);
-          }
-  #endif
---- 1474,1480 ----
-              yys = 0;
-              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);
-          }
-  #endif
-***************
-*** 1526,1537 ****
-      {
-  #if YYDEBUG
-          if (yydebug)
-!             printf("yydebug: state %d, shifting to state %d\n",
-                      yystate, yytable[yyn]);
-  #endif
-          if (yyssp >= yyss + yystacksize - 1)
-          {
-              goto yyoverflow;
-          }
-          *++yyssp = yystate = yytable[yyn];
-          *++yyvsp = yylval;
---- 1484,1507 ----
-      {
-  #if YYDEBUG
-          if (yydebug)
-!             PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n",
-                      yystate, yytable[yyn]);
-  #endif
-          if (yyssp >= yyss + yystacksize - 1)
-          {
-+          /*
-+          ** reallocate and recover.  Note that pointers
-+          ** have to be reset, or bad things will happen
-+          */
-+          int yyps_index = (yyssp - yyss);
-+          int yypv_index = (yyvsp - yyvs);
-+          yystacksize += YYSTACKSIZE;
-+          ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
-+          ysave->yyss = Renew(yyss, yystacksize, short);
-+          if (!yyvs || !yyss)
-              goto yyoverflow;
-+          yyssp = yyss + yyps_index;
-+          yyvsp = yyvs + yypv_index;
-          }
-          *++yyssp = yystate = yytable[yyn];
-          *++yyvsp = yylval;
-***************
-*** 1547,1560 ****
-      }
-      if (yyerrflag) goto yyinrecovery;
-  #ifdef lint
-!     goto yynewerror;
-  #endif
-! yynewerror:
-      yyerror("syntax error");
-  #ifdef lint
-!     goto yyerrlab;
-  #endif
-! yyerrlab:
-      ++yynerrs;
-  yyinrecovery:
-      if (yyerrflag < 3)
---- 1517,1530 ----
-      }
-      if (yyerrflag) goto yyinrecovery;
-  #ifdef lint
-! 
-  #endif
-! 
-      yyerror("syntax error");
-  #ifdef lint
-! 
-  #endif
-! 
-      ++yynerrs;
-  yyinrecovery:
-      if (yyerrflag < 3)
-***************
-*** 1567,1578 ****
-              {
-  #if YYDEBUG
-                  if (yydebug)
-!                     printf("yydebug: state %d, error recovery shifting\
-   to state %d\n", *yyssp, yytable[yyn]);
-  #endif
-                  if (yyssp >= yyss + yystacksize - 1)
-                  {
-                      goto yyoverflow;
-                  }
-                  *++yyssp = yystate = yytable[yyn];
-                  *++yyvsp = yylval;
---- 1537,1560 ----
-              {
-  #if YYDEBUG
-                  if (yydebug)
-!                     PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery shifting\
-   to state %d\n", *yyssp, yytable[yyn]);
-  #endif
-                  if (yyssp >= yyss + yystacksize - 1)
-                  {
-+                  /*
-+                  ** reallocate and recover.  Note that pointers
-+                  ** have to be reset, or bad things will happen
-+                  */
-+                  int yyps_index = (yyssp - yyss);
-+                  int yypv_index = (yyvsp - yyvs);
-+                  yystacksize += YYSTACKSIZE;
-+                  ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
-+                  ysave->yyss = Renew(yyss, yystacksize, short);
-+                  if (!yyvs || !yyss)
-                      goto yyoverflow;
-+                  yyssp = yyss + yyps_index;
-+                  yyvsp = yyvs + yypv_index;
-                  }
-                  *++yyssp = yystate = yytable[yyn];
-                  *++yyvsp = yylval;
-***************
-*** 1582,1588 ****
-              {
-  #if YYDEBUG
-                  if (yydebug)
-!                     printf("yydebug: error recovery discarding state %d\n",
-                              *yyssp);
-  #endif
-                  if (yyssp <= yyss) goto yyabort;
---- 1564,1570 ----
-              {
-  #if YYDEBUG
-                  if (yydebug)
-!                     PerlIO_printf(Perl_debug_log, "yydebug: error recovery discarding state %d\n",
-                              *yyssp);
-  #endif
-                  if (yyssp <= yyss) goto yyabort;
-***************
-*** 1600,1606 ****
-              yys = 0;
-              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
---- 1582,1588 ----
-              yys = 0;
-              if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-              if (!yys) yys = "illegal-symbol";
-!             PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery discards token %d (%s)\n",
-                      yystate, yychar, yys);
-          }
-  #endif
-***************
-*** 1610,1616 ****
-  yyreduce:
-  #if YYDEBUG
-      if (yydebug)
-!         printf("yydebug: state %d, reducing by rule %d (%s)\n",
-                  yystate, yyn, yyrule[yyn]);
-  #endif
-      yym = yylen[yyn];
---- 1592,1598 ----
-  yyreduce:
-  #if YYDEBUG
-      if (yydebug)
-!         PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
-                  yystate, yyn, yyrule[yyn]);
-  #endif
-      yym = yylen[yyn];
-***************
-*** 2473,2479 ****
-  #line 790 "perly.y"
-  { yyval.opval = yyvsp[0].opval; }
-  break;
-! #line 2477 "y.tab.c"
-      }
-      yyssp -= yym;
-      yystate = *yyssp;
---- 2455,2461 ----
-  #line 790 "perly.y"
-  { yyval.opval = yyvsp[0].opval; }
-  break;
-! #line 2459 "perly.c"
-      }
-      yyssp -= yym;
-      yystate = *yyssp;
-***************
-*** 2483,2489 ****
-      {
-  #if YYDEBUG
-          if (yydebug)
-!             printf("yydebug: after reduction, shifting from state 0 to\
-   state %d\n", YYFINAL);
-  #endif
-          yystate = YYFINAL;
---- 2465,2471 ----
-      {
-  #if YYDEBUG
-          if (yydebug)
-!             PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\
-   state %d\n", YYFINAL);
-  #endif
-          yystate = YYFINAL;
-***************
-*** 2498,2504 ****
-                  yys = 0;
-                  if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-                  if (!yys) yys = "illegal-symbol";
-!                 printf("yydebug: state %d, reading %d (%s)\n",
-                          YYFINAL, yychar, yys);
-              }
-  #endif
---- 2480,2486 ----
-                  yys = 0;
-                  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);
-              }
-  #endif
-***************
-*** 2513,2532 ****
-          yystate = yydgoto[yym];
-  #if YYDEBUG
-      if (yydebug)
-!         printf("yydebug: after reduction, shifting from state %d \
-  to state %d\n", *yyssp, yystate);
-  #endif
-      if (yyssp >= yyss + yystacksize - 1)
-      {
-          goto yyoverflow;
-      }
-      *++yyssp = yystate;
-      *++yyvsp = yyval;
-      goto yyloop;
-  yyoverflow:
-!     yyerror("yacc stack overflow");
-  yyabort:
-!     return (1);
-  yyaccept:
-!     return (0);
-  }
---- 2495,2544 ----
-          yystate = yydgoto[yym];
-  #if YYDEBUG
-      if (yydebug)
-!         PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \
-  to state %d\n", *yyssp, yystate);
-  #endif
-      if (yyssp >= yyss + yystacksize - 1)
-      {
-+      /*
-+      ** reallocate and recover.  Note that pointers
-+      ** have to be reset, or bad things will happen
-+      */
-+      int yyps_index = (yyssp - yyss);
-+      int yypv_index = (yyvsp - yyvs);
-+      yystacksize += YYSTACKSIZE;
-+      ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
-+      ysave->yyss = Renew(yyss, yystacksize, short);
-+      if (!yyvs || !yyss)
-          goto yyoverflow;
-+      yyssp = yyss + yyps_index;
-+      yyvsp = yyvs + yypv_index;
-      }
-      *++yyssp = yystate;
-      *++yyvsp = yyval;
-      goto yyloop;
-  yyoverflow:
-!     yyerror("Out of memory for yacc stack");
-  yyabort:
-!     retval = 1;
-  yyaccept:
-! #ifdef USE_ITHREADS
-!     LEAVE;                   /* force yydestruct() before we return */
-! #endif
-!     return retval;
-! }
-! 
-! static void
-! yydestruct(pTHX_ 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);
-  }
+--- perly.c.orig       Mon Aug  5 15:02:10 2002
++++ perly.c    Mon Aug  5 15:08:41 2002
+@@ -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"
+@@ -9,7 +9,7 @@
+ #ifdef EBCDIC
+ #undef YYDEBUG
+ #endif
+-#define dep() deprecate("\"do\" to call subroutines")
++#define dep() deprecate_old("\"do\" to call subroutines")
+ /* stuff included here to make perly_c.diff apply better */
+@@ -50,72 +50,9 @@
+ #define yylex yylex_r
+ #endif
+-#line 54 "y.tab.c"
+-#define WORD 257
+-#define METHOD 258
+-#define FUNCMETH 259
+-#define THING 260
+-#define PMFUNC 261
+-#define PRIVATEREF 262
+-#define FUNC0SUB 263
+-#define UNIOPSUB 264
+-#define LSTOPSUB 265
+-#define LABEL 266
+-#define FORMAT 267
+-#define SUB 268
+-#define ANONSUB 269
+-#define PACKAGE 270
+-#define USE 271
+-#define WHILE 272
+-#define UNTIL 273
+-#define IF 274
+-#define UNLESS 275
+-#define ELSE 276
+-#define ELSIF 277
+-#define CONTINUE 278
+-#define FOR 279
+-#define LOOPEX 280
+-#define DOTDOT 281
+-#define FUNC0 282
+-#define FUNC1 283
+-#define FUNC 284
+-#define UNIOP 285
+-#define LSTOP 286
+-#define RELOP 287
+-#define EQOP 288
+-#define MULOP 289
+-#define ADDOP 290
+-#define DOLSHARP 291
+-#define DO 292
+-#define HASHBRACK 293
+-#define NOAMP 294
+-#define LOCAL 295
+-#define MY 296
+-#define MYSUB 297
+-#define COLONATTR 298
+-#define PREC_LOW 299
+-#define OROP 300
+-#define DOROP 301
+-#define ANDOP 302
+-#define NOTOP 303
+-#define ASSIGNOP 304
+-#define OROR 305
+-#define DORDOR 306
+-#define ANDAND 307
+-#define BITOROP 308
+-#define BITANDOP 309
+-#define SHIFTOP 310
+-#define MATCHOP 311
+-#define UMINUS 312
+-#define REFGEN 313
+-#define POWOP 314
+-#define PREINC 315
+-#define PREDEC 316
+-#define POSTINC 317
+-#define POSTDEC 318
+-#define ARROW 319
++#line 54 "perly.c"
+ #define YYERRCODE 256
+-short yylhs[] = {                                        -1,
++static short yylhs[] = {                                        -1,
+     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,
+@@ -137,7 +74,7 @@
+    49,   49,   49,   34,   34,   35,   35,   35,   44,   24,
+    19,   20,   21,   22,   23,   36,   36,   36,   36,
+ };
+-short yylen[] = {                                         2,
++static short yylen[] = {                                         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,
+@@ -159,7 +96,7 @@
+     1,    1,    1,    0,    1,    0,    1,    2,    1,    2,
+     2,    2,    2,    2,    2,    1,    1,    1,    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,    3,  175,    0,    0,  156,
+@@ -201,7 +138,7 @@
+     0,   32,    0,    0,    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,    2,   95,  374,   98,  363,
+     3,   12,   13,   70,  379,  289,   72,   73,   74,   75,
+    76,   77,   78,   79,  295,   81,  296,  285,  287,  290,
+@@ -209,7 +146,7 @@
+   196,  331,  156,  293,  275,  227,   14,   83,  137,   84,
+    85,   86,   87,   15,   16,   17,   18,   93,  282,
+ };
+-short yysindex[] = {                                      0,
++static short yysindex[] = {                                      0,
+     0,    0, -183,    0,    0,    0,  -57,    0,    0,    0,
+     0,    0,    0,    0,  820,    0,    0,    0, -222, -208,
+     7,    0,    0, -208,    0,    0,    0,  -31,  -31,    0,
+@@ -251,7 +188,7 @@
+   179,    0, 1860, -168,  352,    0, 2214, -168,  298,    0,
+     0,  299,    0,  179,  179,    0, -256,    0,
+ };
+-short yyrindex[] = {                                      0,
++static short yyrindex[] = {                                      0,
+     0,    0,  372,    0,    0,    0,    0,    0,    0,    0,
+     0,    0,    0,    0,    0,    0,    0,    0,  219,    0,
+     0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+@@ -293,7 +230,7 @@
+     0,    0,  370,   91,  881,    0,    0,   91,    0,    0,
+     0,    0,    0,    0,    0,    0,  187,    0,
+ };
+-short yygindex[] = {                                      0,
++static short yygindex[] = {                                      0,
+     0,    0,   29,  378,    0,    0,  -55,    0,  676,  567,
+   -94,    0,    0,    0, -355,  -15, 2480,    0,  650,  364,
+   380,    0,    0,    0,  412,  755,    0,    0,  291, -202,
+@@ -302,7 +239,7 @@
+     0,    0,    0,    0,    0,    0,    0,    0,    0,
+ };
+ #define YYTABLESIZE 5052
+-short yytable[] = {                                      71,
++static short yytable[] = {                                      71,
+   199,   22,   60,  229,   65,   65,  222,  297,   60,  111,
+   380,  200,  279,  329,   65,  300,   62,   64,  258,  377,
+   378,  161,   15,  184,  161,  220,  230,  187,   65,   67,
+@@ -810,7 +747,7 @@
+     0,    0,    0,    0,    0,  115,  115,  115,    0,  115,
+   115,  115,
+ };
+-short yycheck[] = {                                      15,
++static short yycheck[] = {                                      15,
+    95,   59,   59,   41,   36,   36,   59,  210,  123,   40,
+   366,  100,  201,   59,   36,   41,   59,   59,   40,  276,
+   277,   41,   41,   40,   44,   40,   93,   91,   36,   37,
+@@ -1324,7 +1261,7 @@
+ #endif
+ #define YYMAXTOKEN 319
+ #if YYDEBUG
+-char *yyname[] = {
++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,
+ 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,
+@@ -1341,7 +1278,7 @@
+ "DORDOR","ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN",
+ "POWOP","PREINC","PREDEC","POSTINC","POSTDEC","ARROW",
+ };
+-char *yyrule[] = {
++static char *yyrule[] = {
+ "$accept : prog",
+ "prog : progstart lineseq",
+ "block : '{' remember lineseq '}'",
+@@ -1558,17 +1495,6 @@
+ #define YYMAXDEPTH 500
+ #endif
+ #endif
+-int yydebug;
+-int yynerrs;
+-int yyerrflag;
+-int yychar;
+-short *yyssp;
+-YYSTYPE *yyvsp;
+-YYSTYPE yyval;
+-YYSTYPE yylval;
+-short yyss[YYSTACKSIZE];
+-YYSTYPE yyvs[YYSTACKSIZE];
+-#define yystacksize YYSTACKSIZE
+ #line 797 "perly.y"
+  /* PROGRAM */
+@@ -1579,7 +1505,7 @@
+ #endif
+ #define yyparse() Perl_yyparse(pTHX)
+-#line 1583 "y.tab.c"
++#line 1509 "perly.c"
+ #define YYABORT goto yyabort
+ #define YYACCEPT goto yyaccept
+ #define YYERROR goto yyerrlab
+@@ -1587,11 +1513,31 @@
+ yyparse()
+ {
+     register int yym, yyn, yystate;
++    register short *yyssp;
++    register YYSTYPE *yyvsp;
++    short* yyss;
++    YYSTYPE* yyvs;
++    unsigned yystacksize = YYSTACKSIZE;
++    int retval = 0;
+ #if YYDEBUG
+     register char *yys;
+-    extern char *getenv();
++#endif
++
++    struct ysv *ysave;
++#ifdef USE_ITHREADS
++    ENTER;                    /* force yydestruct() before we return */
++#endif
++    New(73, ysave, 1, struct ysv);
++    SAVEDESTRUCTOR_X(yydestruct, ysave);
++    ysave->oldyydebug = yydebug;
++    ysave->oldyynerrs = yynerrs;
++    ysave->oldyyerrflag       = yyerrflag;
++    ysave->oldyychar  = yychar;
++    ysave->oldyyval   = yyval;
++    ysave->oldyylval  = yylval;
+-    if (yys = getenv("YYDEBUG"))
++#if YYDEBUG
++    if ((yys = getenv("YYDEBUG")))
+     {
+         yyn = *yys;
+         if (yyn >= '0' && yyn <= '9')
+@@ -1603,12 +1549,22 @@
+     yyerrflag = 0;
+     yychar = (-1);
++    /*
++    ** Initialize private stacks (yyparse may be called from an action)
++    */
++    New(73, yyss, yystacksize, short);
++    New(73, yyvs, yystacksize, YYSTYPE);
++    ysave->yyss = yyss;
++    ysave->yyvs = yyvs;
++    if (!yyvs || !yyss)
++      goto yyoverflow;
++
+     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;
+@@ -1618,7 +1574,7 @@
+             yys = 0;
+             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+             if (!yys) yys = "illegal-symbol";
+-            printf("yydebug: state %d, reading %d (%s)\n", yystate,
++            PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n", yystate,
+                     yychar, yys);
+         }
+ #endif
+@@ -1628,12 +1584,24 @@
+     {
+ #if YYDEBUG
+         if (yydebug)
+-            printf("yydebug: state %d, shifting to state %d\n",
++            PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n",
+                     yystate, yytable[yyn]);
+ #endif
+         if (yyssp >= yyss + yystacksize - 1)
+         {
++          /*
++          ** reallocate and recover.  Note that pointers
++          ** have to be reset, or bad things will happen
++          */
++          int yyps_index = (yyssp - yyss);
++          int yypv_index = (yyvsp - yyvs);
++          yystacksize += YYSTACKSIZE;
++          ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
++          ysave->yyss = Renew(yyss, yystacksize, short);
++          if (!yyvs || !yyss)
+             goto yyoverflow;
++          yyssp = yyss + yyps_index;
++          yyvsp = yyvs + yypv_index;
+         }
+         *++yyssp = yystate = yytable[yyn];
+         *++yyvsp = yylval;
+@@ -1649,14 +1617,14 @@
+     }
+     if (yyerrflag) goto yyinrecovery;
+ #ifdef lint
+-    goto yynewerror;
++
+ #endif
+-yynewerror:
++
+     yyerror("syntax error");
+ #ifdef lint
+-    goto yyerrlab;
++
+ #endif
+-yyerrlab:
++
+     ++yynerrs;
+ yyinrecovery:
+     if (yyerrflag < 3)
+@@ -1669,12 +1637,24 @@
+             {
+ #if YYDEBUG
+                 if (yydebug)
+-                    printf("yydebug: state %d, error recovery shifting\
++                    PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery shifting\
+  to state %d\n", *yyssp, yytable[yyn]);
+ #endif
+                 if (yyssp >= yyss + yystacksize - 1)
+                 {
++                  /*
++                  ** reallocate and recover.  Note that pointers
++                  ** have to be reset, or bad things will happen
++                  */
++                  int yyps_index = (yyssp - yyss);
++                  int yypv_index = (yyvsp - yyvs);
++                  yystacksize += YYSTACKSIZE;
++                  ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
++                  ysave->yyss = Renew(yyss, yystacksize, short);
++                  if (!yyvs || !yyss)
+                     goto yyoverflow;
++                  yyssp = yyss + yyps_index;
++                  yyvsp = yyvs + yypv_index;
+                 }
+                 *++yyssp = yystate = yytable[yyn];
+                 *++yyvsp = yylval;
+@@ -1684,7 +1664,7 @@
+             {
+ #if YYDEBUG
+                 if (yydebug)
+-                    printf("yydebug: error recovery discarding state %d\n",
++                    PerlIO_printf(Perl_debug_log, "yydebug: error recovery discarding state %d\n",
+                             *yyssp);
+ #endif
+                 if (yyssp <= yyss) goto yyabort;
+@@ -1702,7 +1682,7 @@
+             yys = 0;
+             if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+             if (!yys) yys = "illegal-symbol";
+-            printf("yydebug: state %d, error recovery discards token %d (%s)\n",
++            PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery discards token %d (%s)\n",
+                     yystate, yychar, yys);
+         }
+ #endif
+@@ -1712,7 +1692,7 @@
+ yyreduce:
+ #if YYDEBUG
+     if (yydebug)
+-        printf("yydebug: state %d, reducing by rule %d (%s)\n",
++        PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
+                 yystate, yyn, yyrule[yyn]);
+ #endif
+     yym = yylen[yyn];
+@@ -2583,7 +2563,7 @@
+ #line 794 "perly.y"
+ { yyval.opval = yyvsp[0].opval; }
+ break;
+-#line 2587 "y.tab.c"
++#line 2567 "perly.c"
+     }
+     yyssp -= yym;
+     yystate = *yyssp;
+@@ -2593,7 +2573,7 @@
+     {
+ #if YYDEBUG
+         if (yydebug)
+-            printf("yydebug: after reduction, shifting from state 0 to\
++            PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\
+  state %d\n", YYFINAL);
+ #endif
+         yystate = YYFINAL;
+@@ -2608,7 +2588,7 @@
+                 yys = 0;
+                 if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+                 if (!yys) yys = "illegal-symbol";
+-                printf("yydebug: state %d, reading %d (%s)\n",
++                PerlIO_printf(Perl_debug_log, "yydebug: state %d, reading %d (%s)\n",
+                         YYFINAL, yychar, yys);
+             }
+ #endif
+@@ -2623,20 +2603,50 @@
+         yystate = yydgoto[yym];
+ #if YYDEBUG
+     if (yydebug)
+-        printf("yydebug: after reduction, shifting from state %d \
++        PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \
+ to state %d\n", *yyssp, yystate);
+ #endif
+     if (yyssp >= yyss + yystacksize - 1)
+     {
++      /*
++      ** reallocate and recover.  Note that pointers
++      ** have to be reset, or bad things will happen
++      */
++      int yyps_index = (yyssp - yyss);
++      int yypv_index = (yyvsp - yyvs);
++      yystacksize += YYSTACKSIZE;
++      ysave->yyvs = Renew(yyvs, yystacksize, YYSTYPE);
++      ysave->yyss = Renew(yyss, yystacksize, short);
++      if (!yyvs || !yyss)
+         goto yyoverflow;
++      yyssp = yyss + yyps_index;
++      yyvsp = yyvs + yypv_index;
+     }
+     *++yyssp = yystate;
+     *++yyvsp = yyval;
+     goto yyloop;
+ yyoverflow:
+-    yyerror("yacc stack overflow");
++    yyerror("Out of memory for yacc stack");
+ yyabort:
+-    return (1);
++    retval = 1;
+ yyaccept:
+-    return (0);
++#ifdef USE_ITHREADS
++    LEAVE;                    /* force yydestruct() before we return */
++#endif
++    return retval;
++}
++
++static void
++yydestruct(pTHX_ 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);
+ }