X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perly_c.diff;h=84c24f548877313ded5747b85816d64a1585905f;hb=0d55c8f7c05ceae7db13bb3863932232a57c2a7b;hp=c0db93ac4a30d9126939b5c94d86f7cb62c222a3;hpb=2ac72d6ee10eac553987a271a333c11a24d55989;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perly_c.diff b/perly_c.diff index c0db93a..84c24f5 100644 --- a/perly_c.diff +++ b/perly_c.diff @@ -1,704 +1,457 @@ -*** perly.c.orig Tue Mar 26 01:38:52 2002 ---- perly.c Tue Mar 26 01:38:54 2002 -*************** -*** 1,5 **** - #ifndef lint -! static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; - #endif - #define YYBYACC 1 - #line 16 "perly.y" ---- 1,5 ---- - #ifndef lint -! /* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */ - #endif - #define YYBYACC 1 - #line 16 "perly.y" -*************** -*** 9,15 **** - #ifdef EBCDIC - #undef YYDEBUG - #endif -! #define dep() deprecate("\"do\" to call subroutines") - - /* stuff included here to make perly_c.diff apply better */ - ---- 9,15 ---- - #ifdef EBCDIC - #undef YYDEBUG - #endif -! #define dep() deprecate_old("\"do\" to call subroutines") - - /* stuff included here to make perly_c.diff apply better */ - -*************** -*** 50,119 **** - #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 - #define YYERRCODE 256 -! short yylhs[] = { -1, - 0, 9, 7, 6, 10, 8, 11, 11, 11, 12, - 12, 12, 12, 25, 25, 25, 25, 25, 25, 25, - 15, 15, 15, 14, 14, 43, 43, 13, 13, 13, ---- 50,58 ---- - #define yylex yylex_r - #endif - -! #line 54 "perly.c" - #define YYERRCODE 256 -! static short yylhs[] = { -1, - 0, 9, 7, 6, 10, 8, 11, 11, 11, 12, - 12, 12, 12, 25, 25, 25, 25, 25, 25, 25, - 15, 15, 15, 14, 14, 43, 43, 13, 13, 13, -*************** -*** 135,141 **** - 49, 34, 34, 35, 35, 35, 44, 24, 19, 20, - 21, 22, 23, 36, 36, 36, 36, - }; -! short yylen[] = { 2, - 2, 4, 0, 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, ---- 74,80 ---- - 49, 34, 34, 35, 35, 35, 44, 24, 19, 20, - 21, 22, 23, 36, 36, 36, 36, - }; -! static short yylen[] = { 2, - 2, 4, 0, 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,163 **** - 1, 0, 1, 0, 1, 2, 1, 2, 2, 2, - 2, 2, 2, 1, 1, 1, 1, - }; -! short yydefred[] = { 4, - 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, 3, 173, 0, 0, 154, ---- 96,102 ---- - 1, 0, 1, 0, 1, 2, 1, 2, 2, 2, - 2, 2, 2, 1, 1, 1, 1, - }; -! static short yydefred[] = { 4, - 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, 3, 173, 0, 0, 154, -*************** -*** 199,205 **** - 0, 22, 0, 0, 0, 31, 5, 0, 30, 0, - 0, 33, 0, 23, - }; -! short yydgoto[] = { 1, - 10, 11, 20, 104, 19, 2, 95, 370, 98, 359, - 3, 12, 13, 70, 375, 285, 72, 73, 74, 75, - 76, 77, 78, 79, 291, 81, 292, 281, 283, 286, ---- 138,144 ---- - 0, 22, 0, 0, 0, 31, 5, 0, 30, 0, - 0, 33, 0, 23, - }; -! static short yydgoto[] = { 1, - 10, 11, 20, 104, 19, 2, 95, 370, 98, 359, - 3, 12, 13, 70, 375, 285, 72, 73, 74, 75, - 76, 77, 78, 79, 291, 81, 292, 281, 283, 286, -*************** -*** 207,213 **** - 194, 327, 156, 289, 271, 225, 14, 83, 137, 84, - 85, 86, 87, 15, 16, 17, 18, 93, 278, - }; -! 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, ---- 146,152 ---- - 194, 327, 156, 289, 271, 225, 14, 83, 137, 84, - 85, 86, 87, 15, 16, 17, 18, 93, 278, - }; -! 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,255 **** - 449, 0, 2181, -150, 340, 0, 0, 355, 0, 216, - 216, 0, -123, 0, - }; -! 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, ---- 188,194 ---- - 449, 0, 2181, -150, 340, 0, 0, 355, 0, 216, - 216, 0, -123, 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,297 **** - 917, 0, 0, 119, 0, 0, 0, 0, 0, 0, - 0, 0, 179, 0, - }; -! short yygindex[] = { 0, - 0, 0, 196, 425, 0, 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, ---- 230,236 ---- - 917, 0, 0, 119, 0, 0, 0, 0, 0, 0, - 0, 0, 179, 0, - }; -! static short yygindex[] = { 0, - 0, 0, 196, 425, 0, 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, -*************** -*** 300,306 **** - 0, 0, 0, 0, 0, 0, 0, 0, 0, - }; - #define YYTABLESIZE 4568 -! 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, ---- 239,245 ---- - 0, 0, 0, 0, 0, 0, 0, 0, 0, - }; - #define YYTABLESIZE 4568 -! 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,765 **** - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 77, 77, - }; -! 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, ---- 698,704 ---- - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 77, 77, - }; -! 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,1230 **** - #endif - #define YYMAXTOKEN 317 - #if YYDEBUG -! 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, ---- 1163,1169 ---- - #endif - #define YYMAXTOKEN 317 - #if YYDEBUG -! 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,1247 **** - "ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN","POWOP", - "PREINC","PREDEC","POSTINC","POSTDEC","ARROW", - }; -! char *yyrule[] = { - "$accept : prog", - "prog : progstart lineseq", - "block : '{' remember lineseq '}'", ---- 1180,1186 ---- - "ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN","POWOP", - "PREINC","PREDEC","POSTINC","POSTDEC","ARROW", - }; -! static char *yyrule[] = { - "$accept : prog", - "prog : progstart lineseq", - "block : '{' remember lineseq '}'", -*************** -*** 1456,1472 **** - #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 793 "perly.y" - /* PROGRAM */ - ---- 1395,1400 ---- -*************** -*** 1477,1483 **** - #endif - #define yyparse() Perl_yyparse(pTHX) - -! #line 1481 "y.tab.c" - #define YYABORT goto yyabort - #define YYACCEPT goto yyaccept - #define YYERROR goto yyerrlab ---- 1405,1411 ---- - #endif - #define yyparse() Perl_yyparse(pTHX) - -! #line 1409 "perly.c" - #define YYABORT goto yyabort - #define YYACCEPT goto yyaccept - #define YYERROR goto yyerrlab -*************** -*** 1485,1495 **** - yyparse() - { - register int yym, yyn, yystate; - #if YYDEBUG - register char *yys; -! extern char *getenv(); - -! if (yys = getenv("YYDEBUG")) - { - yyn = *yys; - if (yyn >= '0' && yyn <= '9') ---- 1413,1443 ---- - 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; - if (yyn >= '0' && yyn <= '9') -*************** -*** 1501,1512 **** - yyerrflag = 0; - yychar = (-1); - - yyssp = yyss; - yyvsp = yyvs; - *yyssp = yystate = 0; - - yyloop: -! if (yyn = yydefred[yystate]) goto yyreduce; - if (yychar < 0) - { - if ((yychar = yylex()) < 0) yychar = 0; ---- 1449,1470 ---- - 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; - - yyloop: -! if ((yyn = yydefred[yystate])) goto yyreduce; - if (yychar < 0) - { - if ((yychar = yylex()) < 0) yychar = 0; -*************** -*** 1516,1522 **** - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; -! printf("yydebug: state %d, reading %d (%s)\n", yystate, - yychar, yys); - } - #endif ---- 1474,1480 ---- - yys = 0; - 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); - } - #endif -*************** -*** 1526,1537 **** - { - #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; ---- 1484,1507 ---- - { - #if YYDEBUG - if (yydebug) -! PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n", - yystate, yytable[yyn]); - #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; -*************** -*** 1547,1560 **** - } - if (yyerrflag) goto yyinrecovery; - #ifdef lint -! goto yynewerror; - #endif -! yynewerror: - yyerror("syntax error"); - #ifdef lint -! goto yyerrlab; - #endif -! yyerrlab: - ++yynerrs; - yyinrecovery: - if (yyerrflag < 3) ---- 1517,1530 ---- - } - if (yyerrflag) goto yyinrecovery; - #ifdef lint -! - #endif -! - yyerror("syntax error"); - #ifdef lint -! - #endif -! - ++yynerrs; - yyinrecovery: - if (yyerrflag < 3) -*************** -*** 1567,1578 **** - { - #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; ---- 1537,1560 ---- - { - #if YYDEBUG - if (yydebug) -! PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery shifting\ - to state %d\n", *yyssp, yytable[yyn]); - #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; -*************** -*** 1582,1588 **** - { - #if YYDEBUG - if (yydebug) -! printf("yydebug: error recovery discarding state %d\n", - *yyssp); - #endif - if (yyssp <= yyss) goto yyabort; ---- 1564,1570 ---- - { - #if YYDEBUG - if (yydebug) -! PerlIO_printf(Perl_debug_log, "yydebug: error recovery discarding state %d\n", - *yyssp); - #endif - if (yyssp <= yyss) goto yyabort; -*************** -*** 1600,1606 **** - yys = 0; - 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 ---- 1582,1588 ---- - yys = 0; - 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 -*************** -*** 1610,1616 **** - yyreduce: - #if YYDEBUG - if (yydebug) -! printf("yydebug: state %d, reducing by rule %d (%s)\n", - yystate, yyn, yyrule[yyn]); - #endif - yym = yylen[yyn]; ---- 1592,1598 ---- - yyreduce: - #if YYDEBUG - if (yydebug) -! PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n", - yystate, yyn, yyrule[yyn]); - #endif - yym = yylen[yyn]; -*************** -*** 2473,2479 **** - #line 790 "perly.y" - { yyval.opval = yyvsp[0].opval; } - break; -! #line 2477 "y.tab.c" - } - yyssp -= yym; - yystate = *yyssp; ---- 2455,2461 ---- - #line 790 "perly.y" - { yyval.opval = yyvsp[0].opval; } - break; -! #line 2459 "perly.c" - } - yyssp -= yym; - yystate = *yyssp; -*************** -*** 2483,2489 **** - { - #if YYDEBUG - if (yydebug) -! printf("yydebug: after reduction, shifting from state 0 to\ - state %d\n", YYFINAL); - #endif - yystate = YYFINAL; ---- 2465,2471 ---- - { - #if YYDEBUG - if (yydebug) -! PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\ - state %d\n", YYFINAL); - #endif - yystate = YYFINAL; -*************** -*** 2498,2504 **** - yys = 0; - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; -! printf("yydebug: state %d, reading %d (%s)\n", - YYFINAL, yychar, yys); - } - #endif ---- 2480,2486 ---- - yys = 0; - 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); - } - #endif -*************** -*** 2513,2532 **** - yystate = yydgoto[yym]; - #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); - } ---- 2495,2544 ---- - yystate = yydgoto[yym]; - #if YYDEBUG - if (yydebug) -! PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state %d \ - to state %d\n", *yyssp, yystate); - #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; -! } -! -! static void -! yydestruct(pTHX_ 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); - } +--- y.tab.c Mon Sep 30 04:20:57 2002 ++++ perly.c Mon Sep 30 04:18:04 2002 +@@ -1,5 +1,5 @@ + #ifndef lint +-static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; ++/* static char yysccsid[] = "@(#)yaccpar 1.8 (Berkeley) 01/20/91"; */ + #endif + #define YYBYACC 1 + #line 16 "perly.y" +@@ -9,7 +9,7 @@ + #ifdef EBCDIC + #undef YYDEBUG + #endif +-#define dep() deprecate("\"do\" to call subroutines") ++#define dep() deprecate_old("\"do\" to call subroutines") + + /* stuff included here to make perly_c.diff apply better */ + +@@ -50,72 +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 DOROP 301 +-#define ANDOP 302 +-#define NOTOP 303 +-#define ASSIGNOP 304 +-#define OROR 305 +-#define DORDOR 306 +-#define ANDAND 307 +-#define BITOROP 308 +-#define BITANDOP 309 +-#define SHIFTOP 310 +-#define MATCHOP 311 +-#define UMINUS 312 +-#define REFGEN 313 +-#define POWOP 314 +-#define PREINC 315 +-#define PREDEC 316 +-#define POSTINC 317 +-#define POSTDEC 318 +-#define ARROW 319 ++#line 54 "perly.c" + #define YYERRCODE 256 +-short yylhs[] = { -1, ++static short yylhs[] = { -1, + 0, 9, 7, 6, 10, 8, 11, 11, 11, 12, + 12, 12, 12, 25, 25, 25, 25, 25, 25, 25, + 15, 15, 15, 14, 14, 43, 43, 13, 13, 13, +@@ -137,7 +74,7 @@ + 49, 49, 34, 34, 35, 35, 35, 44, 24, 19, + 20, 21, 22, 23, 36, 36, 36, 36, + }; +-short yylen[] = { 2, ++static short yylen[] = { 2, + 2, 4, 0, 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, +@@ -159,7 +96,7 @@ + 1, 1, 0, 1, 0, 1, 2, 1, 2, 2, + 2, 2, 2, 2, 1, 1, 1, 1, + }; +-short yydefred[] = { 4, ++static short yydefred[] = { 4, + 0, 7, 0, 45, 58, 56, 0, 56, 56, 8, + 46, 9, 11, 48, 0, 47, 49, 50, 0, 0, + 0, 70, 0, 14, 3, 174, 0, 0, 155, 0, +@@ -201,7 +138,7 @@ + 32, 0, 0, 0, 22, 0, 0, 0, 31, 5, + 0, 30, 0, 0, 33, 0, 23, + }; +-short yydgoto[] = { 1, ++static short yydgoto[] = { 1, + 10, 11, 20, 103, 19, 2, 94, 373, 97, 362, + 3, 12, 13, 69, 378, 288, 71, 72, 73, 74, + 75, 76, 77, 78, 294, 80, 295, 284, 286, 289, +@@ -209,7 +146,7 @@ + 195, 330, 155, 292, 274, 226, 14, 82, 136, 83, + 84, 85, 86, 15, 16, 17, 18, 92, 281, + }; +-short yysindex[] = { 0, ++static short yysindex[] = { 0, + 0, 0, -236, 0, 0, 0, -231, 0, 0, 0, + 0, 0, 0, 0, 819, 0, 0, 0, -211, -209, + 3, 0, -209, 0, 0, 0, -32, -32, 0, 23, +@@ -251,7 +188,7 @@ + 0, 1859, -173, 350, 0, 2213, -173, 360, 0, 0, + 361, 0, 221, 221, 0, -240, 0, + }; +-short yyrindex[] = { 0, ++static short yyrindex[] = { 0, + 0, 0, 371, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 289, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +@@ -293,7 +230,7 @@ + 0, 435, 90, 880, 0, 0, 90, 0, 0, 0, + 0, 0, 0, 0, 0, 186, 0, + }; +-short yygindex[] = { 0, ++static short yygindex[] = { 0, + 0, 0, 50, 453, 0, 0, -22, 0, 63, 153, + -93, 0, 0, 0, -346, -15, 2480, 0, 1744, 437, + 439, 0, 0, 0, 481, 755, 0, 0, 341, -186, +@@ -302,7 +239,7 @@ + 0, 0, 0, 0, 0, 0, 0, 0, 0, + }; + #define YYTABLESIZE 5051 +-short yytable[] = { 70, ++static short yytable[] = { 70, + 198, 300, 75, 64, 60, 280, 228, 60, 279, 64, + 199, 328, 183, 257, 219, 62, 278, 64, 379, 186, + 75, 110, 296, 188, 15, 21, 197, 170, 64, 4, +@@ -810,7 +747,7 @@ + 0, 0, 0, 0, 114, 114, 114, 0, 114, 114, + 114, + }; +-short yycheck[] = { 15, ++static short yycheck[] = { 15, + 94, 44, 41, 36, 59, 41, 41, 123, 44, 36, + 99, 59, 40, 40, 40, 59, 200, 36, 365, 91, + 59, 40, 209, 91, 41, 257, 93, 63, 59, 266, +@@ -1324,7 +1261,7 @@ + #endif + #define YYMAXTOKEN 319 + #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, +@@ -1341,7 +1278,7 @@ + "DORDOR","ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN", + "POWOP","PREINC","PREDEC","POSTINC","POSTDEC","ARROW", + }; +-char *yyrule[] = { ++static char *yyrule[] = { + "$accept : prog", + "prog : progstart lineseq", + "block : '{' remember lineseq '}'", +@@ -1557,17 +1494,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 795 "perly.y" + /* PROGRAM */ + +@@ -1578,7 +1504,7 @@ + #endif + #define yyparse() Perl_yyparse(pTHX) + +-#line 1582 "y.tab.c" ++#line 1582 "perly.c" + #define YYABORT goto yyabort + #define YYACCEPT goto yyaccept + #define YYERROR goto yyerrlab +@@ -1586,11 +1512,31 @@ + 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 (yys = getenv("YYDEBUG")) ++#if YYDEBUG ++ if ((yys = getenv("YYDEBUG"))) + { + yyn = *yys; + if (yyn >= '0' && yyn <= '9') +@@ -1602,12 +1548,22 @@ + 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; + + yyloop: +- if (yyn = yydefred[yystate]) goto yyreduce; ++ if ((yyn = yydefred[yystate])) goto yyreduce; + if (yychar < 0) + { + if ((yychar = yylex()) < 0) yychar = 0; +@@ -1617,7 +1573,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 +@@ -1627,12 +1583,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) + { ++ /* ++ ** 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; +@@ -1648,14 +1616,14 @@ + } + if (yyerrflag) goto yyinrecovery; + #ifdef lint +- goto yynewerror; ++ + #endif +-yynewerror: ++ + yyerror("syntax error"); + #ifdef lint +- goto yyerrlab; ++ + #endif +-yyerrlab: ++ + ++yynerrs; + yyinrecovery: + if (yyerrflag < 3) +@@ -1668,12 +1636,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) + { ++ /* ++ ** 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; +@@ -1683,7 +1663,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; +@@ -1701,7 +1681,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 +@@ -1711,7 +1691,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]; +@@ -2578,7 +2558,7 @@ + #line 792 "perly.y" + { yyval.opval = yyvsp[0].opval; } + break; +-#line 2582 "y.tab.c" ++#line 2582 "perly.c" + } + yyssp -= yym; + yystate = *yyssp; +@@ -2588,7 +2568,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; +@@ -2603,7 +2583,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 +@@ -2618,20 +2598,50 @@ + 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) + { ++ /* ++ ** 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; ++} ++ ++static void ++yydestruct(pTHX_ 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); + }