-Index: perly.c
-*** perly.c.old Wed Jun 10 03:48:43 1998
---- perly.c Wed Jun 10 03:55:10 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,18 ----
- #include "perl.h"
-
-+ #ifdef PERL_OBJECT
-+ static void
-+ Dep(CPerlObj *pPerl)
-+ {
-+ pPerl->deprecate("\"do\" to call subroutines");
-+ }
-+ #define dep() Dep(this)
-+ #else
- static void
- dep(void)
-***************
-*** 12,82 ****
- deprecate("\"do\" to call subroutines");
- }
-
-! #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,
---- 20,26 ----
- deprecate("\"do\" to call subroutines");
- }
-+ #endif
-
-! #line 16 "perly.c"
- #define YYERRCODE 256
- short yylhs[] = { -1,
-***************
-*** 1337,1361 ****
- int yyerrflag;
- int yychar;
-- short *yyssp;
-- YYSTYPE *yyvsp;
- YYSTYPE yyval;
- YYSTYPE yylval;
-- short yyss[YYSTACKSIZE];
-- YYSTYPE yyvs[YYSTACKSIZE];
-- #define yystacksize YYSTACKSIZE
- #line 635 "perly.y"
- /* PROGRAM */
-! #line 1349 "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"))
{
---- 1281,1347 ----
- int yyerrflag;
- int yychar;
- YYSTYPE yyval;
- YYSTYPE yylval;
- #line 635 "perly.y"
- /* PROGRAM */
-! #line 1349 "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;
***************
-*** 1370,1373 ****
---- 1356,1369 ----
+*** 1463,1468 ****
+--- 1480,1495 ----
+ yyerrflag = 0;
yychar = (-1);
+ /*
+
yyssp = yyss;
yyvsp = yyvs;
+ *yyssp = yystate = 0;
***************
-*** 1385,1389 ****
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
-! printf("yydebug: state %d, reading %d (%s)\n", yystate,
- yychar, yys);
- }
---- 1381,1385 ----
- 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);
- }
-***************
-*** 1395,1404 ****
- #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];
---- 1391,1414 ----
- #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*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
-! ysave->yyss = yyss =
-! (short*)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;
***************
-*** 1436,1445 ****
- #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];
---- 1446,1470 ----
- #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*)realloc((char*)yyvs,
-! yystacksize * sizeof(YYSTYPE));
-! ysave->yyss = yyss = (short*)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;
***************
-*** 1451,1456 ****
- #if YYDEBUG
- if (yydebug)
-! printf("yydebug: error recovery discarding state %d\n",
-! *yyssp);
- #endif
- if (yyssp <= yyss) goto yyabort;
---- 1476,1482 ----
- #if YYDEBUG
- if (yydebug)
-! PerlIO_printf(Perl_debug_log,
-! "yydebug: error recovery discarding state %d\n",
-! *yyssp);
- #endif
- if (yyssp <= yyss) goto yyabort;
-***************
-*** 1469,1474 ****
- 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
---- 1495,1501 ----
- 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
-***************
-*** 1479,1483 ****
- #if YYDEBUG
- if (yydebug)
-! printf("yydebug: state %d, reducing by rule %d (%s)\n",
- yystate, yyn, yyrule[yyn]);
- #endif
---- 1506,1510 ----
- #if YYDEBUG
- if (yydebug)
-! PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
- yystate, yyn, yyrule[yyn]);
- #endif
-***************
-*** 2263,2267 ****
- { yyval.opval = yyvsp[0].opval; }
- break;
-! #line 2266 "y.tab.c"
- }
- yyssp -= yym;
---- 2290,2294 ----
- { yyval.opval = yyvsp[0].opval; }
- break;
-! #line 2266 "perly.c"
- }
- yyssp -= yym;
-***************
-*** 2273,2278 ****
- #if YYDEBUG
- if (yydebug)
-! printf("yydebug: after reduction, shifting from state 0 to\
-! state %d\n", YYFINAL);
- #endif
- yystate = YYFINAL;
---- 2300,2306 ----
- #if YYDEBUG
- if (yydebug)
-! PerlIO_printf(Perl_debug_log,
-! "yydebug: after reduction, shifting from state 0 to state %d\n",
-! YYFINAL);
- #endif
- yystate = YYFINAL;
-***************
-*** 2288,2292 ****
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
-! printf("yydebug: state %d, reading %d (%s)\n",
- YYFINAL, yychar, yys);
- }
---- 2316,2320 ----
- 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);
- }
-***************
-*** 2303,2312 ****
- #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;
---- 2331,2355 ----
- #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*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
-! ysave->yyss = yyss =
-! (short*)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;
-***************
-*** 2314,2321 ****
- goto yyloop;
- yyoverflow:
-! yyerror("yacc stack overflow");
- yyabort:
-! return (1);
- yyaccept:
-! return (0);
- }
---- 2357,2364 ----
+ *++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);
}