-*** perly.c.orig Mon Jul 26 03:27:57 1999
---- perly.c Mon Jul 26 02:47:03 1999
+*** perly.c.orig Tue Mar 26 01:38:52 2002
+--- perly.c Tue Mar 26 01:38:54 2002
***************
-*** 8,91 ****
- #include "perl.h"
+*** 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")
- #define dep() deprecate("\"do\" to call subroutines")
+ /* stuff included here to make perly_c.diff apply better */
-! #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 */
+--- 9,15 ----
+ #ifdef EBCDIC
+ #undef YYDEBUG
+ #endif
+! #define dep() deprecate_old("\"do\" to call subroutines")
-! #ifdef USE_PURE_BISON
-! #define YYLEX_PARAM (&yychar)
-! #endif
-! #line 29 "y.tab.c"
+ /* 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 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 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,
- 46, 0, 9, 7, 10, 8, 11, 11, 11, 12,
+ 0, 9, 7, 6, 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);
+ 15, 15, 15, 14, 14, 43, 43, 13, 13, 13,
+--- 50,58 ----
+ #define yylex yylex_r
+ #endif
-! #line 27 "perly.y"
+! #line 54 "perly.c"
#define YYERRCODE 256
-! static short yylhs[] = { -1,
- 46, 0, 9, 7, 10, 8, 11, 11, 11, 12,
+! 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,
***************
-*** 107,111 ****
- 24, 19, 20, 21, 22, 23, 36, 36, 36, 36,
+*** 135,141 ****
+ 49, 34, 34, 35, 35, 35, 44, 24, 19, 20,
+ 21, 22, 23, 36, 36, 36, 36,
};
! short yylen[] = { 2,
- 0, 2, 4, 0, 4, 0, 0, 2, 2, 2,
+ 2, 4, 0, 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,
+ 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,
- 0, 2, 4, 0, 4, 0, 0, 2, 2, 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,
***************
-*** 127,131 ****
- 2, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+*** 157,163 ****
+ 1, 0, 1, 0, 1, 2, 1, 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,
+! 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[] = { 1,
- 0, 7, 0, 45, 56, 54, 0, 54, 8, 46,
- 9, 11, 0, 47, 48, 49, 0, 0, 0, 63,
+! 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,
***************
-*** 166,170 ****
- 5, 0, 30, 0, 0, 33, 0, 23,
+*** 199,205 ****
+ 0, 22, 0, 0, 0, 31, 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,
+ 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,
- 9, 66, 10, 18, 96, 17, 87, 344, 90, 333,
- 3, 11, 12, 68, 349, 267, 70, 71, 72, 73,
+! 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,
***************
-*** 174,178 ****
- 260,
+*** 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, 142, 0, 0, 0, -57, 0, 0, 0,
- 0, 0, 622, 0, 0, 0, -239, -229, -10, 0,
---- 108,112 ----
- 260,
+ 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, 142, 0, 0, 0, -57, 0, 0, 0,
- 0, 0, 622, 0, 0, 0, -239, -229, -10, 0,
+! 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,
***************
-*** 213,217 ****
- 0, 228, 0, 92, 92, 0, -204, 0,
+*** 249,255 ****
+ 449, 0, 2181, -150, 340, 0, 0, 355, 0, 216,
+ 216, 0, -123, 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,
+ 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, 225, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 155, 0, 0, 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,
***************
-*** 252,256 ****
- 0, 0, 0, 0, 0, 0, 168, 0,
+*** 291,297 ****
+ 917, 0, 0, 119, 0, 0, 0, 0, 0, 0,
+ 0, 0, 179, 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,
+ 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, 0, 339, 320, 0, -11, 0, 913, 360,
- -78, 0, 0, 0, -320, -13, 4321, 0, 1367, 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,
***************
-*** 261,265 ****
+*** 300,306 ****
+ 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
- #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 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 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,
+ #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,
***************
-*** 724,728 ****
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 321,
+*** 759,765 ****
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 77, 77,
};
-! 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,
+! 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[] = { 13,
- 59, 59, 59, 36, 43, 185, 92, 40, 87, 59,
- 91, 36, 51, 41, 59, 336, 44, 257, 41, 40,
+! 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,
***************
-*** 1193,1197 ****
- #define YYMAXTOKEN 315
+*** 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,
---- 1127,1131 ----
- #define YYMAXTOKEN 315
+ 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,
***************
-*** 1210,1214 ****
- "POSTINC","POSTDEC","ARROW",
+*** 1241,1247 ****
+ "ANDAND","BITOROP","BITANDOP","SHIFTOP","MATCHOP","UMINUS","REFGEN","POWOP",
+ "PREINC","PREDEC","POSTINC","POSTDEC","ARROW",
};
! char *yyrule[] = {
"$accept : prog",
- "$$1 :",
---- 1144,1148 ----
- "POSTINC","POSTDEC","ARROW",
+ "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",
- "$$1 :",
+ "prog : progstart lineseq",
+ "block : '{' remember lineseq '}'",
***************
-*** 1408,1436 ****
+*** 1456,1472 ****
+ #define YYMAXDEPTH 500
#endif
#endif
- int yydebug;
- short yyss[YYSTACKSIZE];
- YYSTYPE yyvs[YYSTACKSIZE];
- #define yystacksize YYSTACKSIZE
- #line 666 "perly.y"
+ #line 793 "perly.y"
/* PROGRAM */
-! #line 1424 "y.tab.c"
+
+--- 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
- int
-! yyparse()
+***************
+*** 1485,1495 ****
+ yyparse()
{
register int yym, yyn, yystate;
#if YYDEBUG
register char *yys;
- extern char *getenv();
+! extern char *getenv();
- if (yys = getenv("YYDEBUG"))
+! if (yys = getenv("YYDEBUG"))
{
---- 1342,1391 ----
- #endif
- #endif
- #line 666 "perly.y"
- /* PROGRAM */
-! #line 1427 "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;
-+ };
-+
- int
-! Perl_yyparse(pTHX)
+ yyn = *yys;
+ if (yyn >= '0' && yyn <= '9')
+--- 1413,1443 ----
+ yyparse()
{
register int yym, yyn, yystate;
+ register short *yyssp;
+ int retval = 0;
#if YYDEBUG
register char *yys;
-+ #ifndef __cplusplus
- extern char *getenv();
-+ #endif
-+ #endif
-+
-+ struct ysv *ysave;
-+ New(73, ysave, 1, struct ysv);
-+ SAVEDESTRUCTOR(yydestruct, ysave);
-+ ysave->oldyydebug = yydebug;
-+ ysave->oldyynerrs = yynerrs;
-+ ysave->oldyyerrflag = yyerrflag;
-+ ysave->oldyychar = yychar;
-+ ysave->oldyyval = yyval;
-+ ysave->oldyylval = yylval;
+! #endif
-+ #if YYDEBUG
- if (yys = getenv("YYDEBUG"))
+! 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')
***************
-*** 1445,1448 ****
---- 1400,1413 ----
+*** 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);
+ /*
+
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
***************
-*** 1470,1479 ****
+*** 1526,1537 ****
+ {
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, shifting to state %d\n",
#endif
if (yyssp >= yyss + yystacksize - 1)
{
-! goto yyoverflow;
+ goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
---- 1435,1458 ----
+ *++yyvsp = yylval;
+--- 1484,1507 ----
+ {
#if YYDEBUG
if (yydebug)
! PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n",
#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 = yyvs =
-! (YYSTYPE*)PerlMem_realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
-! ysave->yyss = yyss =
-! (short*)PerlMem_realloc((char*)yyss,yystacksize * sizeof(short));
-! if (!yyvs || !yyss)
-! goto yyoverflow;
-! yyssp = yyss + yyps_index;
-! yyvsp = yyvs + yypv_index;
++ /*
++ ** 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)
***************
-*** 1511,1520 ****
+*** 1567,1578 ****
+ {
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, error recovery shifting\
-! to state %d\n", *yyssp, yytable[yyn]);
+ to state %d\n", *yyssp, yytable[yyn]);
#endif
if (yyssp >= yyss + yystacksize - 1)
{
-! goto yyoverflow;
+ goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
---- 1490,1514 ----
+ *++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]);
+! 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 = yyvs = (YYSTYPE*)PerlMem_realloc((char*)yyvs,
-! yystacksize * sizeof(YYSTYPE));
-! ysave->yyss = yyss = (short*)PerlMem_realloc((char*)yyss,
-! yystacksize * sizeof(short));
-! if (!yyvs || !yyss)
-! goto yyoverflow;
-! yyssp = yyss + yyps_index;
-! yyvsp = yyvs + yypv_index;
++ /*
++ ** 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;
***************
-*** 1526,1531 ****
+*** 1582,1588 ****
+ {
#if YYDEBUG
if (yydebug)
! printf("yydebug: error recovery discarding state %d\n",
-! *yyssp);
+ *yyssp);
#endif
if (yyssp <= yyss) goto yyabort;
---- 1520,1526 ----
+--- 1564,1570 ----
+ {
#if YYDEBUG
if (yydebug)
-! PerlIO_printf(Perl_debug_log,
-! "yydebug: error recovery discarding state %d\n",
-! *yyssp);
+! PerlIO_printf(Perl_debug_log, "yydebug: error recovery discarding state %d\n",
+ *yyssp);
#endif
if (yyssp <= yyss) goto yyabort;
***************
-*** 1544,1549 ****
+*** 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);
+ yystate, yychar, yys);
}
#endif
---- 1539,1545 ----
+--- 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);
+! PerlIO_printf(Perl_debug_log, "yydebug: state %d, error recovery discards token %d (%s)\n",
+ yystate, yychar, yys);
}
#endif
***************
-*** 1554,1558 ****
+*** 1610,1616 ****
+ yyreduce:
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, reducing by rule %d (%s)\n",
yystate, yyn, yyrule[yyn]);
#endif
---- 1550,1554 ----
+ 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];
***************
-*** 2358,2362 ****
+*** 2473,2479 ****
+ #line 790 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-! #line 2361 "y.tab.c"
+! #line 2477 "y.tab.c"
}
yyssp -= yym;
---- 2354,2358 ----
+ yystate = *yyssp;
+--- 2455,2461 ----
+ #line 790 "perly.y"
{ yyval.opval = yyvsp[0].opval; }
break;
-! #line 2365 "perly.c"
+! #line 2459 "perly.c"
}
yyssp -= yym;
+ yystate = *yyssp;
***************
-*** 2368,2373 ****
+*** 2483,2489 ****
+ {
#if YYDEBUG
if (yydebug)
! printf("yydebug: after reduction, shifting from state 0 to\
-! state %d\n", YYFINAL);
+ state %d\n", YYFINAL);
#endif
yystate = YYFINAL;
---- 2364,2370 ----
+--- 2465,2471 ----
+ {
#if YYDEBUG
if (yydebug)
-! PerlIO_printf(Perl_debug_log,
-! "yydebug: after reduction, shifting from state 0 to state %d\n",
-! YYFINAL);
+! PerlIO_printf(Perl_debug_log, "yydebug: after reduction, shifting from state 0 to\
+ state %d\n", YYFINAL);
#endif
yystate = YYFINAL;
***************
-*** 2383,2387 ****
+*** 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);
}
---- 2380,2384 ----
+ #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
***************
-*** 2398,2407 ****
+*** 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;
---- 2395,2419 ----
- #if YYDEBUG
- if (yydebug)
-! PerlIO_printf(Perl_debug_log,
-! "yydebug: after reduction, shifting from state %d to state %d\n",
-! *yyssp, yystate);
+ 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 = yyvs =
-! (YYSTYPE*)PerlMem_realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
-! ysave->yyss = yyss =
-! (short*)PerlMem_realloc((char*)yyss,yystacksize * sizeof(short));
-! if (!yyvs || !yyss)
-! goto yyoverflow;
-! yyssp = yyss + yyps_index;
-! yyvsp = yyvs + yypv_index;
+ goto yyoverflow;
}
*++yyssp = yystate;
-***************
-*** 2409,2416 ****
+ *++yyvsp = yyval;
goto yyloop;
yyoverflow:
! yyerror("yacc stack overflow");
yyaccept:
! return (0);
}
---- 2421,2448 ----
+--- 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;
! }
!
-! #ifdef PERL_OBJECT
-! #define NO_XSLOCKS
-! #include "XSUB.h"
-! #endif
-!
! static void
-! yydestruct(pTHXo_ void *ptr)
+! yydestruct(pTHX_ void *ptr)
! {
! struct ysv* ysave = (struct ysv*)ptr;
! if (ysave->yyss) Safefree(ysave->yyss);