summaryrefslogtreecommitdiff
path: root/libmisc/getdate.c
diff options
context:
space:
mode:
authorBalint Reczey <balint@balintreczey.hu>2021-11-07 15:18:49 +0100
committerBalint Reczey <balint@balintreczey.hu>2021-11-07 15:18:49 +0100
commit749c1780621163ca5108f164861324bafa9e0ae8 (patch)
tree51001872624a692018c45bf39276df94b603fb19 /libmisc/getdate.c
parentd906ecd3b652d95af6ffb974a2f6669501bb9496 (diff)
downloadshadow-749c1780621163ca5108f164861324bafa9e0ae8.tar.gz
New upstream version 4.9upstream/4.9
Diffstat (limited to 'libmisc/getdate.c')
-rw-r--r--libmisc/getdate.c408
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. */