rebuilt from .y
authorWilfried Goesgens <dothebart@citadel.org>
Sun, 5 Jun 2011 16:41:39 +0000 (16:41 +0000)
committerWilfried Goesgens <dothebart@citadel.org>
Sun, 5 Jun 2011 16:41:39 +0000 (16:41 +0000)
citadel/parsedate.c

index c48cfbbc5d4e2fc447c7bdbf9fadd277dac5325c..af08b4b81b3dd2620f0d1e7717d1ba529d59ded0 100644 (file)
@@ -1,24 +1,23 @@
-/* A Bison parser, made by GNU Bison 2.3.  */
 
 
-/* Skeleton implementation for Bison's Yacc-like parsers in C
+/* A Bison parser, made by GNU Bison 2.4.1.  */
 
 
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+/* Skeleton implementation for Bison's Yacc-like parsers in C
+   
+      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    Free Software Foundation, Inc.
    Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
+   
+   This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+   
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-
+   
    You should have received a copy of the GNU General Public License
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -29,7 +28,7 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-
+   
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
@@ -47,7 +46,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.3"
+#define YYBISON_VERSION "2.4.1"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
 /* Pure parsers.  */
 #define YYPURE 0
 
 /* Pure parsers.  */
 #define YYPURE 0
 
-/* Using locations.  */
-#define YYLSP_NEEDED 0
+/* Push parsers.  */
+#define YYPUSH 0
 
 
+/* Pull parsers.  */
+#define YYPULL 1
 
 
-
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     tDAY = 258,
-     tDAYZONE = 259,
-     tMERIDIAN = 260,
-     tMONTH = 261,
-     tMONTH_UNIT = 262,
-     tSEC_UNIT = 263,
-     tSNUMBER = 264,
-     tUNUMBER = 265,
-     tZONE = 266
-   };
-#endif
-/* Tokens.  */
-#define tDAY 258
-#define tDAYZONE 259
-#define tMERIDIAN 260
-#define tMONTH 261
-#define tMONTH_UNIT 262
-#define tSEC_UNIT 263
-#define tSNUMBER 264
-#define tUNUMBER 265
-#define tZONE 266
-
+/* Using locations.  */
+#define YYLSP_NEEDED 0
 
 
 
 /* Copy the first part of user declarations.  */
 
 
 
 /* Copy the first part of user declarations.  */
+
+/* Line 189 of yacc.c  */
 #line 1 "parsedate.y"
 
 #line 1 "parsedate.y"
 
-/* $Revision: 4003 $
+/* $Revision$
 **
 **  Originally written by Steven M. Bellovin <smb@research.att.com> while
 **  at the University of North Carolina at Chapel Hill.  Later tweaked by
 **
 **  Originally written by Steven M. Bellovin <smb@research.att.com> while
 **  at the University of North Carolina at Chapel Hill.  Later tweaked by
@@ -197,7 +173,7 @@ typedef enum _MERIDIAN {
 **  union, but this is more efficient.  (This routine predates the
 **  yacc %union construct.)
 */
 **  union, but this is more efficient.  (This routine predates the
 **  yacc %union construct.)
 */
-static char    *yyInput;
+static const char      *yyInput;
 static DSTMODE yyDSTmode;
 static int     yyHaveDate;
 static int     yyHaveRel;
 static DSTMODE yyDSTmode;
 static int     yyHaveDate;
 static int     yyHaveRel;
@@ -217,6 +193,9 @@ static time_t       yyRelSeconds;
 static void            date_error(char *);
 
 
 static void            date_error(char *);
 
 
+/* Line 189 of yacc.c  */
+#line 198 "y.tab.c"
+
 /* Enabling traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 0
 /* Enabling traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 0
@@ -235,28 +214,64 @@ static void               date_error(char *);
 # define YYTOKEN_TABLE 0
 #endif
 
 # define YYTOKEN_TABLE 0
 #endif
 
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     tDAY = 258,
+     tDAYZONE = 259,
+     tMERIDIAN = 260,
+     tMONTH = 261,
+     tMONTH_UNIT = 262,
+     tSEC_UNIT = 263,
+     tSNUMBER = 264,
+     tUNUMBER = 265,
+     tZONE = 266
+   };
+#endif
+/* Tokens.  */
+#define tDAY 258
+#define tDAYZONE 259
+#define tMERIDIAN 260
+#define tMONTH 261
+#define tMONTH_UNIT 262
+#define tSEC_UNIT 263
+#define tSNUMBER 264
+#define tUNUMBER 265
+#define tZONE 266
+
+
+
+
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 125 "parsedate.y"
 {
 {
+
+/* Line 214 of yacc.c  */
+#line 125 "parsedate.y"
+
     time_t             Number;
     enum _MERIDIAN     Meridian;
     time_t             Number;
     enum _MERIDIAN     Meridian;
-}
-/* Line 187 of yacc.c.  */
-#line 247 "y.tab.c"
-       YYSTYPE;
+
+
+
+/* Line 214 of yacc.c  */
+#line 263 "y.tab.c"
+} YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
 #endif
 
 
 #endif
 
 
-
 /* Copy the second part of user declarations.  */
 
 
 /* Copy the second part of user declarations.  */
 
 
-/* Line 216 of yacc.c.  */
-#line 260 "y.tab.c"
+/* Line 264 of yacc.c  */
+#line 275 "y.tab.c"
 
 #ifdef short
 # undef short
 
 #ifdef short
 # undef short
@@ -331,14 +346,14 @@ typedef short int yytype_int16;
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static int
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static int
-YYID (int i)
+YYID (int yyi)
 #else
 static int
 #else
 static int
-YYID (i)
-    int i;
+YYID (yyi)
+    int yyi;
 #endif
 {
 #endif
 {
-  return i;
+  return yyi;
 }
 #endif
 
 }
 #endif
 
@@ -419,9 +434,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
-  yytype_int16 yyss;
-  YYSTYPE yyvs;
-  };
+  yytype_int16 yyss_alloc;
+  YYSTYPE yyvs_alloc;
+};
 
 /* The size of the maximum gap between one aligned stack and the next.  */
 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
 
 /* The size of the maximum gap between one aligned stack and the next.  */
 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
@@ -455,12 +470,12 @@ union yyalloc
    elements in the stack, and YYPTR gives the new location of the
    stack.  Advance YYPTR to a properly aligned location for the next
    stack.  */
    elements in the stack, and YYPTR gives the new location of the
    stack.  Advance YYPTR to a properly aligned location for the next
    stack.  */
-# define YYSTACK_RELOCATE(Stack)                                       \
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)                          \
     do                                                                 \
       {                                                                        \
        YYSIZE_T yynewbytes;                                            \
     do                                                                 \
       {                                                                        \
        YYSIZE_T yynewbytes;                                            \
-       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
-       Stack = &yyptr->Stack;                                          \
+       YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
+       Stack = &yyptr->Stack_alloc;                                    \
        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
        yyptr += yynewbytes / sizeof (*yyptr);                          \
       }                                                                        \
        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
        yyptr += yynewbytes / sizeof (*yyptr);                          \
       }                                                                        \
@@ -849,17 +864,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep)
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static void
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
 #else
 static void
 #else
 static void
-yy_stack_print (bottom, top)
-    yytype_int16 *bottom;
-    yytype_int16 *top;
+yy_stack_print (yybottom, yytop)
+    yytype_int16 *yybottom;
+    yytype_int16 *yytop;
 #endif
 {
   YYFPRINTF (stderr, "Stack now");
 #endif
 {
   YYFPRINTF (stderr, "Stack now");
-  for (; bottom <= top; ++bottom)
-    YYFPRINTF (stderr, " %d", *bottom);
+  for (; yybottom <= yytop; yybottom++)
+    {
+      int yybot = *yybottom;
+      YYFPRINTF (stderr, " %d", yybot);
+    }
   YYFPRINTF (stderr, "\n");
 }
 
   YYFPRINTF (stderr, "\n");
 }
 
@@ -893,11 +911,11 @@ yy_reduce_print (yyvsp, yyrule)
   /* The symbols being reduced.  */
   for (yyi = 0; yyi < yynrhs; yyi++)
     {
   /* The symbols being reduced.  */
   for (yyi = 0; yyi < yynrhs; yyi++)
     {
-      fprintf (stderr, "   $%d = ", yyi + 1);
+      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
                       &(yyvsp[(yyi + 1) - (yynrhs)])
                                       );
       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
                       &(yyvsp[(yyi + 1) - (yynrhs)])
                                       );
-      fprintf (stderr, "\n");
+      YYFPRINTF (stderr, "\n");
     }
 }
 
     }
 }
 
@@ -1177,10 +1195,8 @@ yydestruct (yymsg, yytype, yyvaluep)
        break;
     }
 }
        break;
     }
 }
-\f
 
 /* Prevent warnings from -Wmissing-prototypes.  */
 
 /* Prevent warnings from -Wmissing-prototypes.  */
-
 #ifdef YYPARSE_PARAM
 #if defined __STDC__ || defined __cplusplus
 int yyparse (void *YYPARSE_PARAM);
 #ifdef YYPARSE_PARAM
 #if defined __STDC__ || defined __cplusplus
 int yyparse (void *YYPARSE_PARAM);
@@ -1196,11 +1212,10 @@ int yyparse ();
 #endif /* ! YYPARSE_PARAM */
 
 
 #endif /* ! YYPARSE_PARAM */
 
 
-
-/* The look-ahead symbol.  */
+/* The lookahead symbol.  */
 int yychar;
 
 int yychar;
 
-/* The semantic value of the look-ahead symbol.  */
+/* The semantic value of the lookahead symbol.  */
 YYSTYPE yylval;
 
 /* Number of syntax errors so far.  */
 YYSTYPE yylval;
 
 /* Number of syntax errors so far.  */
@@ -1208,9 +1223,9 @@ int yynerrs;
 
 
 
 
 
 
-/*----------.
-| yyparse.  |
-`----------*/
+/*-------------------------.
+| yyparse or yypush_parse.  |
+`-------------------------*/
 
 #ifdef YYPARSE_PARAM
 #if (defined __STDC__ || defined __C99__FUNC__ \
 
 #ifdef YYPARSE_PARAM
 #if (defined __STDC__ || defined __C99__FUNC__ \
@@ -1234,66 +1249,68 @@ yyparse ()
 #endif
 #endif
 {
 #endif
 #endif
 {
-  
-  int yystate;
-  int yyn;
-  int yyresult;
-  /* Number of tokens to shift before error messages enabled.  */
-  int yyerrstatus;
-  /* Look-ahead token as an internal (translated) token number.  */
-  int yytoken = 0;
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-  /* Three stacks and their tools:
-     `yyss': related to states,
-     `yyvs': related to semantic values,
-     `yyls': related to locations.
 
 
-     Refer to the stacks thru separate pointers, to allow yyoverflow
-     to reallocate them elsewhere.  */
 
 
-  /* The state stack.  */
-  yytype_int16 yyssa[YYINITDEPTH];
-  yytype_int16 *yyss = yyssa;
-  yytype_int16 *yyssp;
+    int yystate;
+    /* Number of tokens to shift before error messages enabled.  */
+    int yyerrstatus;
 
 
-  /* The semantic value stack.  */
-  YYSTYPE yyvsa[YYINITDEPTH];
-  YYSTYPE *yyvs = yyvsa;
-  YYSTYPE *yyvsp;
+    /* The stacks and their tools:
+       `yyss': related to states.
+       `yyvs': related to semantic values.
 
 
+       Refer to the stacks thru separate pointers, to allow yyoverflow
+       to reallocate them elsewhere.  */
 
 
+    /* The state stack.  */
+    yytype_int16 yyssa[YYINITDEPTH];
+    yytype_int16 *yyss;
+    yytype_int16 *yyssp;
 
 
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
+    /* The semantic value stack.  */
+    YYSTYPE yyvsa[YYINITDEPTH];
+    YYSTYPE *yyvs;
+    YYSTYPE *yyvsp;
 
 
-  YYSIZE_T yystacksize = YYINITDEPTH;
+    YYSIZE_T yystacksize;
 
 
+  int yyn;
+  int yyresult;
+  /* Lookahead token as an internal (translated) token number.  */
+  int yytoken;
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
+#if YYERROR_VERBOSE
+  /* Buffer for error messages, and its allocated size.  */
+  char yymsgbuf[128];
+  char *yymsg = yymsgbuf;
+  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 
   /* The number of symbols on the RHS of the reduced rule.
      Keep to zero when no symbol should be popped.  */
   int yylen = 0;
 
 
   /* The number of symbols on the RHS of the reduced rule.
      Keep to zero when no symbol should be popped.  */
   int yylen = 0;
 
+  yytoken = 0;
+  yyss = yyssa;
+  yyvs = yyvsa;
+  yystacksize = YYINITDEPTH;
+
   YYDPRINTF ((stderr, "Starting parse\n"));
 
   yystate = 0;
   yyerrstatus = 0;
   yynerrs = 0;
   YYDPRINTF ((stderr, "Starting parse\n"));
 
   yystate = 0;
   yyerrstatus = 0;
   yynerrs = 0;
-  yychar = YYEMPTY;            /* Cause a token to be read.  */
+  yychar = YYEMPTY; /* Cause a token to be read.  */
 
   /* Initialize stack pointers.
      Waste one element of value and location stack
      so that they stay on the same level as the state stack.
      The wasted elements are never initialized.  */
 
   /* Initialize stack pointers.
      Waste one element of value and location stack
      so that they stay on the same level as the state stack.
      The wasted elements are never initialized.  */
-
   yyssp = yyss;
   yyvsp = yyvs;
 
   yyssp = yyss;
   yyvsp = yyvs;
 
@@ -1323,7 +1340,6 @@ yyparse ()
        YYSTYPE *yyvs1 = yyvs;
        yytype_int16 *yyss1 = yyss;
 
        YYSTYPE *yyvs1 = yyvs;
        yytype_int16 *yyss1 = yyss;
 
-
        /* Each stack pointer address is followed by the size of the
           data in use in that stack, in bytes.  This used to be a
           conditional around just the two extra args, but that might
        /* Each stack pointer address is followed by the size of the
           data in use in that stack, in bytes.  This used to be a
           conditional around just the two extra args, but that might
@@ -1331,7 +1347,6 @@ yyparse ()
        yyoverflow (YY_("memory exhausted"),
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
        yyoverflow (YY_("memory exhausted"),
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
-
                    &yystacksize);
 
        yyss = yyss1;
                    &yystacksize);
 
        yyss = yyss1;
@@ -1354,9 +1369,8 @@ yyparse ()
          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
        if (! yyptr)
          goto yyexhaustedlab;
          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
        if (! yyptr)
          goto yyexhaustedlab;
-       YYSTACK_RELOCATE (yyss);
-       YYSTACK_RELOCATE (yyvs);
-
+       YYSTACK_RELOCATE (yyss_alloc, yyss);
+       YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 #  undef YYSTACK_RELOCATE
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
 #  undef YYSTACK_RELOCATE
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
@@ -1367,7 +1381,6 @@ yyparse ()
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
-
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
@@ -1377,6 +1390,9 @@ yyparse ()
 
   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
 
   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
+  if (yystate == YYFINAL)
+    YYACCEPT;
+
   goto yybackup;
 
 /*-----------.
   goto yybackup;
 
 /*-----------.
@@ -1385,16 +1401,16 @@ yyparse ()
 yybackup:
 
   /* Do appropriate processing given the current state.  Read a
 yybackup:
 
   /* Do appropriate processing given the current state.  Read a
-     look-ahead token if we need one and don't already have one.  */
+     lookahead token if we need one and don't already have one.  */
 
 
-  /* First try to decide what to do without reference to look-ahead token.  */
+  /* First try to decide what to do without reference to lookahead token.  */
   yyn = yypact[yystate];
   if (yyn == YYPACT_NINF)
     goto yydefault;
 
   yyn = yypact[yystate];
   if (yyn == YYPACT_NINF)
     goto yydefault;
 
-  /* Not known => get a look-ahead token if don't already have one.  */
+  /* Not known => get a lookahead token if don't already have one.  */
 
 
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
@@ -1426,20 +1442,16 @@ yybackup:
       goto yyreduce;
     }
 
       goto yyreduce;
     }
 
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
   /* Count tokens shifted since error; after three, turn off error
      status.  */
   if (yyerrstatus)
     yyerrstatus--;
 
   /* Count tokens shifted since error; after three, turn off error
      status.  */
   if (yyerrstatus)
     yyerrstatus--;
 
-  /* Shift the look-ahead token.  */
+  /* Shift the lookahead token.  */
   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
-  /* Discard the shifted token unless it is eof.  */
-  if (yychar != YYEOF)
-    yychar = YYEMPTY;
+  /* Discard the shifted token.  */
+  yychar = YYEMPTY;
 
   yystate = yyn;
   *++yyvsp = yylval;
 
   yystate = yyn;
   *++yyvsp = yylval;
@@ -1479,6 +1491,8 @@ yyreduce:
   switch (yyn)
     {
         case 4:
   switch (yyn)
     {
         case 4:
+
+/* Line 1455 of yacc.c  */
 #line 143 "parsedate.y"
     {
            yyHaveTime++;
 #line 143 "parsedate.y"
     {
            yyHaveTime++;
@@ -1492,6 +1506,8 @@ yyreduce:
     break;
 
   case 5:
     break;
 
   case 5:
+
+/* Line 1455 of yacc.c  */
 #line 152 "parsedate.y"
     {
            yyHaveTime++;
 #line 152 "parsedate.y"
     {
            yyHaveTime++;
@@ -1500,6 +1516,8 @@ yyreduce:
     break;
 
   case 6:
     break;
 
   case 6:
+
+/* Line 1455 of yacc.c  */
 #line 156 "parsedate.y"
     {
            yyHaveDate++;
 #line 156 "parsedate.y"
     {
            yyHaveDate++;
@@ -1507,6 +1525,8 @@ yyreduce:
     break;
 
   case 7:
     break;
 
   case 7:
+
+/* Line 1455 of yacc.c  */
 #line 159 "parsedate.y"
     {
            yyHaveRel = 1;
 #line 159 "parsedate.y"
     {
            yyHaveRel = 1;
@@ -1514,6 +1534,8 @@ yyreduce:
     break;
 
   case 8:
     break;
 
   case 8:
+
+/* Line 1455 of yacc.c  */
 #line 164 "parsedate.y"
     {
            if ((yyvsp[(1) - (2)].Number) < 100) {
 #line 164 "parsedate.y"
     {
            if ((yyvsp[(1) - (2)].Number) < 100) {
@@ -1530,6 +1552,8 @@ yyreduce:
     break;
 
   case 9:
     break;
 
   case 9:
+
+/* Line 1455 of yacc.c  */
 #line 176 "parsedate.y"
     {
            yyHour = (yyvsp[(1) - (4)].Number);
 #line 176 "parsedate.y"
     {
            yyHour = (yyvsp[(1) - (4)].Number);
@@ -1540,6 +1564,8 @@ yyreduce:
     break;
 
   case 10:
     break;
 
   case 10:
+
+/* Line 1455 of yacc.c  */
 #line 182 "parsedate.y"
     {
            yyHour = (yyvsp[(1) - (4)].Number);
 #line 182 "parsedate.y"
     {
            yyHour = (yyvsp[(1) - (4)].Number);
@@ -1551,6 +1577,8 @@ yyreduce:
     break;
 
   case 11:
     break;
 
   case 11:
+
+/* Line 1455 of yacc.c  */
 #line 189 "parsedate.y"
     {
            yyHour = (yyvsp[(1) - (6)].Number);
 #line 189 "parsedate.y"
     {
            yyHour = (yyvsp[(1) - (6)].Number);
@@ -1561,6 +1589,8 @@ yyreduce:
     break;
 
   case 12:
     break;
 
   case 12:
+
+/* Line 1455 of yacc.c  */
 #line 195 "parsedate.y"
     {
            yyHour = (yyvsp[(1) - (6)].Number);
 #line 195 "parsedate.y"
     {
            yyHour = (yyvsp[(1) - (6)].Number);
@@ -1573,6 +1603,8 @@ yyreduce:
     break;
 
   case 13:
     break;
 
   case 13:
+
+/* Line 1455 of yacc.c  */
 #line 205 "parsedate.y"
     {
            (yyval.Number) = (yyvsp[(1) - (1)].Number);
 #line 205 "parsedate.y"
     {
            (yyval.Number) = (yyvsp[(1) - (1)].Number);
@@ -1581,6 +1613,8 @@ yyreduce:
     break;
 
   case 14:
     break;
 
   case 14:
+
+/* Line 1455 of yacc.c  */
 #line 209 "parsedate.y"
     {
            (yyval.Number) = (yyvsp[(1) - (1)].Number);
 #line 209 "parsedate.y"
     {
            (yyval.Number) = (yyvsp[(1) - (1)].Number);
@@ -1589,6 +1623,8 @@ yyreduce:
     break;
 
   case 15:
     break;
 
   case 15:
+
+/* Line 1455 of yacc.c  */
 #line 213 "parsedate.y"
     {
            /* Only allow "GMT+300" and "GMT-0800" */
 #line 213 "parsedate.y"
     {
            /* Only allow "GMT+300" and "GMT-0800" */
@@ -1601,6 +1637,8 @@ yyreduce:
     break;
 
   case 16:
     break;
 
   case 16:
+
+/* Line 1455 of yacc.c  */
 #line 221 "parsedate.y"
     {
            (yyval.Number) = (yyvsp[(1) - (1)].Number);
 #line 221 "parsedate.y"
     {
            (yyval.Number) = (yyvsp[(1) - (1)].Number);
@@ -1609,6 +1647,8 @@ yyreduce:
     break;
 
   case 17:
     break;
 
   case 17:
+
+/* Line 1455 of yacc.c  */
 #line 227 "parsedate.y"
     {
            int         i;
 #line 227 "parsedate.y"
     {
            int         i;
@@ -1632,6 +1672,8 @@ yyreduce:
     break;
 
   case 18:
     break;
 
   case 18:
+
+/* Line 1455 of yacc.c  */
 #line 248 "parsedate.y"
     {
            yyMonth = (yyvsp[(1) - (3)].Number);
 #line 248 "parsedate.y"
     {
            yyMonth = (yyvsp[(1) - (3)].Number);
@@ -1640,6 +1682,8 @@ yyreduce:
     break;
 
   case 19:
     break;
 
   case 19:
+
+/* Line 1455 of yacc.c  */
 #line 252 "parsedate.y"
     {
            if ((yyvsp[(1) - (5)].Number) > 100) {
 #line 252 "parsedate.y"
     {
            if ((yyvsp[(1) - (5)].Number) > 100) {
@@ -1656,6 +1700,8 @@ yyreduce:
     break;
 
   case 20:
     break;
 
   case 20:
+
+/* Line 1455 of yacc.c  */
 #line 264 "parsedate.y"
     {
            yyMonth = (yyvsp[(1) - (2)].Number);
 #line 264 "parsedate.y"
     {
            yyMonth = (yyvsp[(1) - (2)].Number);
@@ -1664,6 +1710,8 @@ yyreduce:
     break;
 
   case 21:
     break;
 
   case 21:
+
+/* Line 1455 of yacc.c  */
 #line 268 "parsedate.y"
     {
            yyMonth = (yyvsp[(1) - (4)].Number);
 #line 268 "parsedate.y"
     {
            yyMonth = (yyvsp[(1) - (4)].Number);
@@ -1673,6 +1721,8 @@ yyreduce:
     break;
 
   case 22:
     break;
 
   case 22:
+
+/* Line 1455 of yacc.c  */
 #line 273 "parsedate.y"
     {
            yyDay = (yyvsp[(1) - (2)].Number);
 #line 273 "parsedate.y"
     {
            yyDay = (yyvsp[(1) - (2)].Number);
@@ -1681,6 +1731,8 @@ yyreduce:
     break;
 
   case 23:
     break;
 
   case 23:
+
+/* Line 1455 of yacc.c  */
 #line 277 "parsedate.y"
     {
            yyDay = (yyvsp[(1) - (3)].Number);
 #line 277 "parsedate.y"
     {
            yyDay = (yyvsp[(1) - (3)].Number);
@@ -1690,6 +1742,8 @@ yyreduce:
     break;
 
   case 24:
     break;
 
   case 24:
+
+/* Line 1455 of yacc.c  */
 #line 282 "parsedate.y"
     {
            yyDay = (yyvsp[(3) - (5)].Number);
 #line 282 "parsedate.y"
     {
            yyDay = (yyvsp[(3) - (5)].Number);
@@ -1699,6 +1753,8 @@ yyreduce:
     break;
 
   case 25:
     break;
 
   case 25:
+
+/* Line 1455 of yacc.c  */
 #line 289 "parsedate.y"
     {
            yyRelSeconds += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number);
 #line 289 "parsedate.y"
     {
            yyRelSeconds += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number);
@@ -1706,6 +1762,8 @@ yyreduce:
     break;
 
   case 26:
     break;
 
   case 26:
+
+/* Line 1455 of yacc.c  */
 #line 292 "parsedate.y"
     {
            yyRelSeconds += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number);
 #line 292 "parsedate.y"
     {
            yyRelSeconds += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number);
@@ -1713,6 +1771,8 @@ yyreduce:
     break;
 
   case 27:
     break;
 
   case 27:
+
+/* Line 1455 of yacc.c  */
 #line 295 "parsedate.y"
     {
            yyRelMonth += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number);
 #line 295 "parsedate.y"
     {
            yyRelMonth += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number);
@@ -1720,6 +1780,8 @@ yyreduce:
     break;
 
   case 28:
     break;
 
   case 28:
+
+/* Line 1455 of yacc.c  */
 #line 298 "parsedate.y"
     {
            yyRelMonth += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number);
 #line 298 "parsedate.y"
     {
            yyRelMonth += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number);
@@ -1727,6 +1789,8 @@ yyreduce:
     break;
 
   case 29:
     break;
 
   case 29:
+
+/* Line 1455 of yacc.c  */
 #line 303 "parsedate.y"
     {
            (yyval.Meridian) = MER24;
 #line 303 "parsedate.y"
     {
            (yyval.Meridian) = MER24;
@@ -1734,6 +1798,8 @@ yyreduce:
     break;
 
   case 30:
     break;
 
   case 30:
+
+/* Line 1455 of yacc.c  */
 #line 306 "parsedate.y"
     {
            (yyval.Meridian) = (yyvsp[(1) - (1)].Meridian);
 #line 306 "parsedate.y"
     {
            (yyval.Meridian) = (yyvsp[(1) - (1)].Meridian);
@@ -1741,8 +1807,9 @@ yyreduce:
     break;
 
 
     break;
 
 
-/* Line 1267 of yacc.c.  */
-#line 1746 "y.tab.c"
+
+/* Line 1455 of yacc.c  */
+#line 1813 "y.tab.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -1753,7 +1820,6 @@ yyreduce:
 
   *++yyvsp = yyval;
 
 
   *++yyvsp = yyval;
 
-
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
      number reduced by.  */
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
      number reduced by.  */
@@ -1818,7 +1884,7 @@ yyerrlab:
 
   if (yyerrstatus == 3)
     {
 
   if (yyerrstatus == 3)
     {
-      /* If just tried and failed to reuse look-ahead token after an
+      /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */
 
       if (yychar <= YYEOF)
         error, discard it.  */
 
       if (yychar <= YYEOF)
@@ -1835,7 +1901,7 @@ yyerrlab:
        }
     }
 
        }
     }
 
-  /* Else will try to reuse look-ahead token after shifting the error
+  /* Else will try to reuse lookahead token after shifting the error
      token.  */
   goto yyerrlab1;
 
      token.  */
   goto yyerrlab1;
 
@@ -1892,9 +1958,6 @@ yyerrlab1:
       YY_STACK_PRINT (yyss, yyssp);
     }
 
       YY_STACK_PRINT (yyss, yyssp);
     }
 
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
   *++yyvsp = yylval;
 
 
   *++yyvsp = yylval;
 
 
@@ -1919,7 +1982,7 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
   yyresult = 1;
   goto yyreturn;
 
-#ifndef yyoverflow
+#if !defined(yyoverflow) || YYERROR_VERBOSE
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/
@@ -1930,7 +1993,7 @@ yyexhaustedlab:
 #endif
 
 yyreturn:
 #endif
 
 yyreturn:
-  if (yychar != YYEOF && yychar != YYEMPTY)
+  if (yychar != YYEMPTY)
      yydestruct ("Cleanup: discarding lookahead",
                 yytoken, &yylval);
   /* Do not reclaim the symbols of the rule which action triggered
      yydestruct ("Cleanup: discarding lookahead",
                 yytoken, &yylval);
   /* Do not reclaim the symbols of the rule which action triggered
@@ -1956,6 +2019,8 @@ yyreturn:
 }
 
 
 }
 
 
+
+/* Line 1675 of yacc.c  */
 #line 311 "parsedate.y"
 
 
 #line 311 "parsedate.y"
 
 
@@ -2379,12 +2444,12 @@ date_lex(void)
 
 
 time_t
 
 
 time_t
-parsedate(char *p)
+parsedate(const char *p)
 {
     extern int         date_parse(void);
     time_t             Start;
 
 {
     extern int         date_parse(void);
     time_t             Start;
 
-    yyInput = p;
+    yyInput = p; /* well, its supposed to be const... */
 
     yyYear = 0;
     yyMonth = 0;
 
     yyYear = 0;
     yyMonth = 0;