Index: perly.c
+*** perly.c.orig Sun Mar 1 21:44:24 1998
+--- perly.c Sun Mar 1 21:46:32 1998
***************
*** 13,82 ****
}
#define YYERRCODE 256
short yylhs[] = { -1,
***************
-*** 1348,1358 ****
+*** 1337,1347 ****
int yyerrflag;
int yychar;
- short *yyssp;
- short yyss[YYSTACKSIZE];
- YYSTYPE yyvs[YYSTACKSIZE];
- #define yystacksize YYSTACKSIZE
- #line 631 "perly.y"
+ #line 636 "perly.y"
/* PROGRAM */
---- 1283,1288 ----
+--- 1272,1277 ----
***************
-*** 1361,1372 ****
---- 1291,1347 ----
+*** 1350,1361 ****
+ #define YYACCEPT goto yyaccept
+ #define YYERROR goto yyerrlab
+ int
+! yyparse()
+ {
+ register int yym, yyn, yystate;
+ #if YYDEBUG
+ register char *yys;
+ extern char *getenv();
+
+ if (yys = getenv("YYDEBUG"))
+ {
+--- 1280,1338 ----
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
+
+ };
+
+ void
-+ yydestruct(ptr)
-+ void* ptr;
++ yydestruct(void *ptr)
+ {
+ struct ysv* ysave = (struct ysv*)ptr;
+ if (ysave->yyss) Safefree(ysave->yyss);
+ }
+
int
- yyparse()
+! yyparse(void)
{
register int yym, yyn, yystate;
+ register short *yyssp;
+ int retval = 0;
#if YYDEBUG
register char *yys;
++ #ifndef __cplusplus
extern char *getenv();
+ #endif
++ #endif
+
-+ struct ysv *ysave = (struct ysv*)safemalloc(sizeof(struct ysv));
++ struct ysv *ysave;
++ New(73, ysave, 1, struct ysv);
+ SAVEDESTRUCTOR(yydestruct, ysave);
+ ysave->oldyydebug = yydebug;
+ ysave->oldyynerrs = yynerrs;
if (yys = getenv("YYDEBUG"))
{
***************
-*** 1381,1384 ****
---- 1356,1367 ----
+*** 1370,1373 ****
+--- 1347,1360 ----
yychar = (-1);
+ /*
+ ** Initialize private stacks (yyparse may be called from an action)
+ */
-+ ysave->yyss = yyss = (short*)safemalloc(yystacksize*sizeof(short));
-+ ysave->yyvs = yyvs = (YYSTYPE*)safemalloc(yystacksize*sizeof(YYSTYPE));
++ 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;
***************
-*** 1396,1400 ****
+*** 1385,1389 ****
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! printf("yydebug: state %d, reading %d (%s)\n", yystate,
yychar, yys);
}
---- 1379,1383 ----
+--- 1372,1376 ----
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! fprintf(stderr, "yydebug: state %d, reading %d (%s)\n", yystate,
yychar, yys);
}
***************
-*** 1406,1415 ****
+*** 1395,1404 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, shifting to state %d\n",
! goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
---- 1389,1412 ----
+--- 1382,1405 ----
#if YYDEBUG
if (yydebug)
! fprintf(stderr, "yydebug: state %d, shifting to state %d\n",
}
*++yyssp = yystate = yytable[yyn];
***************
-*** 1447,1456 ****
+*** 1436,1445 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, error recovery shifting\
! goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
---- 1444,1468 ----
+--- 1437,1461 ----
#if YYDEBUG
if (yydebug)
! fprintf(stderr,
}
*++yyssp = yystate = yytable[yyn];
***************
-*** 1462,1467 ****
+*** 1451,1456 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: error recovery discarding state %d\n",
! *yyssp);
#endif
if (yyssp <= yyss) goto yyabort;
---- 1474,1480 ----
+--- 1467,1473 ----
#if YYDEBUG
if (yydebug)
! fprintf(stderr,
#endif
if (yyssp <= yyss) goto yyabort;
***************
-*** 1480,1485 ****
+*** 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
---- 1493,1499 ----
+--- 1486,1492 ----
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! fprintf(stderr,
}
#endif
***************
-*** 1490,1494 ****
+*** 1479,1483 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, reducing by rule %d (%s)\n",
yystate, yyn, yyrule[yyn]);
#endif
---- 1504,1508 ----
+--- 1497,1501 ----
#if YYDEBUG
if (yydebug)
! fprintf(stderr, "yydebug: state %d, reducing by rule %d (%s)\n",
yystate, yyn, yyrule[yyn]);
#endif
***************
-*** 2278,2283 ****
+*** 2274,2279 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: after reduction, shifting from state 0 to\
#endif
yystate = YYFINAL;
***************
-*** 2293,2297 ****
+*** 2289,2293 ****
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! printf("yydebug: state %d, reading %d (%s)\n",
YYFINAL, yychar, yys);
}
***************
-*** 2308,2317 ****
+*** 2304,2313 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: after reduction, shifting from state %d \
}
*++yyssp = yystate;
***************
-*** 2319,2326 ****
+*** 2315,2322 ****
goto yyloop;
yyoverflow:
! yyerror("yacc stack overflow");