X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perly_c.diff;h=0b73880c4e4270448b8fc76eeff1c3272eff5bcd;hb=a5993822807cbbbe69966799e15dc70f210f7f24;hp=aa0555b034d30e2a8102acc06b86052234739cbc;hpb=9d116dd7c895b17badf4ad422ae44da0c4df7bc2;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perly_c.diff b/perly_c.diff index aa0555b..0b73880 100644 --- a/perly_c.diff +++ b/perly_c.diff @@ -1,167 +1,19 @@ -*** perly.c.orig Tue Jul 28 15:02:41 1998 ---- perly.c Tue Jul 28 15:14:54 1998 +*** y.tab.c.orig Thu Aug 26 22:31:26 1999 +--- y.tab.c Thu Aug 26 22:32:22 1999 *************** -*** 7,11 **** ---- 7,19 ---- - #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,86 **** - deprecate("\"do\" to call subroutines"); - } - - #line 30 "perly.y" -- #ifndef OEMVS -- #line 33 "perly.y" -- typedef union { -- I32 ival; -- char *pval; -- OP *opval; -- GV *gvval; -- } YYSTYPE; -- #line 41 "perly.y" -- #endif /* OEMVS */ -- #line 27 "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 30 "perly.y" - #define YYERRCODE 256 - short yylhs[] = { -1, -*************** -*** 1345,1365 **** - YYSTYPE yyval; - YYSTYPE yylval; -- short yyss[YYSTACKSIZE]; -- YYSTYPE yyvs[YYSTACKSIZE]; -- #define yystacksize YYSTACKSIZE - #line 643 "perly.y" - /* PROGRAM */ -! #line 1353 "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")) { ---- 1285,1349 ---- - YYSTYPE yyval; - YYSTYPE yylval; - #line 643 "perly.y" - /* PROGRAM */ -! #line 1353 "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; @@ -172,27 +24,26 @@ + 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; *************** -*** 1374,1377 **** ---- 1358,1371 ---- +*** 1463,1468 **** +--- 1480,1495 ---- + yyerrflag = 0; yychar = (-1); + /* @@ -207,40 +58,18 @@ + yyssp = yyss; yyvsp = yyvs; + *yyssp = yystate = 0; *************** -*** 1389,1393 **** - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; -! printf("yydebug: state %d, reading %d (%s)\n", yystate, - yychar, yys); - } ---- 1383,1387 ---- - 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); - } -*************** -*** 1399,1403 **** - #if YYDEBUG - if (yydebug) -! printf("yydebug: state %d, shifting to state %d\n", - yystate, yytable[yyn]); - #endif ---- 1393,1397 ---- - #if YYDEBUG - if (yydebug) -! PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n", - yystate, yytable[yyn]); +*** 1493,1499 **** #endif -*************** -*** 1404,1408 **** if (yyssp >= yyss + yystacksize - 1) { ! goto yyoverflow; } *++yyssp = yystate = yytable[yyn]; ---- 1398,1416 ---- + *++yyvsp = yylval; +--- 1520,1538 ---- + #endif if (yyssp >= yyss + yystacksize - 1) { ! /* @@ -250,34 +79,25 @@ ! 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; *************** -*** 1440,1449 **** - #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]; ---- 1448,1472 ---- - #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) { @@ -288,121 +108,33 @@ ! 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; *************** -*** 1455,1460 **** - #if YYDEBUG - if (yydebug) -! printf("yydebug: error recovery discarding state %d\n", -! *yyssp); - #endif - if (yyssp <= yyss) goto yyabort; ---- 1478,1484 ---- - #if YYDEBUG - if (yydebug) -! PerlIO_printf(Perl_debug_log, -! "yydebug: error recovery discarding state %d\n", -! *yyssp); - #endif - if (yyssp <= yyss) goto yyabort; -*************** -*** 1473,1478 **** - 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 ---- 1497,1503 ---- - 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 -*************** -*** 1483,1487 **** - #if YYDEBUG - if (yydebug) -! printf("yydebug: state %d, reducing by rule %d (%s)\n", - yystate, yyn, yyrule[yyn]); - #endif ---- 1508,1512 ---- - #if YYDEBUG - if (yydebug) -! PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n", - yystate, yyn, yyrule[yyn]); - #endif -*************** -*** 2267,2271 **** - { yyval.opval = yyvsp[0].opval; } - break; -! #line 2270 "y.tab.c" - } - yyssp -= yym; ---- 2292,2296 ---- - { yyval.opval = yyvsp[0].opval; } - break; -! #line 2270 "perly.c" - } - yyssp -= yym; -*************** -*** 2277,2282 **** - #if YYDEBUG - if (yydebug) -! printf("yydebug: after reduction, shifting from state 0 to\ -! state %d\n", YYFINAL); - #endif - yystate = YYFINAL; ---- 2302,2308 ---- - #if YYDEBUG - if (yydebug) -! PerlIO_printf(Perl_debug_log, -! "yydebug: after reduction, shifting from state 0 to state %d\n", -! YYFINAL); - #endif - yystate = YYFINAL; -*************** -*** 2292,2296 **** - if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; - if (!yys) yys = "illegal-symbol"; -! printf("yydebug: state %d, reading %d (%s)\n", - YYFINAL, yychar, yys); - } ---- 2318,2322 ---- - 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); - } -*************** -*** 2307,2316 **** - #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; ---- 2333,2357 ---- - #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) { @@ -413,27 +145,15 @@ ! 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; -*************** -*** 2318,2325 **** - goto yyloop; - yyoverflow: -! yyerror("yacc stack overflow"); - yyabort: -! return (1); - yyaccept: -! return (0); - } ---- 2359,2366 ---- + *++yyvsp = yyval; goto yyloop; yyoverflow: ! yyerror("Out of memory for yacc stack"); @@ -441,4 +161,23 @@ ! 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); }