X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=perly.y;h=af0159e72194ab722f6317fb1213c9f1c98164bf;hb=f5b9d040829bb5deb93173e35ee6c82ce0a01c37;hp=93e5f77af93bc7da24b7ebe9d2c1297f8d2ca62c;hpb=c76ac1ee16c5c9591d8ffad5a0651b7f81738b68;p=p5sagit%2Fp5-mst-13.2.git diff --git a/perly.y b/perly.y index 93e5f77..af0159e 100644 --- a/perly.y +++ b/perly.y @@ -1,6 +1,6 @@ /* perly.y * - * Copyright (c) 1991-1997, Larry Wall + * Copyright (c) 1991-2000, Larry Wall * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -39,22 +39,7 @@ struct ysv { YYSTYPE oldyylval; }; -static void yydestruct(void *ptr); - -static 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); -} +static void yydestruct(pTHXo_ void *ptr); %} @@ -281,7 +266,7 @@ nexpr : /* NULL */ ; texpr : /* NULL means true */ - { (void)scan_num("1"); $$ = yylval.opval; } + { (void)scan_num("1", &yylval); $$ = yylval.opval; } | expr ; @@ -352,7 +337,7 @@ startformsub: /* NULL */ /* start a format subroutine scope */ subname : WORD { STRLEN n_a; char *name = SvPV(((SVOP*)$1)->op_sv,n_a); if (strEQ(name, "BEGIN") || strEQ(name, "END") - || strEQ(name, "INIT")) + || strEQ(name, "INIT") || strEQ(name, "CHECK")) CvSPECIAL_on(PL_compcv); $$ = $1; } ;