This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
The base.pm changes need this, too?
[perl5.git] / perly_c.diff
index 7ade2f3..c0db93a 100644 (file)
@@ -1,7 +1,326 @@
-*** y.tab.c.orig       Thu Aug 26 22:31:26 1999
---- y.tab.c    Thu Aug 26 22:32:22 1999
+*** perly.c.orig       Tue Mar 26 01:38:52 2002
+--- perly.c    Tue Mar 26 01:38:54 2002
 ***************
-*** 1447,1456 ****
+*** 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;
       register char *yys;
 !     extern char *getenv();
   
-      if (yys = getenv("YYDEBUG"))
+!     if (yys = getenv("YYDEBUG"))
       {
           yyn = *yys;
---- 1447,1473 ----
+          if (yyn >= '0' && yyn <= '9')
+--- 1413,1443 ----
   yyparse()
   {
       register int yym, yyn, yystate;
       register char *yys;
 ! #endif
   
-+     struct ysv *ysave;
-+     New(73, ysave, 1, struct ysv);
-+     SAVEDESTRUCTOR(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"))
+!     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')
 ***************
-*** 1463,1468 ****
---- 1480,1495 ----
+*** 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);
   
       yyssp = yyss;
       yyvsp = yyvs;
       *yyssp = yystate = 0;
+  
+  yyloop:
+!     if ((yyn = yydefred[yystate])) goto yyreduce;
+      if (yychar < 0)
+      {
+          if ((yychar = yylex()) < 0) yychar = 0;
 ***************
-*** 1493,1499 ****
+*** 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;
+              goto yyoverflow;
           }
           *++yyssp = yystate = yytable[yyn];
           *++yyvsp = yylval;
---- 1520,1538 ----
+--- 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;
++          /*
++          ** 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;
 ***************
-*** 1534,1540 ****
+*** 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;
+                      goto yyoverflow;
                   }
                   *++yyssp = yystate = yytable[yyn];
                   *++yyvsp = yylval;
---- 1573,1591 ----
+--- 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;
++                  /*
++                  ** 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;
 ***************
-*** 2473,2487 ****
+*** 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;
+          goto yyoverflow;
       }
       *++yyssp = yystate;
       *++yyvsp = yyval;
   yyaccept:
 !     return (0);
   }
---- 2524,2570 ----
+--- 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;
++      /*
++      ** 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;
   yyabort:
 !     retval = 1;
   yyaccept:
+! #ifdef USE_ITHREADS
+!     LEAVE;                   /* force yydestruct() before we return */
+! #endif
 !     return retval;
 ! }
 ! 
-! #ifdef PERL_OBJECT
-! #define NO_XSLOCKS
-! #include "XSUB.h"
-! #endif
-! 
 ! static void
-! yydestruct(pTHXo_ void *ptr)
+! yydestruct(pTHX_ void *ptr)
 ! {
 !     struct ysv* ysave = (struct ysv*)ptr;
 !     if (ysave->yyss) Safefree(ysave->yyss);