-*** y.tab.c.orig Thu Aug 26 22:31:26 1999
---- y.tab.c Thu Aug 26 22:32:22 1999
-***************
-*** 1448,1457 ****
- yyparse()
- {
- register int yym, yyn, yystate;
- #if YYDEBUG
- register char *yys;
-! extern char *getenv();
-
- if (yys = getenv("YYDEBUG"))
- {
- yyn = *yys;
---- 1448,1477 ----
- 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;
-***************
-*** 1464,1469 ****
---- 1484,1499 ----
- 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;
-***************
-*** 1494,1500 ****
- #endif
- if (yyssp >= yyss + yystacksize - 1)
- {
-! goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
---- 1524,1542 ----
- #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;
-***************
-*** 1535,1541 ****
- #endif
- if (yyssp >= yyss + yystacksize - 1)
- {
-! goto yyoverflow;
- }
- *++yyssp = yystate = yytable[yyn];
- *++yyvsp = yylval;
---- 1577,1595 ----
- #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;
-***************
-*** 2481,2495 ****
- #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);
- }
---- 2535,2583 ----
- #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;
-! }
-!
-! #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);
- }
+--- perly.c.orig Sun Jun 10 21:13:50 2001
++++ perly.c Sun Jun 10 21:13:51 2001
+@@ -50,70 +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 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
++#line 54 "perly.c"
+ #define YYERRCODE 256
+-short yylhs[] = { -1,
++static short yylhs[] = { -1,
+ 54, 0, 8, 6, 9, 7, 10, 10, 10, 11,
+ 11, 11, 11, 24, 24, 24, 24, 24, 24, 24,
+ 14, 14, 14, 13, 13, 42, 42, 12, 12, 12,
+@@ -135,7 +74,7 @@
+ 48, 33, 33, 34, 34, 34, 43, 23, 18, 19,
+ 20, 21, 22, 35, 35, 35, 35,
+ };
+-short yylen[] = { 2,
++static short yylen[] = { 2,
+ 0, 2, 4, 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,7 +96,7 @@
+ 1, 0, 1, 0, 1, 2, 1, 2, 2, 2,
+ 2, 2, 2, 1, 1, 1, 1,
+ };
+-short yydefred[] = { 1,
++static short yydefred[] = { 1,
+ 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, 4, 173, 0, 0, 154,
+@@ -199,7 +138,7 @@
+ 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, 95, 370, 98, 359, 3,
+ 12, 13, 70, 375, 285, 72, 73, 74, 75, 76,
+ 77, 78, 79, 291, 81, 292, 281, 283, 286, 294,
+@@ -207,7 +146,7 @@
+ 327, 156, 289, 271, 225, 14, 83, 137, 84, 85,
+ 86, 87, 15, 2, 16, 17, 18, 93, 278,
+ };
+-short yysindex[] = { 0,
++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,7 +188,7 @@
+ 449, 0, 2181, -150, 340, 0, 0, 355, 0, 216,
+ 216, 0, -123, 0,
+ };
+-short yyrindex[] = { 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,7 +230,7 @@
+ 917, 0, 0, 119, 0, 0, 0, 0, 0, 0,
+ 0, 0, 179, 0,
+ };
+-short yygindex[] = { 0,
++static short yygindex[] = { 0,
+ 0, 0, 196, 425, 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, 103,
+@@ -300,7 +239,7 @@
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ };
+ #define YYTABLESIZE 4568
+-short yytable[] = { 71,
++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,7 +698,7 @@
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 77, 77,
+ };
+-short yycheck[] = { 15,
++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,7 +1163,7 @@
+ #endif
+ #define YYMAXTOKEN 317
+ #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,
+@@ -1241,7 +1180,7 @@
+ "ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN","POWOP",
+ "PREINC","PREDEC","POSTINC","POSTDEC","ARROW",
+ };
+-char *yyrule[] = {
++static char *yyrule[] = {
+ "$accept : prog",
+ "$$1 :",
+ "prog : $$1 lineseq",
+@@ -1456,17 +1395,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 789 "perly.y"
+ /* PROGRAM */
+
+@@ -1477,7 +1405,7 @@
+ #endif
+ #define yyparse() Perl_yyparse(pTHX)
+
+-#line 1481 "y.tab.c"
++#line 1481 "perly.c"
+ #define YYABORT goto yyabort
+ #define YYACCEPT goto yyaccept
+ #define YYERROR goto yyerrlab
+@@ -1485,10 +1413,30 @@
+ 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 YYDEBUG
+ if (yys = getenv("YYDEBUG"))
+ {
+ yyn = *yys;
+@@ -1501,6 +1449,16 @@
+ 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;
+@@ -1516,7 +1474,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
+@@ -1526,12 +1484,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)
+ {
+- goto yyoverflow;
++ /*
++ ** 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;
+@@ -1549,12 +1519,12 @@
+ #ifdef lint
+ goto yynewerror;
+ #endif
+-yynewerror:
++
+ yyerror("syntax error");
+ #ifdef lint
+ goto yyerrlab;
+ #endif
+-yyerrlab:
++
+ ++yynerrs;
+ yyinrecovery:
+ if (yyerrflag < 3)
+@@ -1567,12 +1537,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)
+ {
+- goto yyoverflow;
++ /*
++ ** 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,7 +1564,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;
+@@ -1600,7 +1582,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
+@@ -1610,7 +1592,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];
+@@ -2473,7 +2455,7 @@
+ #line 786 "perly.y"
+ { yyval.opval = yyvsp[0].opval; }
+ break;
+-#line 2477 "y.tab.c"
++#line 2477 "perly.c"
+ }
+ yyssp -= yym;
+ yystate = *yyssp;
+@@ -2483,7 +2465,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;
+@@ -2498,7 +2480,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
+@@ -2513,20 +2495,54 @@
+ 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)
+ {
+- goto yyoverflow;
++ /*
++ ** 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;
++}
++
++#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);
+ }