This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update to perl INSTALL file
[perl5.git] / perly.c.diff
index 06a8b6c..beedeb7 100644 (file)
@@ -1,8 +1,84 @@
-*** perly.c.byacc      Tue Oct  5 15:44:31 1993
---- perly.c    Tue Oct  5 16:23:53 1993
+Index: perly.c
 ***************
-*** 1396,1408 ****
-  int yynerrs;
+*** 13,82 ****
+  }
+  
+! #line 29 "perly.y"
+! typedef union {
+!     I32      ival;
+!     char *pval;
+!     OP *opval;
+!     GV *gvval;
+! } YYSTYPE;
+! #line 23 "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,
+--- 13,17 ----
+  }
+  
+! #line 16 "perly.c"
+  #define YYERRCODE 256
+  short yylhs[] = {                                        -1,
+***************
+*** 1303,1313 ****
   int yyerrflag;
   int yychar;
 - short *yyssp;
 - short yyss[YYSTACKSIZE];
 - YYSTYPE yyvs[YYSTACKSIZE];
 - #define yystacksize YYSTACKSIZE
-  #line 573 "perly.y"
+  #line 624 "perly.y"
    /* PROGRAM */
-  #line 1409 "y.tab.c"
---- 1396,1403 ----
+--- 1238,1243 ----
 ***************
-*** 1413,1418 ****
---- 1408,1426 ----
+*** 1316,1327 ****
+--- 1246,1302 ----
+  #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(ptr)
++ 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()
   {
       register int yym, yyn, yystate;
 +     short* yyss;
 +     YYSTYPE* yyvs;
 +     unsigned yystacksize = YYSTACKSIZE;
-+     int oldyydebug   = yydebug;
-+     int oldyynerrs   = yynerrs;
-+     int oldyyerrflag = yyerrflag;
-+     int oldyychar    = yychar;
-+     YYSTYPE oldyyval = yyval;
-+     YYSTYPE oldyylval        = yylval;
 +     int retval = 0;
-+ 
   #if YYDEBUG
       register char *yys;
       extern char *getenv();
++ #endif
++ 
++     struct ysv *ysave = (struct ysv*)safemalloc(sizeof(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"))
+      {
 ***************
-*** 1429,1434 ****
---- 1437,1450 ----
-      yyerrflag = 0;
+*** 1336,1339 ****
+--- 1311,1322 ----
       yychar = (-1);
   
 +     /*
 +     ** Initialize private stacks (yyparse may be called from an action)
 +     */
-+     yyss = (short*)malloc(yystacksize*sizeof(short));
-+     yyvs = (YYSTYPE*)malloc(yystacksize*sizeof(YYSTYPE));
++     ysave->yyss = yyss = (short*)safemalloc(yystacksize*sizeof(short));
++     ysave->yyvs = yyvs = (YYSTYPE*)safemalloc(yystacksize*sizeof(YYSTYPE));
 +     if (!yyvs || !yyss)
 +      goto yyoverflow;
 + 
       yyssp = yyss;
       yyvsp = yyvs;
-      *yyssp = yystate = 0;
 ***************
-*** 1459,1465 ****
+*** 1351,1355 ****
+              if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+              if (!yys) yys = "illegal-symbol";
+!             printf("yydebug: state %d, reading %d (%s)\n", yystate,
+                      yychar, yys);
+          }
+--- 1334,1338 ----
+              if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+              if (!yys) yys = "illegal-symbol";
+!             fprintf(stderr, "yydebug: state %d, reading %d (%s)\n", yystate,
+                      yychar, yys);
+          }
+***************
+*** 1361,1370 ****
+  #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;
---- 1475,1493 ----
+--- 1344,1367 ----
+  #if YYDEBUG
+          if (yydebug)
+!             fprintf(stderr, "yydebug: state %d, shifting to state %d\n",
+                      yystate, yytable[yyn]);
   #endif
           if (yyssp >= yyss + yystacksize - 1)
           {
 !          int yyps_index = (yyssp - yyss);
 !          int yypv_index = (yyvsp - yyvs);
 !          yystacksize += YYSTACKSIZE;
-!          yyvs = (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
-!          yyss = (short*)realloc((char*)yyss,yystacksize * sizeof(short));
+!          ysave->yyvs = yyvs =
+!              (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
+!          ysave->yyss = yyss =
+!              (short*)realloc((char*)yyss,yystacksize * sizeof(short));
 !          if (!yyvs || !yyss)
 !              goto yyoverflow;
 !          yyssp = yyss + yyps_index;
 !          yyvsp = yyvs + yypv_index;
           }
           *++yyssp = yystate = yytable[yyn];
-          *++yyvsp = yylval;
 ***************
-*** 1500,1506 ****
+*** 1402,1411 ****
+  #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;
---- 1528,1548 ----
+--- 1399,1423 ----
+  #if YYDEBUG
+                  if (yydebug)
+!                     fprintf(stderr,
+!                   "yydebug: state %d, error recovery shifting to state %d\n",
+!                   *yyssp, yytable[yyn]);
   #endif
                   if (yyssp >= yyss + yystacksize - 1)
                   {
 !                  int yyps_index = (yyssp - yyss);
 !                  int yypv_index = (yyvsp - yyvs);
 !                  yystacksize += YYSTACKSIZE;
-!                  yyvs = (YYSTYPE*)realloc((char*)yyvs,
+!                  ysave->yyvs = yyvs = (YYSTYPE*)realloc((char*)yyvs,
 !                      yystacksize * sizeof(YYSTYPE));
-!                  yyss = (short*)realloc((char*)yyss,
+!                  ysave->yyss = yyss = (short*)realloc((char*)yyss,
 !                      yystacksize * sizeof(short));
 !                  if (!yyvs || !yyss)
 !                      goto yyoverflow;
 !                  yyvsp = yyvs + yypv_index;
                   }
                   *++yyssp = yystate = yytable[yyn];
-                  *++yyvsp = yylval;
 ***************
-*** 2281,2295 ****
+*** 1417,1422 ****
+  #if YYDEBUG
+                  if (yydebug)
+!                     printf("yydebug: error recovery discarding state %d\n",
+!                             *yyssp);
+  #endif
+                  if (yyssp <= yyss) goto yyabort;
+--- 1429,1435 ----
+  #if YYDEBUG
+                  if (yydebug)
+!                     fprintf(stderr,
+!                      "yydebug: error recovery discarding state %d\n",
+!                      *yyssp);
+  #endif
+                  if (yyssp <= yyss) goto yyabort;
+***************
+*** 1435,1440 ****
+              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
+--- 1448,1454 ----
+              if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+              if (!yys) yys = "illegal-symbol";
+!             fprintf(stderr,
+!              "yydebug: state %d, error recovery discards token %d (%s)\n",
+!              yystate, yychar, yys);
+          }
+  #endif
+***************
+*** 1445,1449 ****
+  #if YYDEBUG
+      if (yydebug)
+!         printf("yydebug: state %d, reducing by rule %d (%s)\n",
+                  yystate, yyn, yyrule[yyn]);
+  #endif
+--- 1459,1463 ----
+  #if YYDEBUG
+      if (yydebug)
+!         fprintf(stderr, "yydebug: state %d, reducing by rule %d (%s)\n",
+                  yystate, yyn, yyrule[yyn]);
+  #endif
+***************
+*** 2222,2227 ****
+  #if YYDEBUG
+          if (yydebug)
+!             printf("yydebug: after reduction, shifting from state 0 to\
+!  state %d\n", YYFINAL);
+  #endif
+          yystate = YYFINAL;
+--- 2236,2242 ----
+  #if YYDEBUG
+          if (yydebug)
+!             fprintf(stderr,
+!              "yydebug: after reduction, shifting from state 0 to state %d\n",
+!              YYFINAL);
+  #endif
+          yystate = YYFINAL;
+***************
+*** 2237,2241 ****
+                  if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+                  if (!yys) yys = "illegal-symbol";
+!                 printf("yydebug: state %d, reading %d (%s)\n",
+                          YYFINAL, yychar, yys);
+              }
+--- 2252,2256 ----
+                  if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
+                  if (!yys) yys = "illegal-symbol";
+!                 fprintf(stderr, "yydebug: state %d, reading %d (%s)\n",
+                          YYFINAL, yychar, yys);
+              }
+***************
+*** 2252,2261 ****
+  #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);
-  }
---- 2323,2357 ----
+--- 2267,2291 ----
+  #if YYDEBUG
+      if (yydebug)
+!         fprintf(stderr,
+!          "yydebug: after reduction, shifting from state %d to state %d\n",
+!          *yyssp, yystate);
   #endif
       if (yyssp >= yyss + yystacksize - 1)
       {
 !      int yyps_index = (yyssp - yyss);
 !      int yypv_index = (yyvsp - yyvs);
 !      yystacksize += YYSTACKSIZE;
-!      yyvs = (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
-!      yyss = (short*)realloc((char*)yyss,yystacksize * sizeof(short));
+!      ysave->yyvs = yyvs =
+!          (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
+!      ysave->yyss = yyss =
+!          (short*)realloc((char*)yyss,yystacksize * sizeof(short));
 !      if (!yyvs || !yyss)
 !          goto yyoverflow;
 !      yyssp = yyss + yyps_index;
 !      yyvsp = yyvs + yypv_index;
       }
       *++yyssp = yystate;
-      *++yyvsp = yyval;
+***************
+*** 2263,2270 ****
+      goto yyloop;
+  yyoverflow:
+!     yyerror("yacc stack overflow");
+  yyabort:
+!     return (1);
+  yyaccept:
+!     return (0);
+  }
+--- 2293,2300 ----
       goto yyloop;
   yyoverflow:
 !     yyerror("Out of memory for yacc stack");
   yyabort:
 !     retval = 1;
   yyaccept:
-!     if (yyss) free(yyss);
-!     if (yyvs) free(yyvs);
-!     yydebug  = oldyydebug;
-!     yynerrs  = oldyynerrs;
-!     yyerrflag        = oldyyerrflag;
-!     yychar   = oldyychar;
-!     yyval    = oldyyval;
-!     yylval   = oldyylval;
 !     return retval;
   }