X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perly_c.diff;h=463df80076eaedfa40c086d60470f54c6b6f2042;hb=e8ee3774ea4d90a4cf69272b6a6a59385df25262;hp=cfd369b53fd5177f81463e09401e04738d572e9d;hpb=428f79ef10ad4e14667125f22397bceac3e2c65e;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perly_c.diff b/perly_c.diff index cfd369b..463df80 100644 --- a/perly_c.diff +++ b/perly_c.diff @@ -1,8 +1,92 @@ -*** perly.c.orig Sun Feb 7 04:48:56 1999 ---- perly.c Sun Feb 7 05:30:49 1999 +*** perly.c.orig Mon Jul 26 03:27:57 1999 +--- perly.c Mon Jul 26 02:47:03 1999 *************** -*** 7,10 **** ---- 7,25 ---- +*** 8,91 **** + #include "perl.h" + + #define dep() deprecate("\"do\" to call subroutines") + +! #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 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 +! #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 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, + 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 @@ -12,242 +96,147 @@ + #define yyval PL_yyval + #define yylval PL_yylval + -+ #ifdef PERL_OBJECT -+ static void -+ Dep(CPerlObj *pPerl) -+ { -+ pPerl->deprecate("\"do\" to call subroutines"); -+ } -+ #define dep() Dep(this) -+ #else - static void - dep(void) -*************** -*** 12,93 **** - deprecate("\"do\" to call subroutines"); - } + #define dep() deprecate("\"do\" to call subroutines") - #line 30 "perly.y" -- /* I sense a Big Blue pattern here... */ -- #if !defined(OEMVS) && !defined(__OPEN_VM) && !defined(POSIX_BC) -- #line 34 "perly.y" -- typedef union { -- I32 ival; -- char *pval; -- OP *opval; -- GV *gvval; -- } YYSTYPE; -- #line 42 "perly.y" -- #endif /* !OEMVS && !__OPEN_VM && !POSIX_BC */ -- -- #ifdef USE_PURE_BISON -- #define YYLEX_PARAM (&yychar) -- #endif -- #line 32 "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, - 45, 0, 9, 7, 10, 8, 11, 11, 11, 12, - 12, 12, 12, 24, 24, 24, 24, 24, 24, 24, ---- 27,35 ---- - deprecate("\"do\" to call subroutines"); - } -+ #endif +! static void yydestruct(pTHXo_ void *ptr); - #line 30 "perly.y" +! #line 27 "perly.y" #define YYERRCODE 256 ! static short yylhs[] = { -1, - 45, 0, 9, 7, 10, 8, 11, 11, 11, 12, - 12, 12, 12, 24, 24, 24, 24, 24, 24, 24, + 46, 0, 9, 7, 10, 8, 11, 11, 11, 12, + 12, 12, 12, 25, 25, 25, 25, 25, 25, 25, *************** -*** 109,113 **** - 20, 21, 22, 35, 35, 35, 35, +*** 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, ---- 51,55 ---- - 20, 21, 22, 35, 35, 35, 35, +--- 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, *************** -*** 129,133 **** - 2, 2, 2, 1, 1, 1, 1, +*** 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, ---- 71,75 ---- - 2, 2, 2, 1, 1, 1, 1, +--- 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, *************** -*** 168,172 **** - 33, 0, 23, +*** 166,170 **** + 5, 0, 30, 0, 0, 33, 0, 23, }; ! short yydgoto[] = { 1, - 9, 66, 10, 18, 95, 17, 86, 339, 89, 328, - 3, 11, 12, 68, 344, 263, 70, 71, 72, 73, ---- 110,114 ---- - 33, 0, 23, + 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, 95, 17, 86, 339, 89, 328, - 3, 11, 12, 68, 344, 263, 70, 71, 72, 73, + 9, 66, 10, 18, 96, 17, 87, 344, 90, 333, + 3, 11, 12, 68, 349, 267, 70, 71, 72, 73, *************** -*** 175,179 **** - 250, 142, 267, 13, 2, 14, 15, 16, 85, 256, +*** 174,178 **** + 260, }; ! short yysindex[] = { 0, - 0, 0, -66, 0, 0, 0, -48, 0, 0, 0, - 0, 0, 645, 0, 0, 0, -232, -227, -27, 0, ---- 117,121 ---- - 250, 142, 267, 13, 2, 14, 15, 16, 85, 256, + 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, -66, 0, 0, 0, -48, 0, 0, 0, - 0, 0, 645, 0, 0, 0, -232, -227, -27, 0, + 0, 0, 142, 0, 0, 0, -57, 0, 0, 0, + 0, 0, 622, 0, 0, 0, -239, -229, -10, 0, *************** -*** 214,218 **** - 0, -238, 0, +*** 213,217 **** + 0, 228, 0, 92, 92, 0, -204, 0, }; ! short yyrindex[] = { 0, - 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, ---- 156,160 ---- - 0, -238, 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, 249, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 184, 0, 0, 0, + 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, *************** -*** 253,257 **** - 0, 154, 0, +*** 252,256 **** + 0, 0, 0, 0, 0, 0, 168, 0, }; ! short yygindex[] = { 0, - 0, 0, 0, 374, 351, 0, -12, 0, 946, 413, - -83, 0, 0, 0, -311, -13, 4139, 4198, 0, 0, ---- 195,199 ---- - 0, 154, 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, 374, 351, 0, -12, 0, 946, 413, - -83, 0, 0, 0, -311, -13, 4139, 4198, 0, 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 4425 + #define YYTABLESIZE 4610 ! short yytable[] = { 69, - 207, 62, 181, 105, 168, 102, 105, 204, 168, 248, - 20, 208, 62, 253, 58, 285, 274, 170, 298, 345, ---- 203,207 ---- + 206, 20, 295, 62, 113, 257, 184, 103, 183, 298, + 172, 62, 125, 104, 252, 350, 104, 81, 209, 169, +--- 195,199 ---- }; - #define YYTABLESIZE 4425 + #define YYTABLESIZE 4610 ! static short yytable[] = { 69, - 207, 62, 181, 105, 168, 102, 105, 204, 168, 248, - 20, 208, 62, 253, 58, 285, 274, 170, 298, 345, + 206, 20, 295, 62, 113, 257, 184, 103, 183, 298, + 172, 62, 125, 104, 252, 350, 104, 81, 209, 169, *************** -*** 706,710 **** - 0, 0, 0, 0, 317, +*** 724,728 **** + 0, 0, 0, 0, 0, 0, 0, 0, 0, 321, }; ! short yycheck[] = { 13, - 41, 36, 86, 41, 91, 40, 44, 59, 91, 59, - 59, 93, 36, 183, 59, 59, 41, 91, 41, 331, ---- 648,652 ---- - 0, 0, 0, 0, 317, + 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, - 41, 36, 86, 41, 91, 40, 44, 59, 91, 59, - 59, 93, 36, 183, 59, 59, 41, 91, 41, 331, + 59, 59, 59, 36, 43, 185, 92, 40, 87, 59, + 91, 36, 51, 41, 59, 336, 44, 257, 41, 40, *************** -*** 1157,1161 **** - #define YYMAXTOKEN 314 +*** 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, ---- 1099,1103 ---- - #define YYMAXTOKEN 314 +--- 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, *************** -*** 1174,1178 **** - "POSTDEC","ARROW", +*** 1210,1214 **** + "POSTINC","POSTDEC","ARROW", }; ! char *yyrule[] = { "$accept : prog", "$$1 :", ---- 1116,1120 ---- - "POSTDEC","ARROW", +--- 1144,1148 ---- + "POSTINC","POSTDEC","ARROW", }; ! static char *yyrule[] = { "$accept : prog", "$$1 :", *************** -*** 1369,1397 **** +*** 1408,1436 **** #endif #endif - int yydebug; @@ -261,9 +250,9 @@ - short yyss[YYSTACKSIZE]; - YYSTYPE yyvs[YYSTACKSIZE]; - #define yystacksize YYSTACKSIZE - #line 652 "perly.y" + #line 666 "perly.y" /* PROGRAM */ -! #line 1385 "y.tab.c" +! #line 1424 "y.tab.c" #define YYABORT goto yyabort #define YYACCEPT goto yyaccept #define YYERROR goto yyerrlab @@ -277,12 +266,12 @@ if (yys = getenv("YYDEBUG")) { ---- 1311,1375 ---- +--- 1342,1391 ---- #endif #endif - #line 652 "perly.y" + #line 666 "perly.y" /* PROGRAM */ -! #line 1318 "perly.c" +! #line 1427 "perly.c" #define YYABORT goto yyabort #define YYACCEPT goto yyaccept #define YYERROR goto yyerrlab @@ -298,23 +287,8 @@ + 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; @@ -344,8 +318,8 @@ if (yys = getenv("YYDEBUG")) { *************** -*** 1406,1409 **** ---- 1384,1397 ---- +*** 1445,1448 **** +--- 1400,1413 ---- yychar = (-1); + /* @@ -361,7 +335,7 @@ yyssp = yyss; yyvsp = yyvs; *************** -*** 1431,1440 **** +*** 1470,1479 **** #if YYDEBUG if (yydebug) ! printf("yydebug: state %d, shifting to state %d\n", @@ -372,7 +346,7 @@ ! goto yyoverflow; } *++yyssp = yystate = yytable[yyn]; ---- 1419,1442 ---- +--- 1435,1458 ---- #if YYDEBUG if (yydebug) ! PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n", @@ -398,7 +372,7 @@ } *++yyssp = yystate = yytable[yyn]; *************** -*** 1472,1481 **** +*** 1511,1520 **** #if YYDEBUG if (yydebug) ! printf("yydebug: state %d, error recovery shifting\ @@ -409,7 +383,7 @@ ! goto yyoverflow; } *++yyssp = yystate = yytable[yyn]; ---- 1474,1498 ---- +--- 1490,1514 ---- #if YYDEBUG if (yydebug) ! PerlIO_printf(Perl_debug_log, @@ -436,14 +410,14 @@ } *++yyssp = yystate = yytable[yyn]; *************** -*** 1487,1492 **** +*** 1526,1531 **** #if YYDEBUG if (yydebug) ! printf("yydebug: error recovery discarding state %d\n", ! *yyssp); #endif if (yyssp <= yyss) goto yyabort; ---- 1504,1510 ---- +--- 1520,1526 ---- #if YYDEBUG if (yydebug) ! PerlIO_printf(Perl_debug_log, @@ -452,14 +426,14 @@ #endif if (yyssp <= yyss) goto yyabort; *************** -*** 1505,1510 **** +*** 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 ---- 1523,1529 ---- +--- 1539,1545 ---- if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; ! PerlIO_printf(Perl_debug_log, @@ -468,40 +442,40 @@ } #endif *************** -*** 1515,1519 **** +*** 1554,1558 **** #if YYDEBUG if (yydebug) ! printf("yydebug: state %d, reducing by rule %d (%s)\n", yystate, yyn, yyrule[yyn]); #endif ---- 1534,1538 ---- +--- 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 *************** -*** 2305,2309 **** +*** 2358,2362 **** { yyval.opval = yyvsp[0].opval; } break; -! #line 2308 "y.tab.c" +! #line 2361 "y.tab.c" } yyssp -= yym; ---- 2324,2328 ---- +--- 2354,2358 ---- { yyval.opval = yyvsp[0].opval; } break; -! #line 2329 "perly.c" +! #line 2365 "perly.c" } yyssp -= yym; *************** -*** 2315,2320 **** +*** 2368,2373 **** #if YYDEBUG if (yydebug) ! printf("yydebug: after reduction, shifting from state 0 to\ ! state %d\n", YYFINAL); #endif yystate = YYFINAL; ---- 2334,2340 ---- +--- 2364,2370 ---- #if YYDEBUG if (yydebug) ! PerlIO_printf(Perl_debug_log, @@ -510,20 +484,20 @@ #endif yystate = YYFINAL; *************** -*** 2330,2334 **** +*** 2383,2387 **** if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; ! printf("yydebug: state %d, reading %d (%s)\n", YYFINAL, yychar, yys); } ---- 2350,2354 ---- +--- 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); } *************** -*** 2345,2354 **** +*** 2398,2407 **** #if YYDEBUG if (yydebug) ! printf("yydebug: after reduction, shifting from state %d \ @@ -534,7 +508,7 @@ ! goto yyoverflow; } *++yyssp = yystate; ---- 2365,2389 ---- +--- 2395,2419 ---- #if YYDEBUG if (yydebug) ! PerlIO_printf(Perl_debug_log, @@ -561,7 +535,7 @@ } *++yyssp = yystate; *************** -*** 2356,2363 **** +*** 2409,2416 **** goto yyloop; yyoverflow: ! yyerror("yacc stack overflow"); @@ -570,7 +544,7 @@ yyaccept: ! return (0); } ---- 2391,2398 ---- +--- 2421,2448 ---- goto yyloop; yyoverflow: ! yyerror("Out of memory for yacc stack"); @@ -578,4 +552,24 @@ ! 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); }