1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00
freebsd/contrib/perl5/perly_c.diff

445 lines
12 KiB
Diff

*** perly.c.orig Tue Jul 28 15:02:41 1998
--- perly.c Tue Jul 28 15:14:54 1998
***************
*** 7,11 ****
--- 7,19 ----
#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,86 ****
deprecate("\"do\" to call subroutines");
}
#line 30 "perly.y"
- #ifndef OEMVS
- #line 33 "perly.y"
- typedef union {
- I32 ival;
- char *pval;
- OP *opval;
- GV *gvval;
- } YYSTYPE;
- #line 41 "perly.y"
- #endif /* OEMVS */
- #line 27 "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 30 "perly.y"
#define YYERRCODE 256
short yylhs[] = { -1,
***************
*** 1345,1365 ****
YYSTYPE yyval;
YYSTYPE yylval;
- short yyss[YYSTACKSIZE];
- YYSTYPE yyvs[YYSTACKSIZE];
- #define yystacksize YYSTACKSIZE
#line 643 "perly.y"
/* PROGRAM */
! #line 1353 "y.tab.c"
#define YYABORT goto yyabort
#define YYACCEPT goto yyaccept
#define YYERROR goto yyerrlab
int
! yyparse()
{
register int yym, yyn, yystate;
#if YYDEBUG
register char *yys;
extern char *getenv();
if (yys = getenv("YYDEBUG"))
{
--- 1285,1349 ----
YYSTYPE yyval;
YYSTYPE yylval;
#line 643 "perly.y"
/* PROGRAM */
! #line 1353 "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)
{
register int yym, yyn, yystate;
+ register short *yyssp;
+ register YYSTYPE *yyvsp;
+ short* yyss;
+ YYSTYPE* yyvs;
+ unsigned yystacksize = YYSTACKSIZE;
+ 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;
+
+ #if YYDEBUG
if (yys = getenv("YYDEBUG"))
{
***************
*** 1374,1377 ****
--- 1358,1371 ----
yychar = (-1);
+ /*
+ ** Initialize private stacks (yyparse may be called from an action)
+ */
+ New(73, yyss, yystacksize, short);
+ New(73, yyvs, yystacksize, YYSTYPE);
+ ysave->yyss = yyss;
+ ysave->yyvs = yyvs;
+ if (!yyvs || !yyss)
+ goto yyoverflow;
+
yyssp = yyss;
yyvsp = yyvs;
***************
*** 1389,1393 ****
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! printf("yydebug: state %d, reading %d (%s)\n", yystate,
yychar, yys);
}
--- 1383,1387 ----
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);
}
***************
*** 1399,1403 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, shifting to state %d\n",
yystate, yytable[yyn]);
#endif
--- 1393,1397 ----
#if YYDEBUG
if (yydebug)
! PerlIO_printf(Perl_debug_log, "yydebug: state %d, shifting to state %d\n",
yystate, yytable[yyn]);
#endif
***************
*** 1404,1408 ****
if (yyssp >= yyss + yystacksize - 1)
{
! goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
--- 1398,1416 ----
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*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
! ysave->yyss = yyss =
! (short*)realloc((char*)yyss,yystacksize * sizeof(short));
! if (!yyvs || !yyss)
! goto yyoverflow;
! yyssp = yyss + yyps_index;
! yyvsp = yyvs + yypv_index;
}
*++yyssp = yystate = yytable[yyn];
***************
*** 1440,1449 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, error recovery shifting\
! to state %d\n", *yyssp, yytable[yyn]);
#endif
if (yyssp >= yyss + yystacksize - 1)
{
! goto yyoverflow;
}
*++yyssp = yystate = yytable[yyn];
--- 1448,1472 ----
#if YYDEBUG
if (yydebug)
! 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*)realloc((char*)yyvs,
! yystacksize * sizeof(YYSTYPE));
! ysave->yyss = yyss = (short*)realloc((char*)yyss,
! yystacksize * sizeof(short));
! if (!yyvs || !yyss)
! goto yyoverflow;
! yyssp = yyss + yyps_index;
! yyvsp = yyvs + yypv_index;
}
*++yyssp = yystate = yytable[yyn];
***************
*** 1455,1460 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: error recovery discarding state %d\n",
! *yyssp);
#endif
if (yyssp <= yyss) goto yyabort;
--- 1478,1484 ----
#if YYDEBUG
if (yydebug)
! PerlIO_printf(Perl_debug_log,
! "yydebug: error recovery discarding state %d\n",
! *yyssp);
#endif
if (yyssp <= yyss) goto yyabort;
***************
*** 1473,1478 ****
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
--- 1497,1503 ----
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
***************
*** 1483,1487 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: state %d, reducing by rule %d (%s)\n",
yystate, yyn, yyrule[yyn]);
#endif
--- 1508,1512 ----
#if YYDEBUG
if (yydebug)
! PerlIO_printf(Perl_debug_log, "yydebug: state %d, reducing by rule %d (%s)\n",
yystate, yyn, yyrule[yyn]);
#endif
***************
*** 2267,2271 ****
{ yyval.opval = yyvsp[0].opval; }
break;
! #line 2270 "y.tab.c"
}
yyssp -= yym;
--- 2292,2296 ----
{ yyval.opval = yyvsp[0].opval; }
break;
! #line 2270 "perly.c"
}
yyssp -= yym;
***************
*** 2277,2282 ****
#if YYDEBUG
if (yydebug)
! printf("yydebug: after reduction, shifting from state 0 to\
! state %d\n", YYFINAL);
#endif
yystate = YYFINAL;
--- 2302,2308 ----
#if YYDEBUG
if (yydebug)
! PerlIO_printf(Perl_debug_log,
! "yydebug: after reduction, shifting from state 0 to state %d\n",
! YYFINAL);
#endif
yystate = YYFINAL;
***************
*** 2292,2296 ****
if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
if (!yys) yys = "illegal-symbol";
! printf("yydebug: state %d, reading %d (%s)\n",
YYFINAL, yychar, yys);
}
--- 2318,2322 ----
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);
}
***************
*** 2307,2316 ****
#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;
--- 2333,2357 ----
#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 = yyvs =
! (YYSTYPE*)realloc((char*)yyvs,yystacksize * sizeof(YYSTYPE));
! ysave->yyss = yyss =
! (short*)realloc((char*)yyss,yystacksize * sizeof(short));
! if (!yyvs || !yyss)
! goto yyoverflow;
! yyssp = yyss + yyps_index;
! yyvsp = yyvs + yypv_index;
}
*++yyssp = yystate;
***************
*** 2318,2325 ****
goto yyloop;
yyoverflow:
! yyerror("yacc stack overflow");
yyabort:
! return (1);
yyaccept:
! return (0);
}
--- 2359,2366 ----
goto yyloop;
yyoverflow:
! yyerror("Out of memory for yacc stack");
yyabort:
! retval = 1;
yyaccept:
! return retval;
}