This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
make CAT2() portable for use as a macro argument with an extra
[perl5.git] / perly_c.diff
index 11664b4..0b73880 100644 (file)
-*** perly.c.orig       Tue Oct 27 12:59:58 1998
---- perly.c    Tue Oct 27 13:00:18 1998
+*** y.tab.c.orig       Thu Aug 26 22:31:26 1999
+--- y.tab.c    Thu Aug 26 22:32:22 1999
 ***************
-*** 7,10 ****
---- 7,27 ----
-  #include "perl.h"
-  
-+ #define yydebug          PL_yydebug
-+ #define yynerrs          PL_yynerrs
-+ #define yyerrflag   PL_yyerrflag
-+ #define yychar           PL_yychar
-+ #define yyssp            PL_yyssp
-+ #define yyvsp            PL_yyvsp
-+ #define yyval            PL_yyval
-+ #define yylval           PL_yylval
-+ 
-+ #ifdef PERL_OBJECT
-+ static void
-+ Dep(CPerlObj *pPerl)
-+ {
-+     pPerl->deprecate("\"do\" to call subroutines");
-+ }
-+ #define dep() Dep(this)
-+ #else
-  static void
-  dep(void)
-***************
-*** 12,91 ****
-      deprecate("\"do\" to call subroutines");
-  }
-  
-  #line 30 "perly.y"
-- /* I sense a Big Blue pattern here... */
-- #if !defined(OEMVS) && !defined(__OPEN_VM) && !defined(POSIX_BC)
-- #line 34 "perly.y"
-- typedef union {
--     I32      ival;
--     char *pval;
--     OP *opval;
--     GV *gvval;
-- } YYSTYPE;
-- #line 42 "perly.y"
-- #endif /* !OEMVS && !__OPEN_VM && !POSIX_BC */
-- 
-- #ifdef USE_PURE_BISON
-- #define YYLEX_PARAM (&yychar)
-- #endif
-- #line 32 "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 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 YYERRCODE 256
-  short yylhs[] = {                                        -1,
---- 29,35 ----
-      deprecate("\"do\" to call subroutines");
-  }
-+ #endif
-  
-  #line 30 "perly.y"
-  #define YYERRCODE 256
-  short yylhs[] = {                                        -1,
-***************
-*** 1342,1370 ****
-  #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 648 "perly.y"
-   /* PROGRAM */
-! #line 1358 "y.tab.c"
-  #define YYABORT goto yyabort
-  #define YYACCEPT goto yyaccept
-  #define YYERROR goto yyerrlab
-  int
-! yyparse()
+*** 1447,1456 ****
+  yyparse()
   {
       register int yym, yyn, yystate;
   #if YYDEBUG
       register char *yys;
-      extern char *getenv();
+!     extern char *getenv();
   
       if (yys = getenv("YYDEBUG"))
       {
---- 1286,1350 ----
-  #endif
-  #endif
-  #line 648 "perly.y"
-   /* PROGRAM */
-! #line 1358 "perly.c"
-  #define YYABORT goto yyabort
-  #define YYACCEPT goto yyaccept
-  #define YYERROR goto yyerrlab
-+ 
-+ struct ysv {
-+     short* yyss;
-+     YYSTYPE* yyvs;
-+     int oldyydebug;
-+     int oldyynerrs;
-+     int oldyyerrflag;
-+     int oldyychar;
-+     YYSTYPE oldyyval;
-+     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)
+          yyn = *yys;
+--- 1447,1473 ----
+  yyparse()
   {
       register int yym, yyn, yystate;
 +     register short *yyssp;
 +     int retval = 0;
   #if YYDEBUG
       register char *yys;
-+ #ifndef __cplusplus
-      extern char *getenv();
-+ #endif
-+ #endif
-+ 
+! #endif
+  
 +     struct ysv *ysave;
 +     New(73, ysave, 1, struct ysv);
-+     SAVEDESTRUCTOR(yydestruct, ysave);
++     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;
 ***************
-*** 1379,1382 ****
---- 1359,1372 ----
+*** 1463,1468 ****
+--- 1480,1495 ----
+      yyerrflag = 0;
       yychar = (-1);
   
 +     /*
 + 
       yyssp = yyss;
       yyvsp = yyvs;
+      *yyssp = yystate = 0;
 ***************
-*** 1404,1413 ****
-  #if YYDEBUG
-          if (yydebug)
-!             printf("yydebug: state %d, shifting to state %d\n",
-                      yystate, yytable[yyn]);
+*** 1493,1499 ****
   #endif
           if (yyssp >= yyss + yystacksize - 1)
           {
 !             goto yyoverflow;
           }
           *++yyssp = yystate = yytable[yyn];
---- 1394,1417 ----
-  #if YYDEBUG
-          if (yydebug)
-!             PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n",
-                      yystate, yytable[yyn]);
+          *++yyvsp = yylval;
+--- 1520,1538 ----
   #endif
           if (yyssp >= yyss + yystacksize - 1)
           {
 !          int yyps_index = (yyssp - yyss);
 !          int yypv_index = (yyvsp - yyvs);
 !          yystacksize += YYSTACKSIZE;
-!          ysave->yyvs = yyvs =
-!              (YYSTYPE*)PerlMem_realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
-!          ysave->yyss = yyss =
-!              (short*)PerlMem_realloc((char*)yyss,yystacksize * sizeof(short));
+!          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;
 ***************
-*** 1445,1454 ****
-  #if YYDEBUG
-                  if (yydebug)
-!                     printf("yydebug: state %d, error recovery shifting\
-!  to state %d\n", *yyssp, yytable[yyn]);
+*** 1534,1540 ****
   #endif
                   if (yyssp >= yyss + yystacksize - 1)
                   {
 !                     goto yyoverflow;
                   }
                   *++yyssp = yystate = yytable[yyn];
---- 1449,1473 ----
-  #if YYDEBUG
-                  if (yydebug)
-!                     PerlIO_printf(Perl_debug_log,
-!                   "yydebug: state %d, error recovery shifting to state %d\n",
-!                   *yyssp, yytable[yyn]);
+                  *++yyvsp = yylval;
+--- 1573,1591 ----
   #endif
                   if (yyssp >= yyss + yystacksize - 1)
                   {
 !                  int yyps_index = (yyssp - yyss);
 !                  int yypv_index = (yyvsp - yyvs);
 !                  yystacksize += YYSTACKSIZE;
-!                  ysave->yyvs = yyvs = (YYSTYPE*)PerlMem_realloc((char*)yyvs,
-!                      yystacksize * sizeof(YYSTYPE));
-!                  ysave->yyss = yyss = (short*)PerlMem_realloc((char*)yyss,
-!                      yystacksize * sizeof(short));
+!                  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;
 ***************
-*** 1460,1465 ****
-  #if YYDEBUG
-                  if (yydebug)
-!                     printf("yydebug: error recovery discarding state %d\n",
-!                             *yyssp);
-  #endif
-                  if (yyssp <= yyss) goto yyabort;
---- 1479,1485 ----
-  #if YYDEBUG
-                  if (yydebug)
-!                     PerlIO_printf(Perl_debug_log,
-!                      "yydebug: error recovery discarding state %d\n",
-!                      *yyssp);
-  #endif
-                  if (yyssp <= yyss) goto yyabort;
-***************
-*** 1478,1483 ****
-              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
---- 1498,1504 ----
-              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
-***************
-*** 1488,1492 ****
-  #if YYDEBUG
-      if (yydebug)
-!         printf("yydebug: state %d, reducing by rule %d (%s)\n",
-                  yystate, yyn, yyrule[yyn]);
-  #endif
---- 1509,1513 ----
-  #if YYDEBUG
-      if (yydebug)
-!         PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
-                  yystate, yyn, yyrule[yyn]);
-  #endif
-***************
-*** 2272,2276 ****
-  { yyval.opval = yyvsp[0].opval; }
-  break;
-! #line 2275 "y.tab.c"
-      }
-      yyssp -= yym;
---- 2293,2297 ----
-  { yyval.opval = yyvsp[0].opval; }
-  break;
-! #line 2275 "perly.c"
-      }
-      yyssp -= yym;
-***************
-*** 2282,2287 ****
-  #if YYDEBUG
-          if (yydebug)
-!             printf("yydebug: after reduction, shifting from state 0 to\
-!  state %d\n", YYFINAL);
-  #endif
-          yystate = YYFINAL;
---- 2303,2309 ----
-  #if YYDEBUG
-          if (yydebug)
-!             PerlIO_printf(Perl_debug_log,
-!              "yydebug: after reduction, shifting from state 0 to state %d\n",
-!              YYFINAL);
-  #endif
-          yystate = YYFINAL;
-***************
-*** 2297,2301 ****
-                  if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-                  if (!yys) yys = "illegal-symbol";
-!                 printf("yydebug: state %d, reading %d (%s)\n",
-                          YYFINAL, yychar, yys);
-              }
---- 2319,2323 ----
-                  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);
-              }
-***************
-*** 2312,2321 ****
-  #if YYDEBUG
-      if (yydebug)
-!         printf("yydebug: after reduction, shifting from state %d \
-! to state %d\n", *yyssp, yystate);
+*** 2473,2487 ****
   #endif
       if (yyssp >= yyss + yystacksize - 1)
       {
 !         goto yyoverflow;
       }
       *++yyssp = yystate;
---- 2334,2358 ----
-  #if YYDEBUG
-      if (yydebug)
-!         PerlIO_printf(Perl_debug_log,
-!          "yydebug: after reduction, shifting from state %d to state %d\n",
-!          *yyssp, yystate);
+      *++yyvsp = yyval;
+      goto yyloop;
+  yyoverflow:
+!     yyerror("yacc stack overflow");
+  yyabort:
+!     return (1);
+  yyaccept:
+!     return (0);
+  }
+--- 2524,2569 ----
   #endif
       if (yyssp >= yyss + yystacksize - 1)
       {
 !      int yyps_index = (yyssp - yyss);
 !      int yypv_index = (yyvsp - yyvs);
 !      yystacksize += YYSTACKSIZE;
-!      ysave->yyvs = yyvs =
-!          (YYSTYPE*)PerlMem_realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
-!      ysave->yyss = yyss =
-!          (short*)PerlMem_realloc((char*)yyss,yystacksize * sizeof(short));
+!      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;
-***************
-*** 2323,2330 ****
-      goto yyloop;
-  yyoverflow:
-!     yyerror("yacc stack overflow");
-  yyabort:
-!     return (1);
-  yyaccept:
-!     return (0);
-  }
---- 2360,2367 ----
+      *++yyvsp = yyval;
       goto yyloop;
   yyoverflow:
 !     yyerror("Out of memory for yacc stack");
 !     retval = 1;
   yyaccept:
 !     return retval;
+! }
+! 
+! #ifdef PERL_OBJECT
+! #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);
   }