From: Art Cancro Date: Wed, 6 May 2015 22:54:00 +0000 (-0400) Subject: merge X-Git-Tag: Release_902~167 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=15054b0f11409cfc68102560fe4ab5a4e2bf4ea0 merge --- 15054b0f11409cfc68102560fe4ab5a4e2bf4ea0 diff --cc citadel/parsedate.c index 854402077,854402077..f26fd4a4b --- a/citadel/parsedate.c +++ b/citadel/parsedate.c @@@ -1,19 -1,19 +1,19 @@@ --/* A Bison parser, made by GNU Bison 2.5. */ ++/* A Bison parser, made by GNU Bison 3.0.2. */ /* Bison implementation for Yacc-like parsers in C -- -- Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. -- ++ ++ Copyright (C) 1984, 1989-1990, 2000-2013 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 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. -- ++ You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@@ -26,7 -26,7 +26,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. -- ++ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@@ -44,7 -44,7 +44,7 @@@ #define YYBISON 1 /* Bison version. */ --#define YYBISON_VERSION "2.5" ++#define YYBISON_VERSION "3.0.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@@ -58,15 -58,15 +58,11 @@@ /* Pull parsers. */ #define YYPULL 1 --/* Using locations. */ --#define YYLSP_NEEDED 0 /* Copy the first part of user declarations. */ -- --/* Line 268 of yacc.c */ --#line 1 "parsedate.y" ++#line 1 "parsedate.y" /* yacc.c:339 */ /* $Revision$ ** @@@ -179,14 -179,14 +175,15 @@@ static time_t yyRelSeconds static void date_error(char *); ++#line 179 "y.tab.c" /* yacc.c:339 */ --/* Line 268 of yacc.c */ --#line 185 "y.tab.c" -- --/* Enabling traces. */ --#ifndef YYDEBUG --# define YYDEBUG 0 --#endif ++# ifndef YY_NULLPTR ++# if defined __cplusplus && 201103L <= __cplusplus ++# define YY_NULLPTR nullptr ++# else ++# define YY_NULLPTR 0 ++# endif ++# endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE @@@ -196,28 -196,28 +193,30 @@@ # define YYERROR_VERBOSE 0 #endif --/* Enabling the token table. */ --#ifndef YYTOKEN_TABLE --# define YYTOKEN_TABLE 0 --#endif ++/* Debug traces. */ ++#ifndef YYDEBUG ++# define YYDEBUG 0 ++#endif ++#if YYDEBUG ++extern int yydebug; ++#endif --/* Tokens. */ ++/* Token type. */ #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 -- }; ++ 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 @@@ -230,35 -230,35 +229,32 @@@ #define tUNUMBER 265 #define tZONE 266 -- -- -- ++/* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED --typedef union YYSTYPE ++typedef union YYSTYPE YYSTYPE; ++union YYSTYPE { -- --/* Line 293 of yacc.c */ --#line 114 "parsedate.y" ++#line 114 "parsedate.y" /* yacc.c:355 */ time_t Number; enum _MERIDIAN Meridian; -- -- --/* Line 293 of yacc.c */ --#line 250 "y.tab.c" --} YYSTYPE; ++#line 243 "y.tab.c" /* yacc.c:355 */ ++}; # define YYSTYPE_IS_TRIVIAL 1 --# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif --/* Copy the second part of user declarations. */ ++extern YYSTYPE yylval; ++ ++int yyparse (void); --/* Line 343 of yacc.c */ --#line 262 "y.tab.c" ++ ++/* Copy the second part of user declarations. */ ++ ++#line 258 "y.tab.c" /* yacc.c:358 */ #ifdef short # undef short @@@ -272,11 -272,11 +268,8 @@@ typedef unsigned char yytype_uint8 #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; ++typedef signed char yytype_int8; #endif #ifdef YYTYPE_UINT16 @@@ -296,8 -296,8 +289,7 @@@ typedef short int yytype_int16 # 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) ++# elif ! defined YYSIZE_T # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@@ -311,39 -311,39 +303,68 @@@ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ --# define YY_(msgid) dgettext ("bison-runtime", msgid) ++# define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ --# define YY_(msgid) msgid ++# define YY_(Msgid) Msgid ++# endif ++#endif ++ ++#ifndef YY_ATTRIBUTE ++# if (defined __GNUC__ \ ++ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ ++ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C ++# define YY_ATTRIBUTE(Spec) __attribute__(Spec) ++# else ++# define YY_ATTRIBUTE(Spec) /* empty */ ++# endif ++#endif ++ ++#ifndef YY_ATTRIBUTE_PURE ++# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) ++#endif ++ ++#ifndef YY_ATTRIBUTE_UNUSED ++# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) ++#endif ++ ++#if !defined _Noreturn \ ++ && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) ++# if defined _MSC_VER && 1200 <= _MSC_VER ++# define _Noreturn __declspec (noreturn) ++# else ++# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ --# define YYUSE(e) ((void) (e)) ++# define YYUSE(E) ((void) (E)) #else --# define YYUSE(e) /* empty */ ++# 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 yyi) ++#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ ++/* Suppress an incorrect diagnostic about yylval being uninitialized. */ ++# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ ++ _Pragma ("GCC diagnostic push") \ ++ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ ++ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") ++# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ ++ _Pragma ("GCC diagnostic pop") #else --static int --YYID (yyi) -- int yyi; ++# define YY_INITIAL_VALUE(Value) Value #endif --{ -- return yyi; --} ++#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN ++# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN ++# define YY_IGNORE_MAYBE_UNINITIALIZED_END ++#endif ++#ifndef YY_INITIAL_VALUE ++# define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif ++ #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ @@@ -361,9 -361,9 +382,9 @@@ # define alloca _alloca # else # define YYSTACK_ALLOC alloca --# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) ++# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ ++ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif @@@ -373,8 -373,8 +394,8 @@@ # endif # ifdef YYSTACK_ALLOC -- /* Pacify GCC's `empty if-body' warning. */ --# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) ++ /* Pacify GCC's 'empty if-body' warning. */ ++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (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 @@@ -390,7 -390,7 +411,7 @@@ # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ -- && (defined YYFREE || defined free))) ++ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 @@@ -398,15 -398,15 +419,13 @@@ # endif # ifndef YYMALLOC # define YYMALLOC malloc --# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) ++# if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free --# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) ++# if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif @@@ -416,7 -416,7 +435,7 @@@ #if (! defined yyoverflow \ && (! defined __cplusplus \ -- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) ++ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@@ -441,35 -441,35 +460,35 @@@ 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_alloc, Stack) \ -- do \ -- { \ -- YYSIZE_T yynewbytes; \ -- YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ -- Stack = &yyptr->Stack_alloc; \ -- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ -- yyptr += yynewbytes / sizeof (*yyptr); \ -- } \ -- while (YYID (0)) ++# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ ++ do \ ++ { \ ++ YYSIZE_T yynewbytes; \ ++ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ ++ Stack = &yyptr->Stack_alloc; \ ++ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ ++ yyptr += yynewbytes / sizeof (*yyptr); \ ++ } \ ++ while (0) #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED --/* Copy COUNT objects from FROM to TO. The source and destination do ++/* Copy COUNT objects from SRC to DST. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ --# define YYCOPY(To, From, Count) \ -- __builtin_memcpy (To, From, (Count) * sizeof (*(From))) ++# define YYCOPY(Dst, Src, Count) \ ++ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) # else --# define YYCOPY(To, From, Count) \ -- do \ -- { \ -- YYSIZE_T yyi; \ -- for (yyi = 0; yyi < (Count); yyi++) \ -- (To)[yyi] = (From)[yyi]; \ -- } \ -- while (YYID (0)) ++# define YYCOPY(Dst, Src, Count) \ ++ do \ ++ { \ ++ YYSIZE_T yyi; \ ++ for (yyi = 0; yyi < (Count); yyi++) \ ++ (Dst)[yyi] = (Src)[yyi]; \ ++ } \ ++ while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ @@@ -485,17 -485,17 +504,19 @@@ #define YYNNTS 9 /* YYNRULES -- Number of rules. */ #define YYNRULES 30 --/* YYNRULES -- Number of states. */ ++/* YYNSTATES -- Number of states. */ #define YYNSTATES 44 --/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ ++/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned ++ by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 266 --#define YYTRANSLATE(YYX) \ ++#define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) --/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ ++/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM ++ as returned by yylex, without out-of-bounds checking. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@@ -528,32 -528,32 +549,7 @@@ }; #if YYDEBUG --/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in -- YYRHS. */ --static const yytype_uint8 yyprhs[] = --{ -- 0, 0, 3, 4, 7, 9, 12, 14, 16, 19, -- 24, 29, 36, 43, 45, 47, 50, 52, 54, 58, -- 64, 67, 72, 75, 79, 85, 88, 91, 94, 97, -- 98 --}; -- --/* YYRHS -- A `-1'-separated list of the rules' RHS. */ --static const yytype_int8 yyrhs[] = --{ -- 16, 0, -1, -1, 16, 17, -1, 18, -1, 18, -- 19, -1, 21, -1, 22, -1, 10, 23, -1, 10, -- 12, 10, 23, -1, 10, 12, 10, 20, -1, 10, -- 12, 10, 12, 10, 23, -1, 10, 12, 10, 12, -- 10, 20, -1, 11, -1, 4, -1, 11, 20, -1, -- 20, -1, 9, -1, 10, 13, 10, -1, 10, 13, -- 10, 13, 10, -1, 6, 10, -1, 6, 10, 14, -- 10, -1, 10, 6, -1, 10, 6, 10, -1, 3, -- 14, 10, 6, 10, -1, 9, 8, -1, 10, 8, -- -1, 9, 7, -1, 10, 7, -1, -1, 5, -1 --}; -- --/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ ++ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 128, 128, 129, 132, 141, 145, 148, 153, 165, @@@ -563,7 -563,7 +559,7 @@@ }; #endif --#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE ++#if YYDEBUG || YYERROR_VERBOSE || 0 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = @@@ -571,13 -571,13 +567,13 @@@ "$end", "error", "$undefined", "tDAY", "tDAYZONE", "tMERIDIAN", "tMONTH", "tMONTH_UNIT", "tSEC_UNIT", "tSNUMBER", "tUNUMBER", "tZONE", "':'", "'/'", "','", "$accept", "spec", "item", "time", "zone", -- "numzone", "date", "rel", "o_merid", 0 ++ "numzone", "date", "rel", "o_merid", YY_NULLPTR }; #endif # ifdef YYPRINT --/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to -- token YYLEX-NUM. */ ++/* YYTOKNUM[NUM] -- (External) token number corresponding to the ++ (internal) symbol number NUM (which must be that of a token). */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, @@@ -585,27 -585,27 +581,30 @@@ }; # endif --/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ --static const yytype_uint8 yyr1[] = --{ -- 0, 15, 16, 16, 17, 17, 17, 17, 18, 18, -- 18, 18, 18, 19, 19, 19, 19, 20, 21, 21, -- 21, 21, 21, 21, 21, 22, 22, 22, 22, 23, -- 23 --}; ++#define YYPACT_NINF -29 --/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ --static const yytype_uint8 yyr2[] = ++#define yypact_value_is_default(Yystate) \ ++ (!!((Yystate) == (-29))) ++ ++#define YYTABLE_NINF -1 ++ ++#define yytable_value_is_error(Yytable_value) \ ++ 0 ++ ++ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing ++ STATE-NUM. */ ++static const yytype_int8 yypact[] = { -- 0, 2, 0, 2, 1, 2, 1, 1, 2, 4, -- 4, 6, 6, 1, 1, 2, 1, 1, 3, 5, -- 2, 4, 2, 3, 5, 2, 2, 2, 2, 0, -- 1 ++ -29, 1, -29, -11, 11, 20, 12, -29, 4, -29, ++ -29, 13, 16, -29, -29, -29, 21, -29, -29, 22, ++ 23, -29, -29, -29, 5, -29, -29, 28, 25, -29, ++ 17, 24, -29, 26, -29, 29, -29, -29, 30, -29, ++ 0, -29, -29, -29 }; --/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. -- Performed when YYTABLE doesn't specify something else to do. Zero -- means the default is an error. */ ++ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. ++ Performed when YYTABLE does not specify something else to do. Zero ++ means the default is an error. */ static const yytype_uint8 yydefact[] = { 2, 0, 1, 0, 0, 0, 29, 3, 4, 6, @@@ -615,34 -615,34 +614,21 @@@ 29, 19, 12, 11 }; --/* YYDEFGOTO[NTERM-NUM]. */ --static const yytype_int8 yydefgoto[] = --{ -- -1, 1, 7, 8, 25, 26, 9, 10, 21 --}; -- --/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing -- STATE-NUM. */ --#define YYPACT_NINF -29 --static const yytype_int8 yypact[] = ++ /* YYPGOTO[NTERM-NUM]. */ ++static const yytype_int8 yypgoto[] = { -- -29, 1, -29, -11, 11, 20, 12, -29, 4, -29, -- -29, 13, 16, -29, -29, -29, 21, -29, -29, 22, -- 23, -29, -29, -29, 5, -29, -29, 28, 25, -29, -- 17, 24, -29, 26, -29, 29, -29, -29, 30, -29, -- 0, -29, -29, -29 ++ -29, -29, -29, -29, -29, -24, -29, -29, -28 }; --/* YYPGOTO[NTERM-NUM]. */ --static const yytype_int8 yypgoto[] = ++ /* YYDEFGOTO[NTERM-NUM]. */ ++static const yytype_int8 yydefgoto[] = { -- -29, -29, -29, -29, -29, -24, -29, -29, -28 ++ -1, 1, 7, 8, 25, 26, 9, 10, 21 }; --/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If -- positive, shift that token. If negative, reduce the rule which -- number is the opposite. If YYTABLE_NINF, syntax error. */ --#define YYTABLE_NINF -1 ++ /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If ++ positive, shift that token. If negative, reduce the rule whose ++ number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint8 yytable[] = { 32, 2, 37, 11, 3, 15, 36, 4, 22, 23, @@@ -652,12 -652,12 +638,6 @@@ 41 }; --#define yypact_value_is_default(yystate) \ -- ((yystate) == (-29)) -- --#define yytable_value_is_error(yytable_value) \ -- YYID (0) -- static const yytype_int8 yycheck[] = { 24, 0, 30, 14, 3, 5, 30, 6, 4, 9, @@@ -667,8 -667,8 +647,8 @@@ 10 }; --/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing -- symbol of state STATE-NUM. */ ++ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing ++ symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { 0, 16, 0, 3, 6, 9, 10, 17, 18, 21, @@@ -678,94 -678,94 +658,59 @@@ 10, 10, 20, 23 }; --#define yyerrok (yyerrstatus = 0) --#define yyclearin (yychar = YYEMPTY) --#define YYEMPTY (-2) --#define YYEOF 0 -- --#define YYACCEPT goto yyacceptlab --#define YYABORT goto yyabortlab --#define YYERROR goto yyerrorlab -- -- --/* Like YYERROR except do call yyerror. This remains here temporarily -- to ease the transition to the new meaning of YYERROR, for GCC. -- Once GCC version 2 has supplanted version 1, this can go. However, -- YYFAIL appears to be in use. Nevertheless, it is formally deprecated -- in Bison 2.4.2's NEWS entry, where a plan to phase it out is -- discussed. */ -- --#define YYFAIL goto yyerrlab --#if defined YYFAIL -- /* This is here to suppress warnings from the GCC cpp's -- -Wunused-macros. Normally we don't worry about that warning, but -- some users do, and we want to make it easy for users to remove -- YYFAIL uses, which will produce warnings from Bison 2.5. */ --#endif ++ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ ++static const yytype_uint8 yyr1[] = ++{ ++ 0, 15, 16, 16, 17, 17, 17, 17, 18, 18, ++ 18, 18, 18, 19, 19, 19, 19, 20, 21, 21, ++ 21, 21, 21, 21, 21, 22, 22, 22, 22, 23, ++ 23 ++}; --#define YYRECOVERING() (!!yyerrstatus) ++ /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ ++static const yytype_uint8 yyr2[] = ++{ ++ 0, 2, 0, 2, 1, 2, 1, 1, 2, 4, ++ 4, 6, 6, 1, 1, 2, 1, 1, 3, 5, ++ 2, 4, 2, 3, 5, 2, 2, 2, 2, 0, ++ 1 ++}; --#define YYBACKUP(Token, Value) \ --do \ -- if (yychar == YYEMPTY && yylen == 1) \ -- { \ -- yychar = (Token); \ -- yylval = (Value); \ -- YYPOPSTACK (1); \ -- goto yybackup; \ -- } \ -- else \ -- { \ -- yyerror (YY_("syntax error: cannot back up")); \ -- YYERROR; \ -- } \ --while (YYID (0)) -- -- --#define YYTERROR 1 --#define YYERRCODE 256 -- -- --/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. -- If N is 0, then set CURRENT to the empty location which ends -- the previous symbol: RHS[0] (always defined). */ -- --#define YYRHSLOC(Rhs, K) ((Rhs)[K]) --#ifndef YYLLOC_DEFAULT --# define YYLLOC_DEFAULT(Current, Rhs, N) \ -- do \ -- if (YYID (N)) \ -- { \ -- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ -- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ -- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ -- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ -- } \ -- else \ -- { \ -- (Current).first_line = (Current).last_line = \ -- YYRHSLOC (Rhs, 0).last_line; \ -- (Current).first_column = (Current).last_column = \ -- YYRHSLOC (Rhs, 0).last_column; \ -- } \ -- while (YYID (0)) --#endif ++#define yyerrok (yyerrstatus = 0) ++#define yyclearin (yychar = YYEMPTY) ++#define YYEMPTY (-2) ++#define YYEOF 0 --/* This macro is provided for backward compatibility. */ ++#define YYACCEPT goto yyacceptlab ++#define YYABORT goto yyabortlab ++#define YYERROR goto yyerrorlab --#ifndef YY_LOCATION_PRINT --# define YY_LOCATION_PRINT(File, Loc) ((void) 0) --#endif ++#define YYRECOVERING() (!!yyerrstatus) ++ ++#define YYBACKUP(Token, Value) \ ++do \ ++ if (yychar == YYEMPTY) \ ++ { \ ++ yychar = (Token); \ ++ yylval = (Value); \ ++ YYPOPSTACK (yylen); \ ++ yystate = *yyssp; \ ++ goto yybackup; \ ++ } \ ++ else \ ++ { \ ++ yyerror (YY_("syntax error: cannot back up")); \ ++ YYERROR; \ ++ } \ ++while (0) ++ ++/* Error token number */ ++#define YYTERROR 1 ++#define YYERRCODE 256 --/* YYLEX -- calling `yylex' with the right arguments. */ --#ifdef YYLEX_PARAM --# define YYLEX yylex (YYLEX_PARAM) --#else --# define YYLEX yylex () --#endif /* Enable debugging if requested. */ #if YYDEBUG @@@ -775,54 -775,54 +720,46 @@@ # define YYFPRINTF fprintf # endif --# define YYDPRINTF(Args) \ --do { \ -- if (yydebug) \ -- YYFPRINTF Args; \ --} while (YYID (0)) ++# define YYDPRINTF(Args) \ ++do { \ ++ if (yydebug) \ ++ YYFPRINTF Args; \ ++} 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)) ++/* This macro is provided for backward compatibility. */ ++#ifndef YY_LOCATION_PRINT ++# define YY_LOCATION_PRINT(File, Loc) ((void) 0) ++#endif --/*--------------------------------. --| Print this symbol on YYOUTPUT. | --`--------------------------------*/ ++# 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 (0) ++ ++ ++/*----------------------------------------. ++| Print this symbol's value 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 { ++ FILE *yyo = yyoutput; ++ YYUSE (yyo); if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); --# else -- YYUSE (yyoutput); # endif -- switch (yytype) -- { -- default: -- break; -- } ++ YYUSE (yytype); } @@@ -830,22 -830,22 +767,11 @@@ | 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]); ++ YYFPRINTF (yyoutput, "%s %s (", ++ yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep); YYFPRINTF (yyoutput, ")"); @@@ -856,16 -856,16 +782,8 @@@ | TOP (included). | `------------------------------------------------------------------*/ --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) --#else --static void --yy_stack_print (yybottom, yytop) -- yytype_int16 *yybottom; -- yytype_int16 *yytop; --#endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@@ -876,49 -876,49 +794,42 @@@ YYFPRINTF (stderr, "\n"); } --# define YY_STACK_PRINT(Bottom, Top) \ --do { \ -- if (yydebug) \ -- yy_stack_print ((Bottom), (Top)); \ --} while (YYID (0)) ++# define YY_STACK_PRINT(Bottom, Top) \ ++do { \ ++ if (yydebug) \ ++ yy_stack_print ((Bottom), (Top)); \ ++} while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) static void --yy_reduce_print (YYSTYPE *yyvsp, int yyrule) --#else --static void --yy_reduce_print (yyvsp, yyrule) -- YYSTYPE *yyvsp; -- int yyrule; --#endif ++yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) { ++ unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; -- unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", -- yyrule - 1, yylno); ++ yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); -- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], -- &(yyvsp[(yyi + 1) - (yynrhs)]) -- ); ++ yy_symbol_print (stderr, ++ yystos[yyssp[yyi + 1 - yynrhs]], ++ &(yyvsp[(yyi + 1) - (yynrhs)]) ++ ); YYFPRINTF (stderr, "\n"); } } --# define YY_REDUCE_PRINT(Rule) \ --do { \ -- if (yydebug) \ -- yy_reduce_print (yyvsp, Rule); \ --} while (YYID (0)) ++# define YY_REDUCE_PRINT(Rule) \ ++do { \ ++ if (yydebug) \ ++ yy_reduce_print (yyssp, yyvsp, Rule); \ ++} while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@@ -932,7 -932,7 +843,7 @@@ int yydebug /* YYINITDEPTH -- initial size of the parser's stacks. */ --#ifndef YYINITDEPTH ++#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@@ -955,15 -955,15 +866,8 @@@ # define yystrlen strlen # else /* Return the length of YYSTR. */ --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) --#else --static YYSIZE_T --yystrlen (yystr) -- const char *yystr; --#endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) @@@ -979,16 -979,16 +883,8 @@@ # 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 * yystpcpy (char *yydest, const char *yysrc) --#else --static char * --yystpcpy (yydest, yysrc) -- char *yydest; -- const char *yysrc; --#endif { char *yyd = yydest; const char *yys = yysrc; @@@ -1018,27 -1018,27 +914,27 @@@ yytnamerr (char *yyres, const char *yys char const *yyp = yystr; for (;;) -- switch (*++yyp) -- { -- case '\'': -- case ',': -- goto do_not_strip_quotes; -- -- case '\\': -- if (*++yyp != '\\') -- goto do_not_strip_quotes; -- /* Fall through. */ -- default: -- if (yyres) -- yyres[yyn] = *yyp; -- yyn++; -- break; -- -- case '"': -- if (yyres) -- yyres[yyn] = '\0'; -- return yyn; -- } ++ switch (*++yyp) ++ { ++ case '\'': ++ case ',': ++ goto do_not_strip_quotes; ++ ++ case '\\': ++ if (*++yyp != '\\') ++ goto do_not_strip_quotes; ++ /* Fall through. */ ++ default: ++ if (yyres) ++ yyres[yyn] = *yyp; ++ yyn++; ++ break; ++ ++ case '"': ++ if (yyres) ++ yyres[yyn] = '\0'; ++ return yyn; ++ } do_not_strip_quotes: ; } @@@ -1061,12 -1061,12 +957,11 @@@ static in yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { -- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); ++ YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); YYSIZE_T yysize = yysize0; -- YYSIZE_T yysize1; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ -- const char *yyformat = 0; ++ const char *yyformat = YY_NULLPTR; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per @@@ -1074,10 -1074,10 +969,6 @@@ int yycount = 0; /* There are many possibilities here to consider: -- - Assume YYFAIL is not used. It's too flawed to consider. See -- -- for details. YYERROR is fine as it does not invoke this -- function. - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected @@@ -1126,11 -1126,11 +1017,13 @@@ break; } yyarg[yycount++] = yytname[yyx]; -- yysize1 = yysize + yytnamerr (0, yytname[yyx]); -- if (! (yysize <= yysize1 -- && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) -- return 2; -- yysize = yysize1; ++ { ++ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); ++ if (! (yysize <= yysize1 ++ && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) ++ return 2; ++ yysize = yysize1; ++ } } } } @@@ -1150,10 -1150,10 +1043,12 @@@ # undef YYCASE_ } -- yysize1 = yysize + yystrlen (yyformat); -- if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) -- return 2; -- yysize = yysize1; ++ { ++ YYSIZE_T yysize1 = yysize + yystrlen (yyformat); ++ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) ++ return 2; ++ yysize = yysize1; ++ } if (*yymsg_alloc < yysize) { @@@ -1190,48 -1190,48 +1085,20 @@@ | Release the memory associated to this symbol. | `-----------------------------------------------*/ --/*ARGSUSED*/ --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) --#else --static void --yydestruct (yymsg, yytype, yyvaluep) -- const char *yymsg; -- int yytype; -- YYSTYPE *yyvaluep; --#endif { YYUSE (yyvaluep); -- if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); -- switch (yytype) -- { -- -- default: -- break; -- } ++ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN ++ YYUSE (yytype); ++ YY_IGNORE_MAYBE_UNINITIALIZED_END } --/* Prevent warnings from -Wmissing-prototypes. */ --#ifdef YYPARSE_PARAM --#if defined __STDC__ || defined __cplusplus --int yyparse (void *YYPARSE_PARAM); --#else --int yyparse (); --#endif --#else /* ! YYPARSE_PARAM */ --#if defined __STDC__ || defined __cplusplus --int yyparse (void); --#else --int yyparse (); --#endif --#endif /* ! YYPARSE_PARAM */ /* The lookahead symbol. */ @@@ -1239,7 -1239,7 +1106,6 @@@ int yychar /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; -- /* Number of syntax errors so far. */ int yynerrs; @@@ -1248,37 -1248,37 +1114,18 @@@ | yyparse. | `----------*/ --#ifdef YYPARSE_PARAM --#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 __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) int yyparse (void) --#else --int --yyparse () -- --#endif --#endif { int yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* The stacks and their tools: -- `yyss': related to states. -- `yyvs': related to semantic values. ++ 'yyss': related to states. ++ 'yyvs': related to semantic values. -- Refer to the stacks thru separate pointers, to allow yyoverflow ++ Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ @@@ -1296,7 -1296,7 +1143,7 @@@ int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ -- int yytoken; ++ int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; @@@ -1314,9 -1314,9 +1161,8 @@@ Keep to zero when no symbol should be popped. */ int yylen = 0; -- yytoken = 0; -- yyss = yyssa; -- yyvs = yyvsa; ++ yyssp = yyss = yyssa; ++ yyvsp = yyvs = yyvsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); @@@ -1325,14 -1325,14 +1171,6 @@@ yyerrstatus = 0; yynerrs = 0; 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. */ -- yyssp = yyss; -- yyvsp = yyvs; -- goto yysetstate; /*------------------------------------------------------------. @@@ -1353,23 -1353,23 +1191,23 @@@ #ifdef yyoverflow { -- /* 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; -- 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 -- be undefined if yyoverflow is a macro. */ -- yyoverflow (YY_("memory exhausted"), -- &yyss1, yysize * sizeof (*yyssp), -- &yyvs1, yysize * sizeof (*yyvsp), -- &yystacksize); -- -- yyss = yyss1; -- yyvs = yyvs1; ++ /* 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; ++ 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 ++ be undefined if yyoverflow is a macro. */ ++ yyoverflow (YY_("memory exhausted"), ++ &yyss1, yysize * sizeof (*yyssp), ++ &yyvs1, yysize * sizeof (*yyvsp), ++ &yystacksize); ++ ++ yyss = yyss1; ++ yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE @@@ -1377,22 -1377,22 +1215,22 @@@ # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) -- goto yyexhaustedlab; ++ goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) -- yystacksize = YYMAXDEPTH; ++ yystacksize = YYMAXDEPTH; { -- yytype_int16 *yyss1 = yyss; -- union yyalloc *yyptr = -- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); -- if (! yyptr) -- goto yyexhaustedlab; -- YYSTACK_RELOCATE (yyss_alloc, yyss); -- YYSTACK_RELOCATE (yyvs_alloc, yyvs); ++ yytype_int16 *yyss1 = yyss; ++ union yyalloc *yyptr = ++ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); ++ if (! yyptr) ++ goto yyexhaustedlab; ++ YYSTACK_RELOCATE (yyss_alloc, yyss); ++ YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE -- if (yyss1 != yyssa) -- YYSTACK_FREE (yyss1); ++ if (yyss1 != yyssa) ++ YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ @@@ -1401,10 -1401,10 +1239,10 @@@ yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", -- (unsigned long int) yystacksize)); ++ (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) -- YYABORT; ++ YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@@ -1433,7 -1433,7 +1271,7 @@@ yybackup if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); -- yychar = YYLEX; ++ yychar = yylex (); } if (yychar <= YYEOF) @@@ -1473,7 -1473,7 +1311,9 @@@ yychar = YYEMPTY; yystate = yyn; ++ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; ++ YY_IGNORE_MAYBE_UNINITIALIZED_END goto yynewstate; @@@ -1496,7 -1496,7 +1336,7 @@@ yyreduce yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: -- `$$ = $1'. ++ '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@@ -1510,9 -1510,9 +1350,7 @@@ switch (yyn) { case 4: -- --/* Line 1806 of yacc.c */ --#line 132 "parsedate.y" ++#line 132 "parsedate.y" /* yacc.c:1646 */ { yyHaveTime++; #ifdef lint @@@ -1522,313 -1522,313 +1360,286 @@@ } #endif /* lint */ } ++#line 1364 "y.tab.c" /* yacc.c:1646 */ break; case 5: -- --/* Line 1806 of yacc.c */ --#line 141 "parsedate.y" ++#line 141 "parsedate.y" /* yacc.c:1646 */ { yyHaveTime++; -- yyTimezone = (yyvsp[(2) - (2)].Number); ++ yyTimezone = (yyvsp[0].Number); } ++#line 1373 "y.tab.c" /* yacc.c:1646 */ break; case 6: -- --/* Line 1806 of yacc.c */ --#line 145 "parsedate.y" ++#line 145 "parsedate.y" /* yacc.c:1646 */ { yyHaveDate++; } ++#line 1381 "y.tab.c" /* yacc.c:1646 */ break; case 7: -- --/* Line 1806 of yacc.c */ --#line 148 "parsedate.y" ++#line 148 "parsedate.y" /* yacc.c:1646 */ { yyHaveRel = 1; } ++#line 1389 "y.tab.c" /* yacc.c:1646 */ break; case 8: -- --/* Line 1806 of yacc.c */ --#line 153 "parsedate.y" ++#line 153 "parsedate.y" /* yacc.c:1646 */ { -- if ((yyvsp[(1) - (2)].Number) < 100) { -- yyHour = (yyvsp[(1) - (2)].Number); ++ if ((yyvsp[-1].Number) < 100) { ++ yyHour = (yyvsp[-1].Number); yyMinutes = 0; } else { -- yyHour = (yyvsp[(1) - (2)].Number) / 100; -- yyMinutes = (yyvsp[(1) - (2)].Number) % 100; ++ yyHour = (yyvsp[-1].Number) / 100; ++ yyMinutes = (yyvsp[-1].Number) % 100; } yySeconds = 0; -- yyMeridian = (yyvsp[(2) - (2)].Meridian); ++ yyMeridian = (yyvsp[0].Meridian); } ++#line 1406 "y.tab.c" /* yacc.c:1646 */ break; case 9: -- --/* Line 1806 of yacc.c */ --#line 165 "parsedate.y" ++#line 165 "parsedate.y" /* yacc.c:1646 */ { -- yyHour = (yyvsp[(1) - (4)].Number); -- yyMinutes = (yyvsp[(3) - (4)].Number); ++ yyHour = (yyvsp[-3].Number); ++ yyMinutes = (yyvsp[-1].Number); yySeconds = 0; -- yyMeridian = (yyvsp[(4) - (4)].Meridian); ++ yyMeridian = (yyvsp[0].Meridian); } ++#line 1417 "y.tab.c" /* yacc.c:1646 */ break; case 10: -- --/* Line 1806 of yacc.c */ --#line 171 "parsedate.y" ++#line 171 "parsedate.y" /* yacc.c:1646 */ { -- yyHour = (yyvsp[(1) - (4)].Number); -- yyMinutes = (yyvsp[(3) - (4)].Number); -- yyTimezone = (yyvsp[(4) - (4)].Number); ++ yyHour = (yyvsp[-3].Number); ++ yyMinutes = (yyvsp[-1].Number); ++ yyTimezone = (yyvsp[0].Number); yyMeridian = MER24; yyDSTmode = DSToff; } ++#line 1429 "y.tab.c" /* yacc.c:1646 */ break; case 11: -- --/* Line 1806 of yacc.c */ --#line 178 "parsedate.y" ++#line 178 "parsedate.y" /* yacc.c:1646 */ { -- yyHour = (yyvsp[(1) - (6)].Number); -- yyMinutes = (yyvsp[(3) - (6)].Number); -- yySeconds = (yyvsp[(5) - (6)].Number); -- yyMeridian = (yyvsp[(6) - (6)].Meridian); ++ yyHour = (yyvsp[-5].Number); ++ yyMinutes = (yyvsp[-3].Number); ++ yySeconds = (yyvsp[-1].Number); ++ yyMeridian = (yyvsp[0].Meridian); } ++#line 1440 "y.tab.c" /* yacc.c:1646 */ break; case 12: -- --/* Line 1806 of yacc.c */ --#line 184 "parsedate.y" ++#line 184 "parsedate.y" /* yacc.c:1646 */ { -- yyHour = (yyvsp[(1) - (6)].Number); -- yyMinutes = (yyvsp[(3) - (6)].Number); -- yySeconds = (yyvsp[(5) - (6)].Number); -- yyTimezone = (yyvsp[(6) - (6)].Number); ++ yyHour = (yyvsp[-5].Number); ++ yyMinutes = (yyvsp[-3].Number); ++ yySeconds = (yyvsp[-1].Number); ++ yyTimezone = (yyvsp[0].Number); yyMeridian = MER24; yyDSTmode = DSToff; } ++#line 1453 "y.tab.c" /* yacc.c:1646 */ break; case 13: -- --/* Line 1806 of yacc.c */ --#line 194 "parsedate.y" ++#line 194 "parsedate.y" /* yacc.c:1646 */ { -- (yyval.Number) = (yyvsp[(1) - (1)].Number); ++ (yyval.Number) = (yyvsp[0].Number); yyDSTmode = DSToff; } ++#line 1462 "y.tab.c" /* yacc.c:1646 */ break; case 14: -- --/* Line 1806 of yacc.c */ --#line 198 "parsedate.y" ++#line 198 "parsedate.y" /* yacc.c:1646 */ { -- (yyval.Number) = (yyvsp[(1) - (1)].Number); ++ (yyval.Number) = (yyvsp[0].Number); yyDSTmode = DSTon; } ++#line 1471 "y.tab.c" /* yacc.c:1646 */ break; case 15: -- --/* Line 1806 of yacc.c */ --#line 202 "parsedate.y" ++#line 202 "parsedate.y" /* yacc.c:1646 */ { /* Only allow "GMT+300" and "GMT-0800" */ -- if ((yyvsp[(1) - (2)].Number) != 0) { ++ if ((yyvsp[-1].Number) != 0) { YYABORT; } -- (yyval.Number) = (yyvsp[(2) - (2)].Number); ++ (yyval.Number) = (yyvsp[0].Number); yyDSTmode = DSToff; } ++#line 1484 "y.tab.c" /* yacc.c:1646 */ break; case 16: -- --/* Line 1806 of yacc.c */ --#line 210 "parsedate.y" ++#line 210 "parsedate.y" /* yacc.c:1646 */ { -- (yyval.Number) = (yyvsp[(1) - (1)].Number); ++ (yyval.Number) = (yyvsp[0].Number); yyDSTmode = DSToff; } ++#line 1493 "y.tab.c" /* yacc.c:1646 */ break; case 17: -- --/* Line 1806 of yacc.c */ --#line 216 "parsedate.y" ++#line 216 "parsedate.y" /* yacc.c:1646 */ { int i; /* Unix and GMT and numeric timezones -- a little confusing. */ -- if ((yyvsp[(1) - (1)].Number) < 0) { ++ if ((yyvsp[0].Number) < 0) { /* Don't work with negative modulus. */ -- (yyvsp[(1) - (1)].Number) = -(yyvsp[(1) - (1)].Number); -- if ((yyvsp[(1) - (1)].Number) > 9999 || (i = (yyvsp[(1) - (1)].Number) % 100) >= 60) { ++ (yyvsp[0].Number) = -(yyvsp[0].Number); ++ if ((yyvsp[0].Number) > 9999 || (i = (yyvsp[0].Number) % 100) >= 60) { YYABORT; } -- (yyval.Number) = ((yyvsp[(1) - (1)].Number) / 100) * 60 + i; ++ (yyval.Number) = ((yyvsp[0].Number) / 100) * 60 + i; } else { -- if ((yyvsp[(1) - (1)].Number) > 9999 || (i = (yyvsp[(1) - (1)].Number) % 100) >= 60) { ++ if ((yyvsp[0].Number) > 9999 || (i = (yyvsp[0].Number) % 100) >= 60) { YYABORT; } -- (yyval.Number) = -(((yyvsp[(1) - (1)].Number) / 100) * 60 + i); ++ (yyval.Number) = -(((yyvsp[0].Number) / 100) * 60 + i); } } ++#line 1517 "y.tab.c" /* yacc.c:1646 */ break; case 18: -- --/* Line 1806 of yacc.c */ --#line 237 "parsedate.y" ++#line 237 "parsedate.y" /* yacc.c:1646 */ { -- yyMonth = (yyvsp[(1) - (3)].Number); -- yyDay = (yyvsp[(3) - (3)].Number); ++ yyMonth = (yyvsp[-2].Number); ++ yyDay = (yyvsp[0].Number); } ++#line 1526 "y.tab.c" /* yacc.c:1646 */ break; case 19: -- --/* Line 1806 of yacc.c */ --#line 241 "parsedate.y" ++#line 241 "parsedate.y" /* yacc.c:1646 */ { -- if ((yyvsp[(1) - (5)].Number) > 100) { -- yyYear = (yyvsp[(1) - (5)].Number); -- yyMonth = (yyvsp[(3) - (5)].Number); -- yyDay = (yyvsp[(5) - (5)].Number); ++ if ((yyvsp[-4].Number) > 100) { ++ yyYear = (yyvsp[-4].Number); ++ yyMonth = (yyvsp[-2].Number); ++ yyDay = (yyvsp[0].Number); } else { -- yyMonth = (yyvsp[(1) - (5)].Number); -- yyDay = (yyvsp[(3) - (5)].Number); -- yyYear = (yyvsp[(5) - (5)].Number); ++ yyMonth = (yyvsp[-4].Number); ++ yyDay = (yyvsp[-2].Number); ++ yyYear = (yyvsp[0].Number); } } ++#line 1543 "y.tab.c" /* yacc.c:1646 */ break; case 20: -- --/* Line 1806 of yacc.c */ --#line 253 "parsedate.y" ++#line 253 "parsedate.y" /* yacc.c:1646 */ { -- yyMonth = (yyvsp[(1) - (2)].Number); -- yyDay = (yyvsp[(2) - (2)].Number); ++ yyMonth = (yyvsp[-1].Number); ++ yyDay = (yyvsp[0].Number); } ++#line 1552 "y.tab.c" /* yacc.c:1646 */ break; case 21: -- --/* Line 1806 of yacc.c */ --#line 257 "parsedate.y" ++#line 257 "parsedate.y" /* yacc.c:1646 */ { -- yyMonth = (yyvsp[(1) - (4)].Number); -- yyDay = (yyvsp[(2) - (4)].Number); -- yyYear = (yyvsp[(4) - (4)].Number); ++ yyMonth = (yyvsp[-3].Number); ++ yyDay = (yyvsp[-2].Number); ++ yyYear = (yyvsp[0].Number); } ++#line 1562 "y.tab.c" /* yacc.c:1646 */ break; case 22: -- --/* Line 1806 of yacc.c */ --#line 262 "parsedate.y" ++#line 262 "parsedate.y" /* yacc.c:1646 */ { -- yyDay = (yyvsp[(1) - (2)].Number); -- yyMonth = (yyvsp[(2) - (2)].Number); ++ yyDay = (yyvsp[-1].Number); ++ yyMonth = (yyvsp[0].Number); } ++#line 1571 "y.tab.c" /* yacc.c:1646 */ break; case 23: -- --/* Line 1806 of yacc.c */ --#line 266 "parsedate.y" ++#line 266 "parsedate.y" /* yacc.c:1646 */ { -- yyDay = (yyvsp[(1) - (3)].Number); -- yyMonth = (yyvsp[(2) - (3)].Number); -- yyYear = (yyvsp[(3) - (3)].Number); ++ yyDay = (yyvsp[-2].Number); ++ yyMonth = (yyvsp[-1].Number); ++ yyYear = (yyvsp[0].Number); } ++#line 1581 "y.tab.c" /* yacc.c:1646 */ break; case 24: -- --/* Line 1806 of yacc.c */ --#line 271 "parsedate.y" ++#line 271 "parsedate.y" /* yacc.c:1646 */ { -- yyDay = (yyvsp[(3) - (5)].Number); -- yyMonth = (yyvsp[(4) - (5)].Number); -- yyYear = (yyvsp[(5) - (5)].Number); ++ yyDay = (yyvsp[-2].Number); ++ yyMonth = (yyvsp[-1].Number); ++ yyYear = (yyvsp[0].Number); } ++#line 1591 "y.tab.c" /* yacc.c:1646 */ break; case 25: -- --/* Line 1806 of yacc.c */ --#line 278 "parsedate.y" ++#line 278 "parsedate.y" /* yacc.c:1646 */ { -- yyRelSeconds += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number); ++ yyRelSeconds += (yyvsp[-1].Number) * (yyvsp[0].Number); } ++#line 1599 "y.tab.c" /* yacc.c:1646 */ break; case 26: -- --/* Line 1806 of yacc.c */ --#line 281 "parsedate.y" ++#line 281 "parsedate.y" /* yacc.c:1646 */ { -- yyRelSeconds += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number); ++ yyRelSeconds += (yyvsp[-1].Number) * (yyvsp[0].Number); } ++#line 1607 "y.tab.c" /* yacc.c:1646 */ break; case 27: -- --/* Line 1806 of yacc.c */ --#line 284 "parsedate.y" ++#line 284 "parsedate.y" /* yacc.c:1646 */ { -- yyRelMonth += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number); ++ yyRelMonth += (yyvsp[-1].Number) * (yyvsp[0].Number); } ++#line 1615 "y.tab.c" /* yacc.c:1646 */ break; case 28: -- --/* Line 1806 of yacc.c */ --#line 287 "parsedate.y" ++#line 287 "parsedate.y" /* yacc.c:1646 */ { -- yyRelMonth += (yyvsp[(1) - (2)].Number) * (yyvsp[(2) - (2)].Number); ++ yyRelMonth += (yyvsp[-1].Number) * (yyvsp[0].Number); } ++#line 1623 "y.tab.c" /* yacc.c:1646 */ break; case 29: -- --/* Line 1806 of yacc.c */ --#line 292 "parsedate.y" ++#line 292 "parsedate.y" /* yacc.c:1646 */ { (yyval.Meridian) = MER24; } ++#line 1631 "y.tab.c" /* yacc.c:1646 */ break; case 30: -- --/* Line 1806 of yacc.c */ --#line 295 "parsedate.y" ++#line 295 "parsedate.y" /* yacc.c:1646 */ { -- (yyval.Meridian) = (yyvsp[(1) - (1)].Meridian); ++ (yyval.Meridian) = (yyvsp[0].Meridian); } ++#line 1639 "y.tab.c" /* yacc.c:1646 */ break; -- --/* Line 1806 of yacc.c */ --#line 1832 "y.tab.c" ++#line 1643 "y.tab.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@@ -1850,7 -1850,7 +1661,7 @@@ *++yyvsp = yyval; -- /* Now `shift' the result of the reduction. Determine what state ++ /* 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. */ @@@ -1865,9 -1865,9 +1676,9 @@@ goto yynewstate; --/*------------------------------------. --| yyerrlab -- here on detecting error | --`------------------------------------*/ ++/*--------------------------------------. ++| yyerrlab -- here on detecting error. | ++`--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ @@@ -1918,20 -1918,20 +1729,20 @@@ if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an -- error, discard it. */ ++ error, discard it. */ if (yychar <= YYEOF) -- { -- /* Return failure if at end of input. */ -- if (yychar == YYEOF) -- YYABORT; -- } ++ { ++ /* Return failure if at end of input. */ ++ if (yychar == YYEOF) ++ YYABORT; ++ } else -- { -- yydestruct ("Error: discarding", -- yytoken, &yylval); -- yychar = YYEMPTY; -- } ++ { ++ yydestruct ("Error: discarding", ++ yytoken, &yylval); ++ yychar = YYEMPTY; ++ } } /* Else will try to reuse lookahead token after shifting the error @@@ -1950,7 -1950,7 +1761,7 @@@ yyerrorlab if (/*CONSTCOND*/ 0) goto yyerrorlab; -- /* Do not reclaim the symbols of the rule which action triggered ++ /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@@ -1963,35 -1963,35 +1774,37 @@@ | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: -- yyerrstatus = 3; /* Each real token shifted decrements this. */ ++ yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) -- { -- yyn += YYTERROR; -- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) -- { -- yyn = yytable[yyn]; -- if (0 < yyn) -- break; -- } -- } ++ { ++ yyn += YYTERROR; ++ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) ++ { ++ yyn = yytable[yyn]; ++ if (0 < yyn) ++ break; ++ } ++ } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) -- YYABORT; ++ YYABORT; yydestruct ("Error: popping", -- yystos[yystate], yyvsp); ++ yystos[yystate], yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } ++ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; ++ YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ @@@ -2015,7 -2015,7 +1828,7 @@@ yyabortlab yyresult = 1; goto yyreturn; --#if !defined(yyoverflow) || YYERROR_VERBOSE ++#if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@@ -2034,14 -2034,14 +1847,14 @@@ yyreturn yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); } -- /* Do not reclaim the symbols of the rule which action triggered ++ /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", -- yystos[*yyssp], yyvsp); ++ yystos[*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow @@@ -2052,14 -2052,14 +1865,9 @@@ if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif -- /* Make sure YYID is used. */ -- return YYID (yyresult); ++ return yyresult; } -- -- -- --/* Line 2067 of yacc.c */ --#line 300 "parsedate.y" ++#line 300 "parsedate.y" /* yacc.c:1906 */ /* Month and day table. */ @@@ -2567,4 -2567,4 +2375,3 @@@ main(int ac, char *av[] /* NOTREACHED */ } #endif /* TEST */ --