X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perly_c.diff;h=0b73880c4e4270448b8fc76eeff1c3272eff5bcd;hb=765e9edb2de192ef033766d867f9bd290e9935e9;hp=0ee7cb2d7ff238fe620651574922bf9b199a5ec0;hpb=e262e9be635eb2f99e78e37e3729f3b9494cef78;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perly_c.diff b/perly_c.diff index 0ee7cb2..0b73880 100644 --- a/perly_c.diff +++ b/perly_c.diff @@ -1,169 +1,19 @@ -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; @@ -174,27 +24,26 @@ Index: perly.c + 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); + /* @@ -209,36 +58,17 @@ Index: perly.c + 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) { @@ -249,34 +79,25 @@ Index: perly.c ! 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) { @@ -287,121 +108,33 @@ Index: perly.c ! 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) { @@ -412,27 +145,15 @@ Index: perly.c ! 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"); @@ -440,4 +161,23 @@ Index: perly.c ! 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); }