X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perly_c.diff;h=463df80076eaedfa40c086d60470f54c6b6f2042;hb=e8ee3774ea4d90a4cf69272b6a6a59385df25262;hp=0ee7cb2d7ff238fe620651574922bf9b199a5ec0;hpb=e262e9be635eb2f99e78e37e3729f3b9494cef78;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perly_c.diff b/perly_c.diff index 0ee7cb2..463df80 100644 --- a/perly_c.diff +++ b/perly_c.diff @@ -1,34 +1,28 @@ -Index: perly.c -*** perly.c.old Wed Jun 10 03:48:43 1998 ---- perly.c Wed Jun 10 03:55:10 1998 +*** perly.c.orig Mon Jul 26 03:27:57 1999 +--- perly.c Mon Jul 26 02:47:03 1999 *************** -*** 7,10 **** ---- 7,18 ---- +*** 8,91 **** #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"); - } + #define dep() deprecate("\"do\" to call subroutines") -! #line 29 "perly.y" +! #line 27 "perly.y" +! /* I sense a Big Blue pattern here... */ +! #if !defined(OEMVS) && !defined(__OPEN_VM) && !defined(POSIX_BC) +! #line 31 "perly.y" ! typedef union { ! I32 ival; ! char *pval; ! OP *opval; ! GV *gvval; ! } YYSTYPE; -! #line 23 "y.tab.c" +! #line 39 "perly.y" +! #endif /* !OEMVS && !__OPEN_VM && !POSIX_BC */ + +! #ifdef USE_PURE_BISON +! #define YYLEX_PARAM (&yychar) +! #endif +! #line 29 "y.tab.c" ! #define WORD 257 ! #define METHOD 258 ! #define FUNCMETH 259 @@ -69,48 +63,196 @@ Index: perly.c ! #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 PREC_LOW 297 +! #define OROP 298 +! #define ANDOP 299 +! #define NOTOP 300 +! #define ASSIGNOP 301 +! #define OROR 302 +! #define ANDAND 303 +! #define BITOROP 304 +! #define BITANDOP 305 +! #define SHIFTOP 306 +! #define MATCHOP 307 +! #define UMINUS 308 +! #define REFGEN 309 +! #define POWOP 310 +! #define PREINC 311 +! #define PREDEC 312 +! #define POSTINC 313 +! #define POSTDEC 314 +! #define ARROW 315 #define YYERRCODE 256 - short yylhs[] = { -1, ---- 20,26 ---- - deprecate("\"do\" to call subroutines"); - } -+ #endif +! short yylhs[] = { -1, + 46, 0, 9, 7, 10, 8, 11, 11, 11, 12, + 12, 12, 12, 25, 25, 25, 25, 25, 25, 25, +--- 8,25 ---- + #include "perl.h" + ++ #define yydebug PL_yydebug ++ #define yynerrs PL_yynerrs ++ #define yyerrflag PL_yyerrflag ++ #define yychar PL_yychar ++ #define yyval PL_yyval ++ #define yylval PL_yylval ++ + #define dep() deprecate("\"do\" to call subroutines") + +! static void yydestruct(pTHXo_ void *ptr); -! #line 16 "perly.c" +! #line 27 "perly.y" #define YYERRCODE 256 - short yylhs[] = { -1, +! static short yylhs[] = { -1, + 46, 0, 9, 7, 10, 8, 11, 11, 11, 12, + 12, 12, 12, 25, 25, 25, 25, 25, 25, 25, +*************** +*** 107,111 **** + 24, 19, 20, 21, 22, 23, 36, 36, 36, 36, + }; +! short yylen[] = { 2, + 0, 2, 4, 0, 4, 0, 0, 2, 2, 2, + 1, 2, 3, 1, 1, 3, 3, 3, 3, 3, +--- 41,45 ---- + 24, 19, 20, 21, 22, 23, 36, 36, 36, 36, + }; +! static short yylen[] = { 2, + 0, 2, 4, 0, 4, 0, 0, 2, 2, 2, + 1, 2, 3, 1, 1, 3, 3, 3, 3, 3, +*************** +*** 127,131 **** + 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, + }; +! short yydefred[] = { 1, + 0, 7, 0, 45, 56, 54, 0, 54, 8, 46, + 9, 11, 0, 47, 48, 49, 0, 0, 0, 63, +--- 61,65 ---- + 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, + }; +! static short yydefred[] = { 1, + 0, 7, 0, 45, 56, 54, 0, 54, 8, 46, + 9, 11, 0, 47, 48, 49, 0, 0, 0, 63, +*************** +*** 166,170 **** + 5, 0, 30, 0, 0, 33, 0, 23, + }; +! short yydgoto[] = { 1, + 9, 66, 10, 18, 96, 17, 87, 344, 90, 333, + 3, 11, 12, 68, 349, 267, 70, 71, 72, 73, +--- 100,104 ---- + 5, 0, 30, 0, 0, 33, 0, 23, + }; +! static short yydgoto[] = { 1, + 9, 66, 10, 18, 96, 17, 87, 344, 90, 333, + 3, 11, 12, 68, 349, 267, 70, 71, 72, 73, +*************** +*** 174,178 **** + 260, + }; +! short yysindex[] = { 0, + 0, 0, 142, 0, 0, 0, -57, 0, 0, 0, + 0, 0, 622, 0, 0, 0, -239, -229, -10, 0, +--- 108,112 ---- + 260, + }; +! static short yysindex[] = { 0, + 0, 0, 142, 0, 0, 0, -57, 0, 0, 0, + 0, 0, 622, 0, 0, 0, -239, -229, -10, 0, +*************** +*** 213,217 **** + 0, 228, 0, 92, 92, 0, -204, 0, + }; +! short yyrindex[] = { 0, + 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, +--- 147,151 ---- + 0, 228, 0, 92, 92, 0, -204, 0, + }; +! static short yyrindex[] = { 0, + 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, +*************** +*** 252,256 **** + 0, 0, 0, 0, 0, 0, 168, 0, + }; +! short yygindex[] = { 0, + 0, 0, 0, 339, 320, 0, -11, 0, 913, 360, + -78, 0, 0, 0, -320, -13, 4321, 0, 1367, 0, +--- 186,190 ---- + 0, 0, 0, 0, 0, 0, 168, 0, + }; +! static short yygindex[] = { 0, + 0, 0, 0, 339, 320, 0, -11, 0, 913, 360, + -78, 0, 0, 0, -320, -13, 4321, 0, 1367, 0, +*************** +*** 261,265 **** + }; + #define YYTABLESIZE 4610 +! short yytable[] = { 69, + 206, 20, 295, 62, 113, 257, 184, 103, 183, 298, + 172, 62, 125, 104, 252, 350, 104, 81, 209, 169, +--- 195,199 ---- + }; + #define YYTABLESIZE 4610 +! static short yytable[] = { 69, + 206, 20, 295, 62, 113, 257, 184, 103, 183, 298, + 172, 62, 125, 104, 252, 350, 104, 81, 209, 169, +*************** +*** 724,728 **** + 0, 0, 0, 0, 0, 0, 0, 0, 0, 321, + }; +! short yycheck[] = { 13, + 59, 59, 59, 36, 43, 185, 92, 40, 87, 59, + 91, 36, 51, 41, 59, 336, 44, 257, 41, 40, +--- 658,662 ---- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 321, + }; +! static short yycheck[] = { 13, + 59, 59, 59, 36, 43, 185, 92, 40, 87, 59, + 91, 36, 51, 41, 59, 336, 44, 257, 41, 40, *************** -*** 1337,1361 **** - int yyerrflag; - int yychar; +*** 1193,1197 **** + #define YYMAXTOKEN 315 + #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, +--- 1127,1131 ---- + #define YYMAXTOKEN 315 + #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, +*************** +*** 1210,1214 **** + "POSTINC","POSTDEC","ARROW", + }; +! char *yyrule[] = { + "$accept : prog", + "$$1 :", +--- 1144,1148 ---- + "POSTINC","POSTDEC","ARROW", + }; +! static char *yyrule[] = { + "$accept : prog", + "$$1 :", +*************** +*** 1408,1436 **** + #endif + #endif +- int yydebug; +- int yynerrs; +- int yyerrflag; +- int yychar; - short *yyssp; - YYSTYPE *yyvsp; - YYSTYPE yyval; - YYSTYPE yylval; +- YYSTYPE yyval; +- YYSTYPE yylval; - short yyss[YYSTACKSIZE]; - YYSTYPE yyvs[YYSTACKSIZE]; - #define yystacksize YYSTACKSIZE - #line 635 "perly.y" + #line 666 "perly.y" /* PROGRAM */ -! #line 1349 "y.tab.c" +! #line 1424 "y.tab.c" #define YYABORT goto yyabort #define YYACCEPT goto yyaccept #define YYERROR goto yyerrlab @@ -124,14 +266,12 @@ Index: perly.c if (yys = getenv("YYDEBUG")) { ---- 1281,1347 ---- - int yyerrflag; - int yychar; - YYSTYPE yyval; - YYSTYPE yylval; - #line 635 "perly.y" +--- 1342,1391 ---- + #endif + #endif + #line 666 "perly.y" /* PROGRAM */ -! #line 1349 "perly.c" +! #line 1427 "perly.c" #define YYABORT goto yyabort #define YYACCEPT goto yyaccept #define YYERROR goto yyerrlab @@ -147,23 +287,8 @@ Index: perly.c + 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) +! Perl_yyparse(pTHX) { register int yym, yyn, yystate; + register short *yyssp; @@ -193,8 +318,8 @@ Index: perly.c if (yys = getenv("YYDEBUG")) { *************** -*** 1370,1373 **** ---- 1356,1369 ---- +*** 1445,1448 **** +--- 1400,1413 ---- yychar = (-1); + /* @@ -210,20 +335,7 @@ Index: perly.c yyssp = yyss; yyvsp = yyvs; *************** -*** 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 **** +*** 1470,1479 **** #if YYDEBUG if (yydebug) ! printf("yydebug: state %d, shifting to state %d\n", @@ -234,7 +346,7 @@ Index: perly.c ! goto yyoverflow; } *++yyssp = yystate = yytable[yyn]; ---- 1391,1414 ---- +--- 1435,1458 ---- #if YYDEBUG if (yydebug) ! PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n", @@ -250,9 +362,9 @@ Index: perly.c ! int yypv_index = (yyvsp - yyvs); ! yystacksize += YYSTACKSIZE; ! ysave->yyvs = yyvs = -! (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE)); +! (YYSTYPE*)PerlMem_realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE)); ! ysave->yyss = yyss = -! (short*)realloc((char*)yyss,yystacksize * sizeof(short)); +! (short*)PerlMem_realloc((char*)yyss,yystacksize * sizeof(short)); ! if (!yyvs || !yyss) ! goto yyoverflow; ! yyssp = yyss + yyps_index; @@ -260,7 +372,7 @@ Index: perly.c } *++yyssp = yystate = yytable[yyn]; *************** -*** 1436,1445 **** +*** 1511,1520 **** #if YYDEBUG if (yydebug) ! printf("yydebug: state %d, error recovery shifting\ @@ -271,7 +383,7 @@ Index: perly.c ! goto yyoverflow; } *++yyssp = yystate = yytable[yyn]; ---- 1446,1470 ---- +--- 1490,1514 ---- #if YYDEBUG if (yydebug) ! PerlIO_printf(Perl_debug_log, @@ -287,9 +399,9 @@ Index: perly.c ! int yyps_index = (yyssp - yyss); ! int yypv_index = (yyvsp - yyvs); ! yystacksize += YYSTACKSIZE; -! ysave->yyvs = yyvs = (YYSTYPE*)realloc((char*)yyvs, +! ysave->yyvs = yyvs = (YYSTYPE*)PerlMem_realloc((char*)yyvs, ! yystacksize * sizeof(YYSTYPE)); -! ysave->yyss = yyss = (short*)realloc((char*)yyss, +! ysave->yyss = yyss = (short*)PerlMem_realloc((char*)yyss, ! yystacksize * sizeof(short)); ! if (!yyvs || !yyss) ! goto yyoverflow; @@ -298,14 +410,14 @@ Index: perly.c } *++yyssp = yystate = yytable[yyn]; *************** -*** 1451,1456 **** +*** 1526,1531 **** #if YYDEBUG if (yydebug) ! printf("yydebug: error recovery discarding state %d\n", ! *yyssp); #endif if (yyssp <= yyss) goto yyabort; ---- 1476,1482 ---- +--- 1520,1526 ---- #if YYDEBUG if (yydebug) ! PerlIO_printf(Perl_debug_log, @@ -314,14 +426,14 @@ Index: perly.c #endif if (yyssp <= yyss) goto yyabort; *************** -*** 1469,1474 **** +*** 1544,1549 **** 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 ---- +--- 1539,1545 ---- if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; ! PerlIO_printf(Perl_debug_log, @@ -330,40 +442,40 @@ Index: perly.c } #endif *************** -*** 1479,1483 **** +*** 1554,1558 **** #if YYDEBUG if (yydebug) ! printf("yydebug: state %d, reducing by rule %d (%s)\n", yystate, yyn, yyrule[yyn]); #endif ---- 1506,1510 ---- +--- 1550,1554 ---- #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 **** +*** 2358,2362 **** { yyval.opval = yyvsp[0].opval; } break; -! #line 2266 "y.tab.c" +! #line 2361 "y.tab.c" } yyssp -= yym; ---- 2290,2294 ---- +--- 2354,2358 ---- { yyval.opval = yyvsp[0].opval; } break; -! #line 2266 "perly.c" +! #line 2365 "perly.c" } yyssp -= yym; *************** -*** 2273,2278 **** +*** 2368,2373 **** #if YYDEBUG if (yydebug) ! printf("yydebug: after reduction, shifting from state 0 to\ ! state %d\n", YYFINAL); #endif yystate = YYFINAL; ---- 2300,2306 ---- +--- 2364,2370 ---- #if YYDEBUG if (yydebug) ! PerlIO_printf(Perl_debug_log, @@ -372,20 +484,20 @@ Index: perly.c #endif yystate = YYFINAL; *************** -*** 2288,2292 **** +*** 2383,2387 **** if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; ! printf("yydebug: state %d, reading %d (%s)\n", YYFINAL, yychar, yys); } ---- 2316,2320 ---- +--- 2380,2384 ---- 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 **** +*** 2398,2407 **** #if YYDEBUG if (yydebug) ! printf("yydebug: after reduction, shifting from state %d \ @@ -396,7 +508,7 @@ Index: perly.c ! goto yyoverflow; } *++yyssp = yystate; ---- 2331,2355 ---- +--- 2395,2419 ---- #if YYDEBUG if (yydebug) ! PerlIO_printf(Perl_debug_log, @@ -413,9 +525,9 @@ Index: perly.c ! int yypv_index = (yyvsp - yyvs); ! yystacksize += YYSTACKSIZE; ! ysave->yyvs = yyvs = -! (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE)); +! (YYSTYPE*)PerlMem_realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE)); ! ysave->yyss = yyss = -! (short*)realloc((char*)yyss,yystacksize * sizeof(short)); +! (short*)PerlMem_realloc((char*)yyss,yystacksize * sizeof(short)); ! if (!yyvs || !yyss) ! goto yyoverflow; ! yyssp = yyss + yyps_index; @@ -423,7 +535,7 @@ Index: perly.c } *++yyssp = yystate; *************** -*** 2314,2321 **** +*** 2409,2416 **** goto yyloop; yyoverflow: ! yyerror("yacc stack overflow"); @@ -432,7 +544,7 @@ Index: perly.c yyaccept: ! return (0); } ---- 2357,2364 ---- +--- 2421,2448 ---- goto yyloop; yyoverflow: ! yyerror("Out of memory for yacc stack"); @@ -440,4 +552,24 @@ Index: perly.c ! retval = 1; yyaccept: ! return retval; +! } +! +! #ifdef PERL_OBJECT +! #define NO_XSLOCKS +! #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); }