RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Ralf S. Engelschall
  Root:   /v/rpm/cvs                       Email:  [EMAIL PROTECTED]
  Module: rpm                              Date:   02-Jul-2007 09:49:25
  Branch: HEAD                             Handle: 2007070208492401

  Modified files:
    rpm                     CHANGES
    rpm/lib                 getdate.c

  Log:
    re-generate the lib/getdate.c file from lib/getdate.y with newer GNU
    bison 2.3. Actually such generated files should be not kept in CVS, but
    until we know when to generate them (in autogen.sh?) let's at least use
    a latest version.

  Summary:
    Revision    Changes     Path
    1.1422      +1  -0      rpm/CHANGES
    1.13        +595 -432   rpm/lib/getdate.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1421 -r1.1422 CHANGES
  --- rpm/CHANGES       2 Jul 2007 07:47:18 -0000       1.1421
  +++ rpm/CHANGES       2 Jul 2007 07:49:24 -0000       1.1422
  @@ -1,4 +1,5 @@
   4.5 -> 5.0:
  +    - rse: re-generate lib/getdate.c with newer GNU bison 2.3
       - rse: detect if a script cannot be run because fork(2) failed.
       - rse: use the "ustar" format defined by POSIX 1003.1-1988 to roll the 
distribution tarball.
       - mgh: resolve namespace conflict with "__stdchrnul" in fnmatch.c
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/getdate.c
  ============================================================================
  $ cvs diff -u -r1.12 -r1.13 getdate.c
  --- rpm/lib/getdate.c 21 Jun 2007 12:51:37 -0000      1.12
  +++ rpm/lib/getdate.c 2 Jul 2007 07:49:25 -0000       1.13
  @@ -4,10 +4,12 @@
   /[EMAIL PROTECTED] -evalorderuncon -modobserveruncon -modnomods @*/
   /[EMAIL PROTECTED] -branchstate -sizeoftype -usereleased @*/
   /[EMAIL PROTECTED]@*/
  -/* A Bison parser, made by GNU Bison 2.1.  */
  +/* A Bison parser, made by GNU Bison 2.3.  */
   
  -/* Skeleton parser for Yacc-like parsing with Bison,
  -   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free 
Software Foundation, Inc.
  +/* 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.
   
      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
  @@ -24,13 +26,21 @@
      Foundation, Inc., 51 Franklin Street, Fifth Floor,
      Boston, MA 02110-1301, USA.  */
   
  -/* As a special exception, when this file is copied by Bison into a
  -   Bison output file, you may use that output file without restriction.
  -   This special exception was added by the Free Software Foundation
  -   in version 1.24 of Bison.  */
  +/* As a special exception, you may create a larger work that contains
  +   part or all of the Bison parser skeleton and distribute that work
  +   under terms of your choice, so long as that work isn't itself a
  +   parser generator using the skeleton or a modified version thereof
  +   as a parser skeleton.  Alternatively, if you modify or redistribute
  +   the parser skeleton itself, you may (at your option) remove this
  +   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.  */
   
  -/* Written by Richard Stallman by simplifying the original so called
  -   ``semantic'' parser.  */
  +/* C LALR(1) parser skeleton written by Richard Stallman, by
  +   simplifying the original so-called "semantic" parser.  */
   
   /* All symbols defined below should begin with yy or YY, to avoid
      infringing on user name space.  This should be done even for local
  @@ -43,7 +53,7 @@
   #define YYBISON 1
   
   /* Bison version.  */
  -#define YYBISON_VERSION "2.1"
  +#define YYBISON_VERSION "2.3"
   
   /* Skeleton name.  */
   #define YYSKELETON_NAME "yacc.c"
  @@ -320,14 +330,16 @@
   # define YYTOKEN_TABLE 0
   #endif
   
  -#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
  -#line 210 "./getdate.y"
  -typedef union YYSTYPE {
  +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
  +typedef union YYSTYPE
  +#line 206 "./getdate.y"
  +{
       time_t           Number;
       enum _MERIDIAN   Meridian;
  -} YYSTYPE;
  -/* Line 196 of yacc.c.  */
  -#line 329 "getdate.c"
  +}
  +/* Line 187 of yacc.c.  */
  +#line 336 "getdate.c"
  +     YYSTYPE;
   # define yystype YYSTYPE /* obsolescent; will be withdrawn */
   # define YYSTYPE_IS_DECLARED 1
   # define YYSTYPE_IS_TRIVIAL 1
  @@ -338,23 +350,56 @@
   /* Copy the second part of user declarations.  */
   
   
  -/* Line 219 of yacc.c.  */
  -#line 341 "getdate.c"
  +/* Line 216 of yacc.c.  */
  +#line 349 "getdate.c"
   
  -#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
  -# define YYSIZE_T __SIZE_TYPE__
  +#ifdef short
  +# undef short
   #endif
  -#if ! defined (YYSIZE_T) && defined (size_t)
  -# define YYSIZE_T size_t
  +
  +#ifdef YYTYPE_UINT8
  +typedef YYTYPE_UINT8 yytype_uint8;
  +#else
  +typedef unsigned char yytype_uint8;
   #endif
  -#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
  -# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
  -# define YYSIZE_T size_t
  +
  +#ifdef YYTYPE_INT8
  +typedef YYTYPE_INT8 yytype_int8;
  +#elif (defined __STDC__ || defined __C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
  +typedef signed char yytype_int8;
  +#else
  +typedef short int yytype_int8;
   #endif
  -#if ! defined (YYSIZE_T)
  -# define YYSIZE_T unsigned int
  +
  +#ifdef YYTYPE_UINT16
  +typedef YYTYPE_UINT16 yytype_uint16;
  +#else
  +typedef unsigned short int yytype_uint16;
   #endif
   
  +#ifdef YYTYPE_INT16
  +typedef YYTYPE_INT16 yytype_int16;
  +#else
  +typedef short int yytype_int16;
  +#endif
  +
  +#ifndef YYSIZE_T
  +# ifdef __SIZE_TYPE__
  +#  define YYSIZE_T __SIZE_TYPE__
  +# elif defined size_t
  +#  define YYSIZE_T size_t
  +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
  +#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
  +#  define YYSIZE_T size_t
  +# else
  +#  define YYSIZE_T unsigned int
  +# endif
  +#endif
  +
  +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
  +
   #ifndef YY_
   # if YYENABLE_NLS
   #  if ENABLE_NLS
  @@ -367,7 +412,32 @@
   # endif
   #endif
   
  -#if ! defined (yyoverflow) || YYERROR_VERBOSE
  +/* Suppress unused-variable warnings by "using" E.  */
  +#if ! defined lint || defined __GNUC__
  +# define YYUSE(e) ((void) (e))
  +#else
  +# define YYUSE(e) /* empty */
  +#endif
  +
  +/* Identity function, used to suppress warnings about constant conditions.  
*/
  +#ifndef lint
  +# define YYID(n) (n)
  +#else
  +#if (defined __STDC__ || defined __C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
  +static int
  +YYID (int i)
  +#else
  +static int
  +YYID (i)
  +    int i;
  +#endif
  +{
  +  return i;
  +}
  +#endif
  +
  +#if ! defined yyoverflow || YYERROR_VERBOSE
   
   /* The parser invokes alloca or malloc; define the necessary symbols.  */
   
  @@ -375,64 +445,76 @@
   #  if YYSTACK_USE_ALLOCA
   #   ifdef __GNUC__
   #    define YYSTACK_ALLOC __builtin_alloca
  +#   elif defined __BUILTIN_VA_ARG_INCR
  +#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
  +#   elif defined _AIX
  +#    define YYSTACK_ALLOC __alloca
  +#   elif defined _MSC_VER
  +#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
  +#    define alloca _alloca
   #   else
   #    define YYSTACK_ALLOC alloca
  -#    if defined (__STDC__) || defined (__cplusplus)
  +#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || 
defined __C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
   #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
  -#     define YYINCLUDED_STDLIB_H
  +#     ifndef _STDLIB_H
  +#      define _STDLIB_H 1
  +#     endif
   #    endif
   #   endif
   #  endif
   # endif
   
   # ifdef YYSTACK_ALLOC
  -   /* Pacify GCC's `empty if-body' warning. */
  -#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
  +   /* Pacify GCC's `empty if-body' warning.  */
  +#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
   #  ifndef YYSTACK_ALLOC_MAXIMUM
       /* The OS might guarantee only one guard page at the bottom of the stack,
          and a page size can be as small as 4096 bytes.  So we cannot safely
          invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
          to allow for a few compiler-allocated temporary stack slots.  */
  -#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
  +#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
   #  endif
   # else
   #  define YYSTACK_ALLOC YYMALLOC
   #  define YYSTACK_FREE YYFREE
   #  ifndef YYSTACK_ALLOC_MAXIMUM
  -#   define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
  +#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
   #  endif
  -#  ifdef __cplusplus
  -extern "C" {
  +#  if (defined __cplusplus && ! defined _STDLIB_H \
  +       && ! ((defined YYMALLOC || defined malloc) \
  +          && (defined YYFREE || defined free)))
  +#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
  +#   ifndef _STDLIB_H
  +#    define _STDLIB_H 1
  +#   endif
   #  endif
   #  ifndef YYMALLOC
   #   define YYMALLOC malloc
  -#   if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
  -     && (defined (__STDC__) || defined (__cplusplus)))
  +#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || 
defined __C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
   void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
   #   endif
   #  endif
   #  ifndef YYFREE
   #   define YYFREE free
  -#   if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
  -     && (defined (__STDC__) || defined (__cplusplus)))
  +#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined 
__C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
   void free (void *); /* INFRINGES ON USER NAME SPACE */
   #   endif
   #  endif
  -#  ifdef __cplusplus
  -}
  -#  endif
   # endif
  -#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
  +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
   
   
  -#if (! defined (yyoverflow) \
  -     && (! defined (__cplusplus) \
  -      || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
  +#if (! defined yyoverflow \
  +     && (! defined __cplusplus \
  +      || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
   
   /* A type that is properly aligned for any stack member.  */
   union yyalloc
   {
  -  short int yyss;
  +  yytype_int16 yyss;
     YYSTYPE yyvs;
     };
   
  @@ -442,13 +524,13 @@
   /* The size of an array large to enough to hold all stacks, each with
      N elements.  */
   # define YYSTACK_BYTES(N) \
  -     ((N) * (sizeof (short int) + sizeof (YYSTYPE))                  \
  +     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
         + YYSTACK_GAP_MAXIMUM)
   
   /* Copy COUNT objects from FROM to TO.  The source and destination do
      not overlap.  */
   # ifndef YYCOPY
  -#  if defined (__GNUC__) && 1 < __GNUC__
  +#  if defined __GNUC__ && 1 < __GNUC__
   #   define YYCOPY(To, From, Count) \
         __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
   #  else
  @@ -459,7 +541,7 @@
          for (yyi = 0; yyi < (Count); yyi++)   \
            (To)[yyi] = (From)[yyi];            \
        }                                       \
  -      while (0)
  +      while (YYID (0))
   #  endif
   # endif
   
  @@ -477,28 +559,22 @@
        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
        yyptr += yynewbytes / sizeof (*yyptr);                          \
         }                                                                      
\
  -    while (0)
  +    while (YYID (0))
   
   #endif
   
  -#if defined (__STDC__) || defined (__cplusplus)
  -   typedef signed char yysigned_char;
  -#else
  -   typedef short int yysigned_char;
  -#endif
  -
  -/* YYFINAL -- State number of the termination state. */
  +/* YYFINAL -- State number of the termination state.  */
   #define YYFINAL  2
   /* YYLAST -- Last index in YYTABLE.  */
   #define YYLAST   43
   
  -/* YYNTOKENS -- Number of terminals. */
  +/* YYNTOKENS -- Number of terminals.  */
   #define YYNTOKENS  19
  -/* YYNNTS -- Number of nonterminals. */
  +/* YYNNTS -- Number of nonterminals.  */
   #define YYNNTS  11
  -/* YYNRULES -- Number of rules. */
  +/* YYNRULES -- Number of rules.  */
   #define YYNRULES  42
  -/* YYNRULES -- Number of states. */
  +/* YYNRULES -- Number of states.  */
   #define YYNSTATES  52
   
   /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
  @@ -509,7 +585,7 @@
     ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
   
   /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
  -static const unsigned char yytranslate[] =
  +static const yytype_uint8 yytranslate[] =
   {
          0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
          2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
  @@ -544,7 +620,7 @@
   #if YYDEBUG
   /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
      YYRHS.  */
  -static const unsigned char yyprhs[] =
  +static const yytype_uint8 yyprhs[] =
   {
          0,     0,     3,     4,     7,     9,    11,    13,    15,    17,
         19,    22,    27,    32,    39,    46,    48,    50,    53,    55,
  @@ -553,8 +629,8 @@
        123,   125,   126
   };
   
  -/* YYRHS -- A `-1'-separated list of the rules' RHS. */
  -static const yysigned_char yyrhs[] =
  +/* YYRHS -- A `-1'-separated list of the rules' RHS.  */
  +static const yytype_int8 yyrhs[] =
   {
         20,     0,    -1,    -1,    20,    21,    -1,    22,    -1,    23,
         -1,    25,    -1,    24,    -1,    26,    -1,    28,    -1,    13,
  @@ -572,19 +648,19 @@
   };
   
   /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
  -static const unsigned short int yyrline[] =
  +static const yytype_uint16 yyrline[] =
   {
  -       0,   224,   224,   225,   228,   231,   234,   237,   240,   243,
  -     246,   252,   258,   265,   271,   281,   285,   290,   296,   300,
  -     304,   310,   314,   325,   331,   337,   341,   346,   350,   357,
  -     361,   364,   367,   370,   373,   376,   379,   382,   385,   388,
  -     393,   420,   423
  +       0,   220,   220,   221,   224,   227,   230,   233,   236,   239,
  +     242,   248,   254,   261,   267,   277,   281,   286,   292,   296,
  +     300,   306,   310,   321,   327,   333,   337,   342,   346,   353,
  +     357,   360,   363,   366,   369,   372,   375,   378,   381,   384,
  +     389,   416,   419
   };
   #endif
   
   #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
   /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
  -   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
  +   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
   static const char *const yytname[] =
   {
     "$end", "error", "$undefined", "tAGO", "tDAY", "tDAYZONE", "tID",
  @@ -598,7 +674,7 @@
   # ifdef YYPRINT
   /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
      token YYLEX-NUM.  */
  -static const unsigned short int yytoknum[] =
  +static const yytype_uint16 yytoknum[] =
   {
          0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
        265,   266,   267,   268,   269,   270,    58,    44,    47
  @@ -606,7 +682,7 @@
   # endif
   
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
  -static const unsigned char yyr1[] =
  +static const yytype_uint8 yyr1[] =
   {
          0,    19,    20,    20,    21,    21,    21,    21,    21,    21,
         22,    22,    22,    22,    22,    23,    23,    23,    24,    24,
  @@ -616,7 +692,7 @@
   };
   
   /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
  -static const unsigned char yyr2[] =
  +static const yytype_uint8 yyr2[] =
   {
          0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
          2,     4,     4,     6,     6,     1,     1,     2,     1,     2,
  @@ -628,7 +704,7 @@
   /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
      STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
      means the default is an error.  */
  -static const unsigned char yydefact[] =
  +static const yytype_uint8 yydefact[] =
   {
          2,     0,     1,    18,    16,    33,     0,    39,    36,     0,
         40,    15,     3,     4,     5,     7,     6,     8,    30,     9,
  @@ -638,8 +714,8 @@
         14,    13
   };
   
  -/* YYDEFGOTO[NTERM-NUM]. */
  -static const yysigned_char yydefgoto[] =
  +/* YYDEFGOTO[NTERM-NUM].  */
  +static const yytype_int8 yydefgoto[] =
   {
         -1,     1,    12,    13,    14,    15,    16,    17,    18,    19,
         46
  @@ -648,7 +724,7 @@
   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
      STATE-NUM.  */
   #define YYPACT_NINF -11
  -static const yysigned_char yypact[] =
  +static const yytype_int8 yypact[] =
   {
        -11,     0,   -11,    -1,   -11,   -11,     4,   -11,   -11,    25,
         11,    -8,   -11,   -11,   -11,   -11,   -11,   -11,    21,   -11,
  @@ -659,7 +735,7 @@
   };
   
   /* YYPGOTO[NTERM-NUM].  */
  -static const yysigned_char yypgoto[] =
  +static const yytype_int8 yypgoto[] =
   {
        -11,   -11,   -11,   -11,   -11,   -11,   -11,   -11,   -11,   -11,
         -5
  @@ -670,7 +746,7 @@
      number is the opposite.  If zero, do what YYDEFACT says.
      If YYTABLE_NINF, syntax error.  */
   #define YYTABLE_NINF -1
  -static const unsigned char yytable[] =
  +static const yytype_uint8 yytable[] =
   {
          2,    43,    37,    38,     3,     4,    50,    34,     5,     6,
          7,     8,     9,    10,    11,    25,    20,    21,    26,    27,
  @@ -679,7 +755,7 @@
         48,    49,     0,    51
   };
   
  -static const yysigned_char yycheck[] =
  +static const yytype_int8 yycheck[] =
   {
          0,     7,    12,    13,     4,     5,    12,    15,     8,     9,
         10,    11,    12,    13,    14,     4,    17,    13,     7,     8,
  @@ -690,7 +766,7 @@
   
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
      symbol of state STATE-NUM.  */
  -static const unsigned char yystos[] =
  +static const yytype_uint8 yystos[] =
   {
          0,    20,     0,     4,     5,     8,     9,    10,    11,    12,
         13,    14,    21,    22,    23,    24,    25,    26,    27,    28,
  @@ -725,7 +801,7 @@
         yychar = (Token);                                              \
         yylval = (Value);                                              \
         yytoken = YYTRANSLATE (yychar);                                \
  -      YYPOPSTACK;                                            \
  +      YYPOPSTACK (1);                                                \
         goto yybackup;                                         \
       }                                                                \
     else                                                               \
  @@ -733,7 +809,7 @@
         yyerror (YY_("syntax error: cannot back up")); \
         YYERROR;                                                       \
       }                                                                \
  -while (0)
  +while (YYID (0))
   
   
   #define YYTERROR     1
  @@ -748,7 +824,7 @@
   #ifndef YYLLOC_DEFAULT
   # define YYLLOC_DEFAULT(Current, Rhs, N)                             \
       do                                                                       
\
  -      if (N)                                                         \
  +      if (YYID (N))                                                    \
        {                                                               \
          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
  @@ -762,7 +838,7 @@
          (Current).first_column = (Current).last_column =              \
            YYRHSLOC (Rhs, 0).last_column;                              \
        }                                                               \
  -    while (0)
  +    while (YYID (0))
   #endif
   
   
  @@ -774,8 +850,8 @@
   # if YYLTYPE_IS_TRIVIAL
   #  define YY_LOCATION_PRINT(File, Loc)                       \
        fprintf (File, "%d.%d-%d.%d",                   \
  -              (Loc).first_line, (Loc).first_column,  \
  -              (Loc).last_line,  (Loc).last_column)
  +           (Loc).first_line, (Loc).first_column,     \
  +           (Loc).last_line,  (Loc).last_column)
   # else
   #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
   # endif
  @@ -802,36 +878,96 @@
   do {                                         \
     if (yydebug)                                       \
       YYFPRINTF Args;                          \
  -} while (0)
  +} while (YYID (0))
   
  -# define YY_SYMBOL_PRINT(Title, Type, Value, Location)               \
  -do {                                                         \
  -  if (yydebug)                                                       \
  -    {                                                                \
  -      YYFPRINTF (stderr, "%s ", Title);                              \
  -      yysymprint (stderr,                                    \
  -                  Type, Value);      \
  -      YYFPRINTF (stderr, "\n");                                      \
  -    }                                                                \
  -} while (0)
  +# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                       
  \
  +do {                                                                   \
  +  if (yydebug)                                                               
  \
  +    {                                                                        
  \
  +      YYFPRINTF (stderr, "%s ", Title);                                      
  \
  +      yy_symbol_print (stderr,                                               
  \
  +               Type, Value); \
  +      YYFPRINTF (stderr, "\n");                                              
  \
  +    }                                                                        
  \
  +} while (YYID (0))
  +
  +
  +/*--------------------------------.
  +| Print this symbol on YYOUTPUT.  |
  +`--------------------------------*/
  +
  +/*ARGSUSED*/
  +#if (defined __STDC__ || defined __C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
  +static void
  +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const 
yyvaluep)
  +#else
  +static void
  +yy_symbol_value_print (yyoutput, yytype, yyvaluep)
  +    FILE *yyoutput;
  +    int yytype;
  +    YYSTYPE const * const yyvaluep;
  +#endif
  +{
  +  if (!yyvaluep)
  +    return;
  +# ifdef YYPRINT
  +  if (yytype < YYNTOKENS)
  +    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
  +# else
  +  YYUSE (yyoutput);
  +# endif
  +  switch (yytype)
  +    {
  +      default:
  +     break;
  +    }
  +}
  +
  +
  +/*--------------------------------.
  +| Print this symbol on YYOUTPUT.  |
  +`--------------------------------*/
  +
  +#if (defined __STDC__ || defined __C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
  +static void
  +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
  +#else
  +static void
  +yy_symbol_print (yyoutput, yytype, yyvaluep)
  +    FILE *yyoutput;
  +    int yytype;
  +    YYSTYPE const * const yyvaluep;
  +#endif
  +{
  +  if (yytype < YYNTOKENS)
  +    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
  +  else
  +    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
  +
  +  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
  +  YYFPRINTF (yyoutput, ")");
  +}
   
   /*------------------------------------------------------------------.
   | yy_stack_print -- Print the state stack from its BOTTOM up to its |
   | TOP (included).                                                   |
   `------------------------------------------------------------------*/
   
  -#if defined (__STDC__) || defined (__cplusplus)
  +#if (defined __STDC__ || defined __C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
   static void
  -yy_stack_print (short int *bottom, short int *top)
  +yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
   #else
   static void
   yy_stack_print (bottom, top)
  -    short int *bottom;
  -    short int *top;
  +    yytype_int16 *bottom;
  +    yytype_int16 *top;
   #endif
   {
     YYFPRINTF (stderr, "Stack now");
  -  for (/* Nothing. */; bottom <= top; ++bottom)
  +  for (; bottom <= top; ++bottom)
       YYFPRINTF (stderr, " %d", *bottom);
     YYFPRINTF (stderr, "\n");
   }
  @@ -840,37 +976,45 @@
   do {                                                         \
     if (yydebug)                                                       \
       yy_stack_print ((Bottom), (Top));                                \
  -} while (0)
  +} while (YYID (0))
   
   
   /*------------------------------------------------.
   | Report that the YYRULE is going to be reduced.  |
   `------------------------------------------------*/
   
  -#if defined (__STDC__) || defined (__cplusplus)
  +#if (defined __STDC__ || defined __C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
   static void
  -yy_reduce_print (int yyrule)
  +yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
   #else
   static void
  -yy_reduce_print (yyrule)
  +yy_reduce_print (yyvsp, yyrule)
  +    YYSTYPE *yyvsp;
       int yyrule;
   #endif
   {
  +  int yynrhs = yyr2[yyrule];
     int yyi;
     unsigned long int yylno = yyrline[yyrule];
  -  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
  -             yyrule - 1, yylno);
  -  /* Print the symbols being reduced, and their result.  */
  -  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
  -    YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
  -  YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
  +  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
  +          yyrule - 1, yylno);
  +  /* The symbols being reduced.  */
  +  for (yyi = 0; yyi < yynrhs; yyi++)
  +    {
  +      fprintf (stderr, "   $%d = ", yyi + 1);
  +      yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
  +                    &(yyvsp[(yyi + 1) - (yynrhs)])
  +                                    );
  +      fprintf (stderr, "\n");
  +    }
   }
   
   # define YY_REDUCE_PRINT(Rule)               \
   do {                                 \
     if (yydebug)                               \
  -    yy_reduce_print (Rule);          \
  -} while (0)
  +    yy_reduce_print (yyvsp, Rule); \
  +} while (YYID (0))
   
   /* Nonzero means print parse trace.  It is left uninitialized so that
      multiple parsers can coexist.  */
  @@ -904,42 +1048,44 @@
   #if YYERROR_VERBOSE
   
   # ifndef yystrlen
  -#  if defined (__GLIBC__) && defined (_STRING_H)
  +#  if defined __GLIBC__ && defined _STRING_H
   #   define yystrlen strlen
   #  else
   /* Return the length of YYSTR.  */
  +#if (defined __STDC__ || defined __C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
   static YYSIZE_T
  -#   if defined (__STDC__) || defined (__cplusplus)
   yystrlen (const char *yystr)
  -#   else
  +#else
  +static YYSIZE_T
   yystrlen (yystr)
  -     const char *yystr;
  -#   endif
  +    const char *yystr;
  +#endif
   {
  -  const char *yys = yystr;
  -
  -  while (*yys++ != '\0')
  +  YYSIZE_T yylen;
  +  for (yylen = 0; yystr[yylen]; yylen++)
       continue;
  -
  -  return yys - yystr - 1;
  +  return yylen;
   }
   #  endif
   # endif
   
   # ifndef yystpcpy
  -#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
  +#  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
   #   define yystpcpy stpcpy
   #  else
   /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
      YYDEST.  */
  +#if (defined __STDC__ || defined __C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
   static char *
  -#   if defined (__STDC__) || defined (__cplusplus)
   yystpcpy (char *yydest, const char *yysrc)
  -#   else
  +#else
  +static char *
   yystpcpy (yydest, yysrc)
  -     char *yydest;
  -     const char *yysrc;
  -#   endif
  +    char *yydest;
  +    const char *yysrc;
  +#endif
   {
     char *yyd = yydest;
     const char *yys = yysrc;
  @@ -965,7 +1111,7 @@
   {
     if (*yystr == '"')
       {
  -      size_t yyn = 0;
  +      YYSIZE_T yyn = 0;
         char const *yyp = yystr;
   
         for (;;)
  @@ -1000,53 +1146,123 @@
   }
   # endif
   
  -#endif /* YYERROR_VERBOSE */
  +/* Copy into YYRESULT an error message about the unexpected token
  +   YYCHAR while in state YYSTATE.  Return the number of bytes copied,
  +   including the terminating null byte.  If YYRESULT is null, do not
  +   copy anything; just return the number of bytes that would be
  +   copied.  As a special case, return 0 if an ordinary "syntax error"
  +   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
  +   size calculation.  */
  +static YYSIZE_T
  +yysyntax_error (char *yyresult, int yystate, int yychar)
  +{
  +  int yyn = yypact[yystate];
   
  -
  +  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
  +    return 0;
  +  else
  +    {
  +      int yytype = YYTRANSLATE (yychar);
  +      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
  +      YYSIZE_T yysize = yysize0;
  +      YYSIZE_T yysize1;
  +      int yysize_overflow = 0;
  +      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
  +      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
  +      int yyx;
  +
  +# if 0
  +      /* This is so xgettext sees the translatable formats that are
  +      constructed on the fly.  */
  +      YY_("syntax error, unexpected %s");
  +      YY_("syntax error, unexpected %s, expecting %s");
  +      YY_("syntax error, unexpected %s, expecting %s or %s");
  +      YY_("syntax error, unexpected %s, expecting %s or %s or %s");
  +      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
  +# endif
  +      char *yyfmt;
  +      char const *yyf;
  +      static char const yyunexpected[] = "syntax error, unexpected %s";
  +      static char const yyexpecting[] = ", expecting %s";
  +      static char const yyor[] = " or %s";
  +      char yyformat[sizeof yyunexpected
  +                 + sizeof yyexpecting - 1
  +                 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
  +                    * (sizeof yyor - 1))];
  +      char const *yyprefix = yyexpecting;
  +
  +      /* Start YYX at -YYN if negative to avoid negative indexes in
  +      YYCHECK.  */
  +      int yyxbegin = yyn < 0 ? -yyn : 0;
  +
  +      /* Stay within bounds of both yycheck and yytname.  */
  +      int yychecklim = YYLAST - yyn + 1;
  +      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
  +      int yycount = 1;
   
  -#if YYDEBUG
  -/*--------------------------------.
  -| Print this symbol on YYOUTPUT.  |
  -`--------------------------------*/
  +      yyarg[0] = yytname[yytype];
  +      yyfmt = yystpcpy (yyformat, yyunexpected);
   
  -#if defined (__STDC__) || defined (__cplusplus)
  -static void
  -yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
  -#else
  -static void
  -yysymprint (yyoutput, yytype, yyvaluep)
  -    FILE *yyoutput;
  -    int yytype;
  -    YYSTYPE *yyvaluep;
  -#endif
  -{
  -  /* Pacify ``unused variable'' warnings.  */
  -  (void) yyvaluep;
  +      for (yyx = yyxbegin; yyx < yyxend; ++yyx)
  +     if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
  +       {
  +         if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
  +           {
  +             yycount = 1;
  +             yysize = yysize0;
  +             yyformat[sizeof yyunexpected - 1] = '\0';
  +             break;
  +           }
  +         yyarg[yycount++] = yytname[yyx];
  +         yysize1 = yysize + yytnamerr (0, yytname[yyx]);
  +         yysize_overflow |= (yysize1 < yysize);
  +         yysize = yysize1;
  +         yyfmt = yystpcpy (yyfmt, yyprefix);
  +         yyprefix = yyor;
  +       }
   
  -  if (yytype < YYNTOKENS)
  -    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
  -  else
  -    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
  +      yyf = YY_(yyformat);
  +      yysize1 = yysize + yystrlen (yyf);
  +      yysize_overflow |= (yysize1 < yysize);
  +      yysize = yysize1;
   
  +      if (yysize_overflow)
  +     return YYSIZE_MAXIMUM;
   
  -# ifdef YYPRINT
  -  if (yytype < YYNTOKENS)
  -    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
  -# endif
  -  switch (yytype)
  -    {
  -      default:
  -        break;
  +      if (yyresult)
  +     {
  +       /* Avoid sprintf, as that infringes on the user's name space.
  +          Don't have undefined behavior even if the translation
  +          produced a string with the wrong number of "%s"s.  */
  +       char *yyp = yyresult;
  +       int yyi = 0;
  +       while ((*yyp = *yyf) != '\0')
  +         {
  +           if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
  +             {
  +               yyp += yytnamerr (yyp, yyarg[yyi++]);
  +               yyf += 2;
  +             }
  +           else
  +             {
  +               yyp++;
  +               yyf++;
  +             }
  +         }
  +     }
  +      return yysize;
       }
  -  YYFPRINTF (yyoutput, ")");
   }
  +#endif /* YYERROR_VERBOSE */
  +
   
  -#endif /* ! YYDEBUG */
   /*-----------------------------------------------.
   | Release the memory associated to this symbol.  |
   `-----------------------------------------------*/
   
  -#if defined (__STDC__) || defined (__cplusplus)
  +/*ARGSUSED*/
  +#if (defined __STDC__ || defined __C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
   static void
   yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
   #else
  @@ -1057,8 +1273,7 @@
       YYSTYPE *yyvaluep;
   #endif
   {
  -  /* Pacify ``unused variable'' warnings.  */
  -  (void) yyvaluep;
  +  YYUSE (yyvaluep);
   
     if (!yymsg)
       yymsg = "Deleting";
  @@ -1068,7 +1283,7 @@
       {
   
         default:
  -        break;
  +     break;
       }
   }
   
  @@ -1076,13 +1291,13 @@
   /* Prevent warnings from -Wmissing-prototypes.  */
   
   #ifdef YYPARSE_PARAM
  -# if defined (__STDC__) || defined (__cplusplus)
  +#if defined __STDC__ || defined __cplusplus
   static int yyparse (void *YYPARSE_PARAM);
  -# else
  +#else
   static int yyparse ();
  -# endif
  +#endif
   #else /* ! YYPARSE_PARAM */
  -#if defined (__STDC__) || defined (__cplusplus)
  +#if defined __STDC__ || defined __cplusplus
   static int yyparse (void);
   #else
   static int yyparse ();
  @@ -1107,20 +1322,24 @@
   `----------*/
   
   #ifdef YYPARSE_PARAM
  -# if defined (__STDC__) || defined (__cplusplus)
  -static int yyparse (void *YYPARSE_PARAM)
  -# else
  -static int yyparse (YYPARSE_PARAM)
  -  void *YYPARSE_PARAM;
  -# endif
  +#if (defined __STDC__ || defined __C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
  +int
  +yyparse (void *YYPARSE_PARAM)
  +#else
  +int
  +yyparse (YYPARSE_PARAM)
  +    void *YYPARSE_PARAM;
  +#endif
   #else /* ! YYPARSE_PARAM */
  -#if defined (__STDC__) || defined (__cplusplus)
  +#if (defined __STDC__ || defined __C99__FUNC__ \
  +     || defined __cplusplus || defined _MSC_VER)
   int
   yyparse (void)
   #else
   int
   yyparse ()
  -    ;
  +
   #endif
   #endif
   {
  @@ -1132,6 +1351,12 @@
     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,
  @@ -1142,9 +1367,9 @@
        to reallocate them elsewhere.  */
   
     /* The state stack.  */
  -  short int yyssa[YYINITDEPTH];
  -  short int *yyss = yyssa;
  -  short int *yyssp;
  +  yytype_int16 yyssa[YYINITDEPTH];
  +  yytype_int16 *yyss = yyssa;
  +  yytype_int16 *yyssp;
   
     /* The semantic value stack.  */
     YYSTYPE yyvsa[YYINITDEPTH];
  @@ -1153,7 +1378,7 @@
   
   
   
  -#define YYPOPSTACK   (yyvsp--, yyssp--)
  +#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
   
     YYSIZE_T yystacksize = YYINITDEPTH;
   
  @@ -1162,9 +1387,9 @@
     YYSTYPE yyval;
   
   
  -  /* When reducing, the number of symbols on the RHS of the reduced
  -     rule.  */
  -  int yylen;
  +  /* The number of symbols on the RHS of the reduced rule.
  +     Keep to zero when no symbol should be popped.  */
  +  int yylen = 0;
   
     YYDPRINTF ((stderr, "Starting parse\n"));
   
  @@ -1188,8 +1413,7 @@
   `------------------------------------------------------------*/
    yynewstate:
     /* In all cases, when you get here, the value and location stacks
  -     have just been pushed. so pushing a state here evens the stacks.
  -     */
  +     have just been pushed.  So pushing a state here evens the stacks.  */
     yyssp++;
   
    yysetstate:
  @@ -1202,11 +1426,11 @@
   
   #ifdef yyoverflow
         {
  -     /* Give user a chance to reallocate the stack. Use copies of
  +     /* Give user a chance to reallocate the stack.  Use copies of
           these so that the &'s don't force the real ones into
           memory.  */
        YYSTYPE *yyvs1 = yyvs;
  -     short int *yyss1 = yyss;
  +     yytype_int16 *yyss1 = yyss;
   
   
        /* Each stack pointer address is followed by the size of the
  @@ -1234,7 +1458,7 @@
        yystacksize = YYMAXDEPTH;
   
         {
  -     short int *yyss1 = yyss;
  +     yytype_int16 *yyss1 = yyss;
        union yyalloc *yyptr =
          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
        if (! yyptr)
  @@ -1269,12 +1493,10 @@
   `-----------*/
   yybackup:
   
  -/* Do appropriate processing given the current state.  */
  -/* Read a look-ahead token if we need one and don't already have one.  */
  -/* yyresume: */
  +  /* Do appropriate processing given the current state.  Read a
  +     look-ahead token if we need one and don't already have one.  */
   
     /* First try to decide what to do without reference to look-ahead token.  
*/
  -
     yyn = yypact[yystate];
     if (yyn == YYPACT_NINF)
       goto yydefault;
  @@ -1316,22 +1538,21 @@
     if (yyn == YYFINAL)
       YYACCEPT;
   
  +  /* Count tokens shifted since error; after three, turn off error
  +     status.  */
  +  if (yyerrstatus)
  +    yyerrstatus--;
  +
     /* Shift the look-ahead token.  */
     YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
   
  -  /* Discard the token being shifted unless it is eof.  */
  +  /* Discard the shifted token unless it is eof.  */
     if (yychar != YYEOF)
       yychar = YYEMPTY;
   
  +  yystate = yyn;
     *++yyvsp = yylval;
   
  -
  -  /* Count tokens shifted since error; after three, turn off error
  -     status.  */
  -  if (yyerrstatus)
  -    yyerrstatus--;
  -
  -  yystate = yyn;
     goto yynewstate;
   
   
  @@ -1367,220 +1588,220 @@
     switch (yyn)
       {
           case 4:
  -#line 228 "./getdate.y"
  +#line 224 "./getdate.y"
       {
            yyHaveTime++;
        }
       break;
   
     case 5:
  -#line 231 "./getdate.y"
  +#line 227 "./getdate.y"
       {
            yyHaveZone++;
        }
       break;
   
     case 6:
  -#line 234 "./getdate.y"
  +#line 230 "./getdate.y"
       {
            yyHaveDate++;
        }
       break;
   
     case 7:
  -#line 237 "./getdate.y"
  +#line 233 "./getdate.y"
       {
            yyHaveDay++;
        }
       break;
   
     case 8:
  -#line 240 "./getdate.y"
  +#line 236 "./getdate.y"
       {
            yyHaveRel++;
        }
       break;
   
     case 10:
  -#line 246 "./getdate.y"
  +#line 242 "./getdate.y"
       {
  -         yyHour = (yyvsp[-1].Number);
  +         yyHour = (yyvsp[(1) - (2)].Number);
            yyMinutes = 0;
            yySeconds = 0;
  -         yyMeridian = (yyvsp[0].Meridian);
  +         yyMeridian = (yyvsp[(2) - (2)].Meridian);
        }
       break;
   
     case 11:
  -#line 252 "./getdate.y"
  +#line 248 "./getdate.y"
       {
  -         yyHour = (yyvsp[-3].Number);
  -         yyMinutes = (yyvsp[-1].Number);
  +         yyHour = (yyvsp[(1) - (4)].Number);
  +         yyMinutes = (yyvsp[(3) - (4)].Number);
            yySeconds = 0;
  -         yyMeridian = (yyvsp[0].Meridian);
  +         yyMeridian = (yyvsp[(4) - (4)].Meridian);
        }
       break;
   
     case 12:
  -#line 258 "./getdate.y"
  +#line 254 "./getdate.y"
       {
  -         yyHour = (yyvsp[-3].Number);
  -         yyMinutes = (yyvsp[-1].Number);
  +         yyHour = (yyvsp[(1) - (4)].Number);
  +         yyMinutes = (yyvsp[(3) - (4)].Number);
            yyMeridian = MER24;
            yyDSTmode = DSToff;
  -         yyTimezone = - ((yyvsp[0].Number) % 100 + ((yyvsp[0].Number) / 100) 
* 60);
  +         yyTimezone = - ((yyvsp[(4) - (4)].Number) % 100 + ((yyvsp[(4) - 
(4)].Number) / 100) * 60);
        }
       break;
   
     case 13:
  -#line 265 "./getdate.y"
  +#line 261 "./getdate.y"
       {
  -         yyHour = (yyvsp[-5].Number);
  -         yyMinutes = (yyvsp[-3].Number);
  -         yySeconds = (yyvsp[-1].Number);
  -         yyMeridian = (yyvsp[0].Meridian);
  +         yyHour = (yyvsp[(1) - (6)].Number);
  +         yyMinutes = (yyvsp[(3) - (6)].Number);
  +         yySeconds = (yyvsp[(5) - (6)].Number);
  +         yyMeridian = (yyvsp[(6) - (6)].Meridian);
        }
       break;
   
     case 14:
  -#line 271 "./getdate.y"
  +#line 267 "./getdate.y"
       {
  -         yyHour = (yyvsp[-5].Number);
  -         yyMinutes = (yyvsp[-3].Number);
  -         yySeconds = (yyvsp[-1].Number);
  +         yyHour = (yyvsp[(1) - (6)].Number);
  +         yyMinutes = (yyvsp[(3) - (6)].Number);
  +         yySeconds = (yyvsp[(5) - (6)].Number);
            yyMeridian = MER24;
            yyDSTmode = DSToff;
  -         yyTimezone = - ((yyvsp[0].Number) % 100 + ((yyvsp[0].Number) / 100) 
* 60);
  +         yyTimezone = - ((yyvsp[(6) - (6)].Number) % 100 + ((yyvsp[(6) - 
(6)].Number) / 100) * 60);
        }
       break;
   
     case 15:
  -#line 281 "./getdate.y"
  +#line 277 "./getdate.y"
       {
  -         yyTimezone = (yyvsp[0].Number);
  +         yyTimezone = (yyvsp[(1) - (1)].Number);
            yyDSTmode = DSToff;
        }
       break;
   
     case 16:
  -#line 285 "./getdate.y"
  +#line 281 "./getdate.y"
       {
  -         yyTimezone = (yyvsp[0].Number);
  +         yyTimezone = (yyvsp[(1) - (1)].Number);
            yyDSTmode = DSTon;
        }
       break;
   
     case 17:
  -#line 290 "./getdate.y"
  +#line 286 "./getdate.y"
       {
  -         yyTimezone = (yyvsp[-1].Number);
  +         yyTimezone = (yyvsp[(1) - (2)].Number);
            yyDSTmode = DSTon;
        }
       break;
   
     case 18:
  -#line 296 "./getdate.y"
  +#line 292 "./getdate.y"
       {
            yyDayOrdinal = 1;
  -         yyDayNumber = (yyvsp[0].Number);
  +         yyDayNumber = (yyvsp[(1) - (1)].Number);
        }
       break;
   
     case 19:
  -#line 300 "./getdate.y"
  +#line 296 "./getdate.y"
       {
            yyDayOrdinal = 1;
  -         yyDayNumber = (yyvsp[-1].Number);
  +         yyDayNumber = (yyvsp[(1) - (2)].Number);
        }
       break;
   
     case 20:
  -#line 304 "./getdate.y"
  +#line 300 "./getdate.y"
       {
  -         yyDayOrdinal = (yyvsp[-1].Number);
  -         yyDayNumber = (yyvsp[0].Number);
  +         yyDayOrdinal = (yyvsp[(1) - (2)].Number);
  +         yyDayNumber = (yyvsp[(2) - (2)].Number);
        }
       break;
   
     case 21:
  -#line 310 "./getdate.y"
  +#line 306 "./getdate.y"
       {
  -         yyMonth = (yyvsp[-2].Number);
  -         yyDay = (yyvsp[0].Number);
  +         yyMonth = (yyvsp[(1) - (3)].Number);
  +         yyDay = (yyvsp[(3) - (3)].Number);
        }
       break;
   
     case 22:
  -#line 314 "./getdate.y"
  +#line 310 "./getdate.y"
       {
  -         if ((yyvsp[-4].Number) >= 100) {
  -             yyYear = (yyvsp[-4].Number);
  -             yyMonth = (yyvsp[-2].Number);
  -             yyDay = (yyvsp[0].Number);
  +         if ((yyvsp[(1) - (5)].Number) >= 100) {
  +             yyYear = (yyvsp[(1) - (5)].Number);
  +             yyMonth = (yyvsp[(3) - (5)].Number);
  +             yyDay = (yyvsp[(5) - (5)].Number);
            } else {
  -             yyMonth = (yyvsp[-4].Number);
  -             yyDay = (yyvsp[-2].Number);
  -             yyYear = (yyvsp[0].Number);
  +             yyMonth = (yyvsp[(1) - (5)].Number);
  +             yyDay = (yyvsp[(3) - (5)].Number);
  +             yyYear = (yyvsp[(5) - (5)].Number);
            }
        }
       break;
   
     case 23:
  -#line 325 "./getdate.y"
  +#line 321 "./getdate.y"
       {
            /* ISO 8601 format.  yyyy-mm-dd.  */
  -         yyYear = (yyvsp[-2].Number);
  -         yyMonth = -(yyvsp[-1].Number);
  -         yyDay = -(yyvsp[0].Number);
  +         yyYear = (yyvsp[(1) - (3)].Number);
  +         yyMonth = -(yyvsp[(2) - (3)].Number);
  +         yyDay = -(yyvsp[(3) - (3)].Number);
        }
       break;
   
     case 24:
  -#line 331 "./getdate.y"
  +#line 327 "./getdate.y"
       {
            /* e.g. 17-JUN-1992.  */
  -         yyDay = (yyvsp[-2].Number);
  -         yyMonth = (yyvsp[-1].Number);
  -         yyYear = -(yyvsp[0].Number);
  +         yyDay = (yyvsp[(1) - (3)].Number);
  +         yyMonth = (yyvsp[(2) - (3)].Number);
  +         yyYear = -(yyvsp[(3) - (3)].Number);
        }
       break;
   
     case 25:
  -#line 337 "./getdate.y"
  +#line 333 "./getdate.y"
       {
  -         yyMonth = (yyvsp[-1].Number);
  -         yyDay = (yyvsp[0].Number);
  +         yyMonth = (yyvsp[(1) - (2)].Number);
  +         yyDay = (yyvsp[(2) - (2)].Number);
        }
       break;
   
     case 26:
  -#line 341 "./getdate.y"
  +#line 337 "./getdate.y"
       {
  -         yyMonth = (yyvsp[-3].Number);
  -         yyDay = (yyvsp[-2].Number);
  -         yyYear = (yyvsp[0].Number);
  +         yyMonth = (yyvsp[(1) - (4)].Number);
  +         yyDay = (yyvsp[(2) - (4)].Number);
  +         yyYear = (yyvsp[(4) - (4)].Number);
        }
       break;
   
     case 27:
  -#line 346 "./getdate.y"
  +#line 342 "./getdate.y"
       {
  -         yyMonth = (yyvsp[0].Number);
  -         yyDay = (yyvsp[-1].Number);
  +         yyMonth = (yyvsp[(2) - (2)].Number);
  +         yyDay = (yyvsp[(1) - (2)].Number);
        }
       break;
   
     case 28:
  -#line 350 "./getdate.y"
  +#line 346 "./getdate.y"
       {
  -         yyMonth = (yyvsp[-1].Number);
  -         yyDay = (yyvsp[-2].Number);
  -         yyYear = (yyvsp[0].Number);
  +         yyMonth = (yyvsp[(2) - (3)].Number);
  +         yyDay = (yyvsp[(1) - (3)].Number);
  +         yyYear = (yyvsp[(3) - (3)].Number);
        }
       break;
   
     case 29:
  -#line 357 "./getdate.y"
  +#line 353 "./getdate.y"
       {
            yyRelSeconds = -yyRelSeconds;
            yyRelMonth = -yyRelMonth;
  @@ -1588,89 +1809,89 @@
       break;
   
     case 31:
  -#line 364 "./getdate.y"
  +#line 360 "./getdate.y"
       {
  -         yyRelSeconds += (yyvsp[-1].Number) * (yyvsp[0].Number) * 60L;
  +         yyRelSeconds += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - 
(2)].Number) * 60L;
        }
       break;
   
     case 32:
  -#line 367 "./getdate.y"
  +#line 363 "./getdate.y"
       {
  -         yyRelSeconds += (yyvsp[-1].Number) * (yyvsp[0].Number) * 60L;
  +         yyRelSeconds += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - 
(2)].Number) * 60L;
        }
       break;
   
     case 33:
  -#line 370 "./getdate.y"
  +#line 366 "./getdate.y"
       {
  -         yyRelSeconds += (yyvsp[0].Number) * 60L;
  +         yyRelSeconds += (yyvsp[(1) - (1)].Number) * 60L;
        }
       break;
   
     case 34:
  -#line 373 "./getdate.y"
  +#line 369 "./getdate.y"
       {
  -         yyRelSeconds += (yyvsp[-1].Number);
  +         yyRelSeconds += (yyvsp[(1) - (2)].Number);
        }
       break;
   
     case 35:
  -#line 376 "./getdate.y"
  +#line 372 "./getdate.y"
       {
  -         yyRelSeconds += (yyvsp[-1].Number);
  +         yyRelSeconds += (yyvsp[(1) - (2)].Number);
        }
       break;
   
     case 36:
  -#line 379 "./getdate.y"
  +#line 375 "./getdate.y"
       {
            yyRelSeconds++;
        }
       break;
   
     case 37:
  -#line 382 "./getdate.y"
  +#line 378 "./getdate.y"
       {
  -         yyRelMonth += (yyvsp[-1].Number) * (yyvsp[0].Number);
  +         yyRelMonth += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number);
        }
       break;
   
     case 38:
  -#line 385 "./getdate.y"
  +#line 381 "./getdate.y"
       {
  -         yyRelMonth += (yyvsp[-1].Number) * (yyvsp[0].Number);
  +         yyRelMonth += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number);
        }
       break;
   
     case 39:
  -#line 388 "./getdate.y"
  +#line 384 "./getdate.y"
       {
  -         yyRelMonth += (yyvsp[0].Number);
  +         yyRelMonth += (yyvsp[(1) - (1)].Number);
        }
       break;
   
     case 40:
  -#line 393 "./getdate.y"
  +#line 389 "./getdate.y"
       {
            if (yyHaveTime && yyHaveDate && !yyHaveRel)
  -             yyYear = (yyvsp[0].Number);
  +             yyYear = (yyvsp[(1) - (1)].Number);
            else {
  -             if ((yyvsp[0].Number)>10000) {
  +             if ((yyvsp[(1) - (1)].Number)>10000) {
                    yyHaveDate++;
  -                 yyDay= ((yyvsp[0].Number))%100;
  -                 yyMonth= ((yyvsp[0].Number)/100)%100;
  -                 yyYear = (yyvsp[0].Number)/10000;
  +                 yyDay= ((yyvsp[(1) - (1)].Number))%100;
  +                 yyMonth= ((yyvsp[(1) - (1)].Number)/100)%100;
  +                 yyYear = (yyvsp[(1) - (1)].Number)/10000;
                }
                else {
                    yyHaveTime++;
  -                 if ((yyvsp[0].Number) < 100) {
  -                     yyHour = (yyvsp[0].Number);
  +                 if ((yyvsp[(1) - (1)].Number) < 100) {
  +                     yyHour = (yyvsp[(1) - (1)].Number);
                        yyMinutes = 0;
                    }
                    else {
  -                     yyHour = (yyvsp[0].Number) / 100;
  -                     yyMinutes = (yyvsp[0].Number) % 100;
  +                     yyHour = (yyvsp[(1) - (1)].Number) / 100;
  +                     yyMinutes = (yyvsp[(1) - (1)].Number) % 100;
                    }
                    yySeconds = 0;
                    yyMeridian = MER24;
  @@ -1680,30 +1901,28 @@
       break;
   
     case 41:
  -#line 420 "./getdate.y"
  +#line 416 "./getdate.y"
       {
            (yyval.Meridian) = MER24;
        }
       break;
   
     case 42:
  -#line 423 "./getdate.y"
  +#line 419 "./getdate.y"
       {
  -         (yyval.Meridian) = (yyvsp[0].Meridian);
  +         (yyval.Meridian) = (yyvsp[(1) - (1)].Meridian);
        }
       break;
   
   
  +/* Line 1267 of yacc.c.  */
  +#line 1914 "getdate.c"
         default: break;
       }
  +  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
   
  -/* Line 1126 of yacc.c.  */
  -#line 1700 "getdate.c"
  -
  -  yyvsp -= yylen;
  -  yyssp -= yylen;
  -
  -
  +  YYPOPSTACK (yylen);
  +  yylen = 0;
     YY_STACK_PRINT (yyss, yyssp);
   
     *++yyvsp = yyval;
  @@ -1732,110 +1951,41 @@
     if (!yyerrstatus)
       {
         ++yynerrs;
  -#if YYERROR_VERBOSE
  -      yyn = yypact[yystate];
  -
  -      if (YYPACT_NINF < yyn && yyn < YYLAST)
  -     {
  -       int yytype = YYTRANSLATE (yychar);
  -       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
  -       YYSIZE_T yysize = yysize0;
  -       YYSIZE_T yysize1;
  -       int yysize_overflow = 0;
  -       char *yymsg = 0;
  -#      define YYERROR_VERBOSE_ARGS_MAXIMUM 5
  -       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
  -       int yyx;
  -
  -#if 0
  -       /* This is so xgettext sees the translatable formats that are
  -          constructed on the fly.  */
  -       YY_("syntax error, unexpected %s");
  -       YY_("syntax error, unexpected %s, expecting %s");
  -       YY_("syntax error, unexpected %s, expecting %s or %s");
  -       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
  -       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
  -#endif
  -       char *yyfmt;
  -       char const *yyf;
  -       static char const yyunexpected[] = "syntax error, unexpected %s";
  -       static char const yyexpecting[] = ", expecting %s";
  -       static char const yyor[] = " or %s";
  -       char yyformat[sizeof yyunexpected
  -                     + sizeof yyexpecting - 1
  -                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
  -                        * (sizeof yyor - 1))];
  -       char const *yyprefix = yyexpecting;
  -
  -       /* Start YYX at -YYN if negative to avoid negative indexes in
  -          YYCHECK.  */
  -       int yyxbegin = yyn < 0 ? -yyn : 0;
  -
  -       /* Stay within bounds of both yycheck and yytname.  */
  -       int yychecklim = YYLAST - yyn;
  -       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
  -       int yycount = 1;
  -
  -       yyarg[0] = yytname[yytype];
  -       yyfmt = yystpcpy (yyformat, yyunexpected);
  -
  -       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
  -         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
  +#if ! YYERROR_VERBOSE
  +      yyerror (YY_("syntax error"));
  +#else
  +      {
  +     YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
  +     if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
  +       {
  +         YYSIZE_T yyalloc = 2 * yysize;
  +         if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
  +           yyalloc = YYSTACK_ALLOC_MAXIMUM;
  +         if (yymsg != yymsgbuf)
  +           YYSTACK_FREE (yymsg);
  +         yymsg = (char *) YYSTACK_ALLOC (yyalloc);
  +         if (yymsg)
  +           yymsg_alloc = yyalloc;
  +         else
              {
  -             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
  -               {
  -                 yycount = 1;
  -                 yysize = yysize0;
  -                 yyformat[sizeof yyunexpected - 1] = '\0';
  -                 break;
  -               }
  -             yyarg[yycount++] = yytname[yyx];
  -             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
  -             yysize_overflow |= yysize1 < yysize;
  -             yysize = yysize1;
  -             yyfmt = yystpcpy (yyfmt, yyprefix);
  -             yyprefix = yyor;
  +             yymsg = yymsgbuf;
  +             yymsg_alloc = sizeof yymsgbuf;
              }
  +       }
   
  -       yyf = YY_(yyformat);
  -       yysize1 = yysize + yystrlen (yyf);
  -       yysize_overflow |= yysize1 < yysize;
  -       yysize = yysize1;
  -
  -       if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
  -         yymsg = (char *) YYSTACK_ALLOC (yysize);
  -       if (yymsg)
  -         {
  -           /* Avoid sprintf, as that infringes on the user's name space.
  -              Don't have undefined behavior even if the translation
  -              produced a string with the wrong number of "%s"s.  */
  -           char *yyp = yymsg;
  -           int yyi = 0;
  -           while ((*yyp = *yyf))
  -             {
  -               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
  -                 {
  -                   yyp += yytnamerr (yyp, yyarg[yyi++]);
  -                   yyf += 2;
  -                 }
  -               else
  -                 {
  -                   yyp++;
  -                   yyf++;
  -                 }
  -             }
  -           yyerror (yymsg);
  -           YYSTACK_FREE (yymsg);
  -         }
  -       else
  -         {
  -           yyerror (YY_("syntax error"));
  +     if (0 < yysize && yysize <= yymsg_alloc)
  +       {
  +         (void) yysyntax_error (yymsg, yystate, yychar);
  +         yyerror (yymsg);
  +       }
  +     else
  +       {
  +         yyerror (YY_("syntax error"));
  +         if (yysize != 0)
              goto yyexhaustedlab;
  -         }
  -     }
  -      else
  -#endif /* YYERROR_VERBOSE */
  -     yyerror (YY_("syntax error"));
  +       }
  +      }
  +#endif
       }
   
   
  @@ -1846,14 +1996,15 @@
         error, discard it.  */
   
         if (yychar <= YYEOF)
  -        {
  +     {
          /* Return failure if at end of input.  */
          if (yychar == YYEOF)
            YYABORT;
  -        }
  +     }
         else
        {
  -       yydestruct ("Error: discarding", yytoken, &yylval);
  +       yydestruct ("Error: discarding",
  +                   yytoken, &yylval);
          yychar = YYEMPTY;
        }
       }
  @@ -1871,11 +2022,14 @@
     /* Pacify compilers like GCC when the user code never invokes
        YYERROR and the label yyerrorlab therefore never appears in user
        code.  */
  -  if (0)
  +  if (/*CONSTCOND*/ 0)
        goto yyerrorlab;
   
  -yyvsp -= yylen;
  -  yyssp -= yylen;
  +  /* Do not reclaim the symbols of the rule which action triggered
  +     this YYERROR.  */
  +  YYPOPSTACK (yylen);
  +  yylen = 0;
  +  YY_STACK_PRINT (yyss, yyssp);
     yystate = *yyssp;
     goto yyerrlab1;
   
  @@ -1905,8 +2059,9 @@
        YYABORT;
   
   
  -      yydestruct ("Error: popping", yystos[yystate], yyvsp);
  -      YYPOPSTACK;
  +      yydestruct ("Error: popping",
  +               yystos[yystate], yyvsp);
  +      YYPOPSTACK (1);
         yystate = *yyssp;
         YY_STACK_PRINT (yyss, yyssp);
       }
  @@ -1917,7 +2072,7 @@
     *++yyvsp = yylval;
   
   
  -  /* Shift the error token. */
  +  /* Shift the error token.  */
     YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
   
     yystate = yyn;
  @@ -1952,21 +2107,30 @@
     if (yychar != YYEOF && yychar != YYEMPTY)
        yydestruct ("Cleanup: discarding lookahead",
                 yytoken, &yylval);
  +  /* Do not reclaim the symbols of the rule which action triggered
  +     this YYABORT or YYACCEPT.  */
  +  YYPOPSTACK (yylen);
  +  YY_STACK_PRINT (yyss, yyssp);
     while (yyssp != yyss)
       {
         yydestruct ("Cleanup: popping",
                  yystos[*yyssp], yyvsp);
  -      YYPOPSTACK;
  +      YYPOPSTACK (1);
       }
   #ifndef yyoverflow
     if (yyss != yyssa)
       YYSTACK_FREE (yyss);
   #endif
  -  return yyresult;
  +#if YYERROR_VERBOSE
  +  if (yymsg != yymsgbuf)
  +    YYSTACK_FREE (yymsg);
  +#endif
  +  /* Make sure YYID is used.  */
  +  return YYID (yyresult);
   }
   
   
  -#line 428 "./getdate.y"
  +#line 424 "./getdate.y"
   
   
   /* Month and day table. */
  @@ -2614,7 +2778,6 @@
   }
   #endif       /* defined(TEST) */
   
  -
   /[EMAIL PROTECTED] =branchstate =sizeoftype =usereleased @*/
   /[EMAIL PROTECTED] =evalorderuncon =modobserveruncon =modnomods @*/
   /[EMAIL PROTECTED] =modunconnomods =compdef =noeffectuncon @*/
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to