This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Unicode-Collate to CPAN version 1.01
[perl5.git] / perly.c
diff --git a/perly.c b/perly.c
index 480894f..5a934dc 100644 (file)
--- a/perly.c
+++ b/perly.c
@@ -38,12 +38,19 @@ typedef signed char yysigned_char;
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #define YYINITDEPTH 200
 
+#ifdef YYDEBUG
+#  undef YYDEBUG
+#endif
 #ifdef DEBUGGING
 #  define YYDEBUG 1
 #else
 #  define YYDEBUG 0
 #endif
 
+#ifndef YY_NULL
+# define YY_NULL 0
+#endif
+
 /* contains all the parser state tables; auto-generated from perly.y */
 #include "perly.tab"
 
@@ -214,6 +221,7 @@ S_clear_yystack(pTHX_  const yy_parser *parser)
            if (ps->compcv != PL_compcv) {
                PL_compcv = ps->compcv;
                PAD_SET_CUR_NOSAVE(CvPADLIST(PL_compcv), 1);
+               PL_comppad_name = PadlistNAMES(CvPADLIST(PL_compcv));
            }
            YYDPRINTF ((Perl_debug_log, "(freeing op)\n"));
            op_free(ps->val.opval);
@@ -238,15 +246,15 @@ Perl_yyparse (pTHX_ int gramtype)
 #endif
 {
     dVAR;
-    register int yystate;
-    register int yyn;
+    int yystate;
+    int yyn;
     int yyresult;
 
     /* Lookahead token as an internal (translated) token number.  */
     int yytoken = 0;
 
-    register yy_parser *parser;            /* the parser object */
-    register yy_stack_frame  *ps;   /* current parser stack frame */
+    yy_parser *parser;     /* the parser object */
+    yy_stack_frame  *ps;   /* current parser stack frame */
 
 #define YYPOPSTACK   parser->ps = --ps
 #define YYPUSHSTACK  parser->ps = ++ps
@@ -334,9 +342,12 @@ Perl_yyparse (pTHX_ int gramtype)
        parser->yychar = yylex();
 #endif
 
+/* perly.tab is shipped based on an ASCII system; if it were to be regenerated
+ * on a platform that doesn't use ASCII, this translation back would need to be
+ * removed */
 #  ifdef EBCDIC
        if (parser->yychar >= 0 && parser->yychar < 255) {
-           parser->yychar = NATIVE_TO_ASCII(parser->yychar);
+           parser->yychar = NATIVE_TO_LATIN1(parser->yychar);
        }
 #  endif
     }
@@ -522,8 +533,6 @@ Perl_yyparse (pTHX_ int gramtype)
        }
 
        YYDSYMPRINTF ("Error: discarding", yytoken, &parser->yylval);
-       if (yy_type_tab[yytoken] == toketype_opval)
-           op_free(parser->yylval.opval);
        parser->yychar = YYEMPTY;
 
     }