summaryrefslogtreecommitdiff
path: root/perly_c.diff
diff options
context:
space:
mode:
authorStephen McCamant <smcc@mit.edu>1999-07-23 10:55:22 -0500
committerGurusamy Sarathy <gsar@cpan.org>1999-07-26 10:44:11 +0000
commitfad39ff13c300fe483c6155ea2883280e12fc89c (patch)
tree5ced2802fa81825ad5bc148be165aa3a8e20a7ac /perly_c.diff
parent43192e07925c626b8d615aff545160df8bd7c3f8 (diff)
downloadperl-fad39ff13c300fe483c6155ea2883280e12fc89c.tar.gz
allow arrow omission in $foo[10]->('foo') etc. (but not in
foo()->()); rework grammar to remove conflicts Message-ID: <14232.54970.771570.548676@alias-2.pr.mcs.net> Subject: [PATCH _57, long] Re: optional arrow asymmetry p4raw-id: //depot/perl@3767
Diffstat (limited to 'perly_c.diff')
-rw-r--r--perly_c.diff420
1 files changed, 207 insertions, 213 deletions
diff --git a/perly_c.diff b/perly_c.diff
index cfd369b53f..463df80076 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);
}