diff options
author | Balint Reczey <balint@balintreczey.hu> | 2021-11-07 15:18:49 +0100 |
---|---|---|
committer | Balint Reczey <balint@balintreczey.hu> | 2021-11-07 15:18:49 +0100 |
commit | 749c1780621163ca5108f164861324bafa9e0ae8 (patch) | |
tree | 51001872624a692018c45bf39276df94b603fb19 /libmisc/getdate.c | |
parent | d906ecd3b652d95af6ffb974a2f6669501bb9496 (diff) | |
download | shadow-749c1780621163ca5108f164861324bafa9e0ae8.tar.gz |
New upstream version 4.9upstream/4.9
Diffstat (limited to 'libmisc/getdate.c')
-rw-r--r-- | libmisc/getdate.c | 408 |
1 files changed, 199 insertions, 209 deletions
diff --git a/libmisc/getdate.c b/libmisc/getdate.c index b36188f6..390f9efd 100644 --- a/libmisc/getdate.c +++ b/libmisc/getdate.c @@ -1,9 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.4.1. */ +/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, - Inc. + Copyright (C) 1984, 1989-1990, 2000-2015 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 @@ -41,14 +40,11 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ -/* Undocumented macros, especially those whose name start with YY_, - are private implementation details. Do not rely on them. */ - /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.4.1" +#define YYBISON_VERSION "3.0.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -65,8 +61,8 @@ -/* First part of user prologue. */ -#line 1 "getdate.y" +/* Copy the first part of user declarations. */ +#line 1 "getdate.y" /* yacc.c:339 */ /* ** Originally written by Steven M. Bellovin <smb@research.att.com> while @@ -237,17 +233,13 @@ static int yyRelSeconds; static int yyRelYear; -#line 241 "getdate.c" +#line 237 "getdate.c" /* yacc.c:339 */ # ifndef YY_NULLPTR -# if defined __cplusplus -# if 201103L <= __cplusplus -# define YY_NULLPTR nullptr -# else -# define YY_NULLPTR 0 -# endif +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr # else -# define YY_NULLPTR ((void*)0) +# define YY_NULLPTR 0 # endif # endif @@ -311,16 +303,17 @@ extern int yydebug; /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED + union YYSTYPE { -#line 172 "getdate.y" +#line 172 "getdate.y" /* yacc.c:355 */ int Number; enum _MERIDIAN Meridian; -#line 322 "getdate.c" - +#line 315 "getdate.c" /* yacc.c:355 */ }; + typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 @@ -333,7 +326,9 @@ int yyparse (void); +/* Copy the second part of user declarations. */ +#line 332 "getdate.c" /* yacc.c:358 */ #ifdef short # undef short @@ -354,13 +349,13 @@ typedef signed char yytype_int8; #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else -typedef unsigned short yytype_uint16; +typedef unsigned short int yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else -typedef short yytype_int16; +typedef short int yytype_int16; #endif #ifndef YYSIZE_T @@ -372,7 +367,7 @@ typedef short yytype_int16; # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else -# define YYSIZE_T unsigned +# define YYSIZE_T unsigned int # endif #endif @@ -408,6 +403,15 @@ typedef short yytype_int16; # 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)) @@ -415,7 +419,7 @@ typedef short yytype_int16; # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +#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") \ @@ -435,8 +439,6 @@ typedef short yytype_int16; #endif -#define YY_ASSERT(E) ((void) (0 && (E))) - #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -579,16 +581,16 @@ union yyalloc /* YYNSTATES -- Number of states. */ #define YYNSTATES 61 +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 273 -/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ - ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex. */ + as returned by yylex, without out-of-bounds checking. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -780,22 +782,22 @@ static const yytype_uint8 yyr2[] = #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) +#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 @@ -835,37 +837,37 @@ do { \ } while (0) -/*-----------------------------------. -| Print this symbol's value on YYO. | -`-----------------------------------*/ +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ static void -yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) { - FILE *yyoutput = yyo; - YYUSE (yyoutput); + FILE *yyo = yyoutput; + YYUSE (yyo); if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) - YYPRINT (yyo, yytoknum[yytype], *yyvaluep); + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # endif YYUSE (yytype); } -/*---------------------------. -| Print this symbol on YYO. | -`---------------------------*/ +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ static void -yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) { - YYFPRINTF (yyo, "%s %s (", + YYFPRINTF (yyoutput, "%s %s (", yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); - yy_symbol_value_print (yyo, yytype, yyvaluep); - YYFPRINTF (yyo, ")"); + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); } /*------------------------------------------------------------------. @@ -899,7 +901,7 @@ do { \ static void yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) { - unsigned long yylno = yyrline[yyrule]; + unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", @@ -910,7 +912,7 @@ yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yystos[yyssp[yyi + 1 - yynrhs]], - &yyvsp[(yyi + 1) - (yynrhs)] + &(yyvsp[(yyi + 1) - (yynrhs)]) ); YYFPRINTF (stderr, "\n"); } @@ -1014,10 +1016,7 @@ yytnamerr (char *yyres, const char *yystr) case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; - else - goto append; - - append: + /* Fall through. */ default: if (yyres) yyres[yyn] = *yyp; @@ -1035,7 +1034,7 @@ yytnamerr (char *yyres, const char *yystr) if (! yyres) return yystrlen (yystr); - return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); + return yystpcpy (yyres, yystr) - yyres; } # endif @@ -1113,10 +1112,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yyarg[yycount++] = yytname[yyx]; { YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; + yysize = yysize1; } } } @@ -1128,7 +1127,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, case N: \ yyformat = S; \ break - default: /* Avoid compiler warnings. */ YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); @@ -1140,10 +1138,9 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, { YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) - yysize = yysize1; - else + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; + yysize = yysize1; } if (*yymsg_alloc < yysize) @@ -1269,33 +1266,23 @@ yyparse (void) yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; - /*------------------------------------------------------------. -| yynewstate -- push a new state, which is found in yystate. | +| yynewstate -- Push a new state, which is found in yystate. | `------------------------------------------------------------*/ -yynewstate: + 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. */ yyssp++; - -/*--------------------------------------------------------------------. -| yynewstate -- set current state (the top of the stack) to yystate. | -`--------------------------------------------------------------------*/ -yysetstate: - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - YY_ASSERT (0 <= yystate && yystate < YYNSTATES); - *yyssp = (yytype_int16) yystate; + yysetstate: + *yyssp = yystate; if (yyss + yystacksize - 1 <= yyssp) -#if !defined yyoverflow && !defined YYSTACK_RELOCATE - goto yyexhaustedlab; -#else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); + YYSIZE_T yysize = yyssp - yyss + 1; -# if defined yyoverflow +#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 @@ -1311,10 +1298,14 @@ yysetstate: &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); + yyss = yyss1; yyvs = yyvs1; } -# else /* defined YYSTACK_RELOCATE */ +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; @@ -1330,33 +1321,35 @@ yysetstate: goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif +#endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long) yystacksize)); + (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } -#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); if (yystate == YYFINAL) YYACCEPT; goto yybackup; - /*-----------. | yybackup. | `-----------*/ yybackup: + /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ @@ -1414,6 +1407,7 @@ yybackup: YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END + goto yynewstate; @@ -1428,7 +1422,7 @@ yydefault: /*-----------------------------. -| yyreduce -- do a reduction. | +| yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ @@ -1448,70 +1442,70 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 4: -#line 192 "getdate.y" + case 4: +#line 192 "getdate.y" /* yacc.c:1646 */ { yyHaveTime++; } -#line 1457 "getdate.c" +#line 1451 "getdate.c" /* yacc.c:1646 */ break; case 5: -#line 195 "getdate.y" +#line 195 "getdate.y" /* yacc.c:1646 */ { yyHaveZone++; } -#line 1465 "getdate.c" +#line 1459 "getdate.c" /* yacc.c:1646 */ break; case 6: -#line 198 "getdate.y" +#line 198 "getdate.y" /* yacc.c:1646 */ { yyHaveDate++; } -#line 1473 "getdate.c" +#line 1467 "getdate.c" /* yacc.c:1646 */ break; case 7: -#line 201 "getdate.y" +#line 201 "getdate.y" /* yacc.c:1646 */ { yyHaveDay++; } -#line 1481 "getdate.c" +#line 1475 "getdate.c" /* yacc.c:1646 */ break; case 8: -#line 204 "getdate.y" +#line 204 "getdate.y" /* yacc.c:1646 */ { yyHaveRel++; } -#line 1489 "getdate.c" +#line 1483 "getdate.c" /* yacc.c:1646 */ break; case 10: -#line 210 "getdate.y" +#line 210 "getdate.y" /* yacc.c:1646 */ { yyHour = (yyvsp[-1].Number); yyMinutes = 0; yySeconds = 0; yyMeridian = (yyvsp[0].Meridian); } -#line 1500 "getdate.c" +#line 1494 "getdate.c" /* yacc.c:1646 */ break; case 11: -#line 216 "getdate.y" +#line 216 "getdate.y" /* yacc.c:1646 */ { yyHour = (yyvsp[-3].Number); yyMinutes = (yyvsp[-1].Number); yySeconds = 0; yyMeridian = (yyvsp[0].Meridian); } -#line 1511 "getdate.c" +#line 1505 "getdate.c" /* yacc.c:1646 */ break; case 12: -#line 222 "getdate.y" +#line 222 "getdate.y" /* yacc.c:1646 */ { yyHour = (yyvsp[-3].Number); yyMinutes = (yyvsp[-1].Number); @@ -1521,22 +1515,22 @@ yyreduce: ? -(yyvsp[0].Number) % 100 + (-(yyvsp[0].Number) / 100) * 60 : - ((yyvsp[0].Number) % 100 + ((yyvsp[0].Number) / 100) * 60)); } -#line 1525 "getdate.c" +#line 1519 "getdate.c" /* yacc.c:1646 */ break; case 13: -#line 231 "getdate.y" +#line 231 "getdate.y" /* yacc.c:1646 */ { yyHour = (yyvsp[-5].Number); yyMinutes = (yyvsp[-3].Number); yySeconds = (yyvsp[-1].Number); yyMeridian = (yyvsp[0].Meridian); } -#line 1536 "getdate.c" +#line 1530 "getdate.c" /* yacc.c:1646 */ break; case 14: -#line 237 "getdate.y" +#line 237 "getdate.y" /* yacc.c:1646 */ { yyHour = (yyvsp[-5].Number); yyMinutes = (yyvsp[-3].Number); @@ -1547,71 +1541,71 @@ yyreduce: ? -(yyvsp[0].Number) % 100 + (-(yyvsp[0].Number) / 100) * 60 : - ((yyvsp[0].Number) % 100 + ((yyvsp[0].Number) / 100) * 60)); } -#line 1551 "getdate.c" +#line 1545 "getdate.c" /* yacc.c:1646 */ break; case 15: -#line 249 "getdate.y" +#line 249 "getdate.y" /* yacc.c:1646 */ { yyTimezone = (yyvsp[0].Number); } -#line 1559 "getdate.c" +#line 1553 "getdate.c" /* yacc.c:1646 */ break; case 16: -#line 252 "getdate.y" +#line 252 "getdate.y" /* yacc.c:1646 */ { yyTimezone = (yyvsp[0].Number) - 60; } -#line 1567 "getdate.c" +#line 1561 "getdate.c" /* yacc.c:1646 */ break; case 17: -#line 256 "getdate.y" +#line 256 "getdate.y" /* yacc.c:1646 */ { yyTimezone = (yyvsp[-1].Number) - 60; } -#line 1575 "getdate.c" +#line 1569 "getdate.c" /* yacc.c:1646 */ break; case 18: -#line 261 "getdate.y" +#line 261 "getdate.y" /* yacc.c:1646 */ { yyDayOrdinal = 1; yyDayNumber = (yyvsp[0].Number); } -#line 1584 "getdate.c" +#line 1578 "getdate.c" /* yacc.c:1646 */ break; case 19: -#line 265 "getdate.y" +#line 265 "getdate.y" /* yacc.c:1646 */ { yyDayOrdinal = 1; yyDayNumber = (yyvsp[-1].Number); } -#line 1593 "getdate.c" +#line 1587 "getdate.c" /* yacc.c:1646 */ break; case 20: -#line 269 "getdate.y" +#line 269 "getdate.y" /* yacc.c:1646 */ { yyDayOrdinal = (yyvsp[-1].Number); yyDayNumber = (yyvsp[0].Number); } -#line 1602 "getdate.c" +#line 1596 "getdate.c" /* yacc.c:1646 */ break; case 21: -#line 275 "getdate.y" +#line 275 "getdate.y" /* yacc.c:1646 */ { yyMonth = (yyvsp[-2].Number); yyDay = (yyvsp[0].Number); } -#line 1611 "getdate.c" +#line 1605 "getdate.c" /* yacc.c:1646 */ break; case 22: -#line 279 "getdate.y" +#line 279 "getdate.y" /* yacc.c:1646 */ { /* Interpret as YYYY/MM/DD if $1 >= 1000, otherwise as MM/DD/YY. The goal in recognizing YYYY/MM/DD is solely to support legacy @@ -1630,71 +1624,71 @@ yyreduce: yyYear = (yyvsp[0].Number); } } -#line 1634 "getdate.c" +#line 1628 "getdate.c" /* yacc.c:1646 */ break; case 23: -#line 297 "getdate.y" +#line 297 "getdate.y" /* yacc.c:1646 */ { /* ISO 8601 format. yyyy-mm-dd. */ yyYear = (yyvsp[-2].Number); yyMonth = -(yyvsp[-1].Number); yyDay = -(yyvsp[0].Number); } -#line 1645 "getdate.c" +#line 1639 "getdate.c" /* yacc.c:1646 */ break; case 24: -#line 303 "getdate.y" +#line 303 "getdate.y" /* yacc.c:1646 */ { /* e.g. 17-JUN-1992. */ yyDay = (yyvsp[-2].Number); yyMonth = (yyvsp[-1].Number); yyYear = -(yyvsp[0].Number); } -#line 1656 "getdate.c" +#line 1650 "getdate.c" /* yacc.c:1646 */ break; case 25: -#line 309 "getdate.y" +#line 309 "getdate.y" /* yacc.c:1646 */ { yyMonth = (yyvsp[-1].Number); yyDay = (yyvsp[0].Number); } -#line 1665 "getdate.c" +#line 1659 "getdate.c" /* yacc.c:1646 */ break; case 26: -#line 313 "getdate.y" +#line 313 "getdate.y" /* yacc.c:1646 */ { yyMonth = (yyvsp[-3].Number); yyDay = (yyvsp[-2].Number); yyYear = (yyvsp[0].Number); } -#line 1675 "getdate.c" +#line 1669 "getdate.c" /* yacc.c:1646 */ break; case 27: -#line 318 "getdate.y" +#line 318 "getdate.y" /* yacc.c:1646 */ { yyMonth = (yyvsp[0].Number); yyDay = (yyvsp[-1].Number); } -#line 1684 "getdate.c" +#line 1678 "getdate.c" /* yacc.c:1646 */ break; case 28: -#line 322 "getdate.y" +#line 322 "getdate.y" /* yacc.c:1646 */ { yyMonth = (yyvsp[-1].Number); yyDay = (yyvsp[-2].Number); yyYear = (yyvsp[0].Number); } -#line 1694 "getdate.c" +#line 1688 "getdate.c" /* yacc.c:1646 */ break; case 29: -#line 329 "getdate.y" +#line 329 "getdate.y" /* yacc.c:1646 */ { yyRelSeconds = -yyRelSeconds; yyRelMinutes = -yyRelMinutes; @@ -1703,155 +1697,155 @@ yyreduce: yyRelMonth = -yyRelMonth; yyRelYear = -yyRelYear; } -#line 1707 "getdate.c" +#line 1701 "getdate.c" /* yacc.c:1646 */ break; case 31: -#line 340 "getdate.y" +#line 340 "getdate.y" /* yacc.c:1646 */ { yyRelYear += (yyvsp[-1].Number) * (yyvsp[0].Number); } -#line 1715 "getdate.c" +#line 1709 "getdate.c" /* yacc.c:1646 */ break; case 32: -#line 343 "getdate.y" +#line 343 "getdate.y" /* yacc.c:1646 */ { yyRelYear += (yyvsp[-1].Number) * (yyvsp[0].Number); } -#line 1723 "getdate.c" +#line 1717 "getdate.c" /* yacc.c:1646 */ break; case 33: -#line 346 "getdate.y" +#line 346 "getdate.y" /* yacc.c:1646 */ { yyRelYear++; } -#line 1731 "getdate.c" +#line 1725 "getdate.c" /* yacc.c:1646 */ break; case 34: -#line 349 "getdate.y" +#line 349 "getdate.y" /* yacc.c:1646 */ { yyRelMonth += (yyvsp[-1].Number) * (yyvsp[0].Number); } -#line 1739 "getdate.c" +#line 1733 "getdate.c" /* yacc.c:1646 */ break; case 35: -#line 352 "getdate.y" +#line 352 "getdate.y" /* yacc.c:1646 */ { yyRelMonth += (yyvsp[-1].Number) * (yyvsp[0].Number); } -#line 1747 "getdate.c" +#line 1741 "getdate.c" /* yacc.c:1646 */ break; case 36: -#line 355 "getdate.y" +#line 355 "getdate.y" /* yacc.c:1646 */ { yyRelMonth++; } -#line 1755 "getdate.c" +#line 1749 "getdate.c" /* yacc.c:1646 */ break; case 37: -#line 358 "getdate.y" +#line 358 "getdate.y" /* yacc.c:1646 */ { yyRelDay += (yyvsp[-1].Number) * (yyvsp[0].Number); } -#line 1763 "getdate.c" +#line 1757 "getdate.c" /* yacc.c:1646 */ break; case 38: -#line 361 "getdate.y" +#line 361 "getdate.y" /* yacc.c:1646 */ { yyRelDay += (yyvsp[-1].Number) * (yyvsp[0].Number); } -#line 1771 "getdate.c" +#line 1765 "getdate.c" /* yacc.c:1646 */ break; case 39: -#line 364 "getdate.y" +#line 364 "getdate.y" /* yacc.c:1646 */ { yyRelDay++; } -#line 1779 "getdate.c" +#line 1773 "getdate.c" /* yacc.c:1646 */ break; case 40: -#line 367 "getdate.y" +#line 367 "getdate.y" /* yacc.c:1646 */ { yyRelHour += (yyvsp[-1].Number) * (yyvsp[0].Number); } -#line 1787 "getdate.c" +#line 1781 "getdate.c" /* yacc.c:1646 */ break; case 41: -#line 370 "getdate.y" +#line 370 "getdate.y" /* yacc.c:1646 */ { yyRelHour += (yyvsp[-1].Number) * (yyvsp[0].Number); } -#line 1795 "getdate.c" +#line 1789 "getdate.c" /* yacc.c:1646 */ break; case 42: -#line 373 "getdate.y" +#line 373 "getdate.y" /* yacc.c:1646 */ { yyRelHour++; } -#line 1803 "getdate.c" +#line 1797 "getdate.c" /* yacc.c:1646 */ break; case 43: -#line 376 "getdate.y" +#line 376 "getdate.y" /* yacc.c:1646 */ { yyRelMinutes += (yyvsp[-1].Number) * (yyvsp[0].Number); } -#line 1811 "getdate.c" +#line 1805 "getdate.c" /* yacc.c:1646 */ break; case 44: -#line 379 "getdate.y" +#line 379 "getdate.y" /* yacc.c:1646 */ { yyRelMinutes += (yyvsp[-1].Number) * (yyvsp[0].Number); } -#line 1819 "getdate.c" +#line 1813 "getdate.c" /* yacc.c:1646 */ break; case 45: -#line 382 "getdate.y" +#line 382 "getdate.y" /* yacc.c:1646 */ { yyRelMinutes++; } -#line 1827 "getdate.c" +#line 1821 "getdate.c" /* yacc.c:1646 */ break; case 46: -#line 385 "getdate.y" +#line 385 "getdate.y" /* yacc.c:1646 */ { yyRelSeconds += (yyvsp[-1].Number) * (yyvsp[0].Number); } -#line 1835 "getdate.c" +#line 1829 "getdate.c" /* yacc.c:1646 */ break; case 47: -#line 388 "getdate.y" +#line 388 "getdate.y" /* yacc.c:1646 */ { yyRelSeconds += (yyvsp[-1].Number) * (yyvsp[0].Number); } -#line 1843 "getdate.c" +#line 1837 "getdate.c" /* yacc.c:1646 */ break; case 48: -#line 391 "getdate.y" +#line 391 "getdate.y" /* yacc.c:1646 */ { yyRelSeconds++; } -#line 1851 "getdate.c" +#line 1845 "getdate.c" /* yacc.c:1646 */ break; case 49: -#line 397 "getdate.y" +#line 397 "getdate.y" /* yacc.c:1646 */ { if ((yyHaveTime != 0) && (yyHaveDate != 0) && (yyHaveRel == 0)) yyYear = (yyvsp[0].Number); @@ -1882,28 +1876,27 @@ yyreduce: } } } -#line 1886 "getdate.c" +#line 1880 "getdate.c" /* yacc.c:1646 */ break; case 50: -#line 430 "getdate.y" +#line 430 "getdate.y" /* yacc.c:1646 */ { (yyval.Meridian) = MER24; } -#line 1894 "getdate.c" +#line 1888 "getdate.c" /* yacc.c:1646 */ break; case 51: -#line 434 "getdate.y" +#line 434 "getdate.y" /* yacc.c:1646 */ { (yyval.Meridian) = (yyvsp[0].Meridian); } -#line 1902 "getdate.c" +#line 1896 "getdate.c" /* yacc.c:1646 */ break; -#line 1906 "getdate.c" - +#line 1900 "getdate.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -1928,13 +1921,14 @@ yyreduce: /* 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. */ - { - const int yylhs = yyr1[yyn] - YYNTOKENS; - const int yyi = yypgoto[yylhs] + *yyssp; - yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp - ? yytable[yyi] - : yydefgoto[yylhs]); - } + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; @@ -2017,10 +2011,12 @@ yyerrlab: | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: - /* Pacify compilers when the user code never invokes YYERROR and the - label yyerrorlab therefore never appears in user code. */ - if (0) - YYERROR; + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ @@ -2082,7 +2078,6 @@ yyacceptlab: yyresult = 0; goto yyreturn; - /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ @@ -2090,7 +2085,6 @@ yyabortlab: yyresult = 1; goto yyreturn; - #if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | @@ -2101,10 +2095,6 @@ yyexhaustedlab: /* Fall through. */ #endif - -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -2134,7 +2124,7 @@ yyreturn: #endif return yyresult; } -#line 439 "getdate.y" +#line 439 "getdate.y" /* yacc.c:1906 */ /* Month and day table. */ |