summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
Diffstat (limited to 'Build')
-rw-r--r--Build/source/README.hacking4
-rw-r--r--Build/source/texk/web2c/omegafonts/pl-parser.c591
-rw-r--r--Build/source/texk/web2c/omegafonts/pl-parser.h7
-rw-r--r--Build/source/texk/web2c/otps/otp-parser.c561
-rw-r--r--Build/source/texk/web2c/otps/otp-parser.h7
-rw-r--r--Build/source/texk/web2c/web2c/web2c-parser.c847
-rw-r--r--Build/source/texk/web2c/web2c/web2c-parser.h7
7 files changed, 1072 insertions, 952 deletions
diff --git a/Build/source/README.hacking b/Build/source/README.hacking
index c1acc0e5d21..6080cfc5d41 100644
--- a/Build/source/README.hacking
+++ b/Build/source/README.hacking
@@ -1,4 +1,4 @@
-Copyright (C) 2009-2011 Peter Breitenlohner <tex-live@tug.org>
+Copyright (C) 2009-2012 Peter Breitenlohner <tex-live@tug.org>
You may freely use, modify and/or distribute this file.
Modifying the TeX Live (TL) build system
@@ -18,7 +18,7 @@ automake (GNU automake) 1.11.2
ltmain.sh (GNU libtool) 2.4.2
-bison (GNU Bison) 2.4.3
+bison (GNU Bison) 2.5
flex 2.5.35
diff --git a/Build/source/texk/web2c/omegafonts/pl-parser.c b/Build/source/texk/web2c/omegafonts/pl-parser.c
index bd1e320538d..a5e09b1542c 100644
--- a/Build/source/texk/web2c/omegafonts/pl-parser.c
+++ b/Build/source/texk/web2c/omegafonts/pl-parser.c
@@ -1,9 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.4.3. */
+/* A Bison parser, made by GNU Bison 2.5. */
-/* Skeleton implementation for Bison's Yacc-like parsers in C
+/* Bison implementation for Yacc-like parsers in C
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2011 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
@@ -45,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.4.3"
+#define YYBISON_VERSION "2.5"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -66,7 +65,7 @@
/* Copy the first part of user declarations. */
-/* Line 189 of yacc.c */
+/* Line 268 of yacc.c */
#line 1 "pl-parser.y"
/* pl-parser.y: Grammar for reading property list files
@@ -110,8 +109,8 @@ along with Omega; if not, write to the Free Software Foundation, Inc.,
-/* Line 189 of yacc.c */
-#line 115 "pl-parser.c"
+/* Line 268 of yacc.c */
+#line 114 "pl-parser.c"
/* Enabling traces. */
#ifndef YYDEBUG
@@ -322,8 +321,8 @@ typedef int YYSTYPE;
/* Copy the second part of user declarations. */
-/* Line 264 of yacc.c */
-#line 327 "pl-parser.c"
+/* Line 343 of yacc.c */
+#line 326 "pl-parser.c"
#ifdef short
# undef short
@@ -426,11 +425,11 @@ YYID (yyi)
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# endif
@@ -453,24 +452,24 @@ YYID (yyi)
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
+# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
@@ -499,23 +498,7 @@ union yyalloc
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (YYID (0))
-# endif
-# endif
+# define YYCOPY_NEEDED 1
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
@@ -535,6 +518,26 @@ union yyalloc
#endif
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+/* Copy COUNT objects from FROM to TO. 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)))
+# else
+# define YYCOPY(To, From, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+ while (YYID (0))
+# endif
+# endif
+#endif /* !YYCOPY_NEEDED */
+
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
@@ -787,8 +790,8 @@ static const yytype_uint8 yyr2[] =
2, 2, 3, 3, 1
};
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+/* 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. */
static const yytype_uint8 yydefact[] =
{
@@ -881,8 +884,7 @@ static const yytype_int16 yypgoto[] =
/* 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 zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
+ number is the opposite. If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -1
static const yytype_uint16 yytable[] =
{
@@ -911,6 +913,12 @@ static const yytype_uint16 yytable[] =
0, 90
};
+#define yypact_value_is_default(yystate) \
+ ((yystate) == (-8))
+
+#define yytable_value_is_error(yytable_value) \
+ YYID (0)
+
static const yytype_int8 yycheck[] =
{
7, 7, 7, 7, 7, 7, 7, 7, 0, 5,
@@ -1005,7 +1013,6 @@ do \
{ \
yychar = (Token); \
yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK (1); \
goto yybackup; \
} \
@@ -1047,19 +1054,10 @@ while (YYID (0))
#endif
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
+/* This macro is provided for backward compatibility. */
#ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif
@@ -1251,7 +1249,6 @@ int yydebug;
# define YYMAXDEPTH 10000
#endif
-
#if YYERROR_VERBOSE
@@ -1354,115 +1351,142 @@ yytnamerr (char *yyres, const char *yystr)
}
# endif
-/* Copy into YYRESULT an error message about the unexpected token
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
- including the terminating null byte. If YYRESULT is null, do not
- copy anything; just return the number of bytes that would be
- copied. As a special case, return 0 if an ordinary "syntax error"
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
- size calculation. */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
- int yyn = yypact[yystate];
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+ about the unexpected token YYTOKEN for the state stack whose top is
+ YYSSP.
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
- return 0;
- else
+ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
+ not large enough to hold the message. In that case, also set
+ *YYMSG_ALLOC to the required number of bytes. Return 2 if the
+ required number of bytes is too large to store. */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ yytype_int16 *yyssp, int yytoken)
+{
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ /* Internationalized format string. */
+ const char *yyformat = 0;
+ /* Arguments of yyformat. */
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ /* Number of reported tokens (one for the "unexpected", one per
+ "expected"). */
+ int yycount = 0;
+
+ /* There are many possibilities here to consider:
+ - Assume YYFAIL is not used. It's too flawed to consider. See
+ <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+ 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
+ tokens because there are none.
+ - The only way there can be no lookahead present (in yychar) is if
+ this state is a consistent state with a default action. Thus,
+ detecting the absence of a lookahead is sufficient to determine
+ that there is no unexpected or expected token to report. In that
+ case, just report a simple "syntax error".
+ - Don't assume there isn't a lookahead just because this state is a
+ consistent state with a default action. There might have been a
+ previous inconsistent state, consistent state with a non-default
+ action, or user semantic action that manipulated yychar.
+ - Of course, the expected token list depends on states to have
+ correct lookahead information, and it depends on the parser not
+ to perform extra reductions after fetching a lookahead from the
+ scanner and before detecting a syntax error. Thus, state merging
+ (from LALR or IELR) and default reductions corrupt the expected
+ token list. However, the list is correct for canonical LR with
+ one exception: it will still contain any token that will not be
+ accepted due to an error action in a later state.
+ */
+ if (yytoken != YYEMPTY)
{
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-# if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
+ int yyn = yypact[*yyssp];
+ yyarg[yycount++] = yytname[yytoken];
+ if (!yypact_value_is_default (yyn))
+ {
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. In other words, skip the first -YYN actions for
+ this state because they are default actions. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yyx;
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+ && !yytable_value_is_error (yytable[yyx + yyn]))
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+ }
+ }
+ }
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
+ switch (yycount)
+ {
+# define YYCASE_(N, S) \
+ case N: \
+ yyformat = S; \
+ break
+ YYCASE_(0, YY_("syntax error"));
+ YYCASE_(1, YY_("syntax error, unexpected %s"));
+ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+ }
- if (yysize_overflow)
- return YYSIZE_MAXIMUM;
+ yysize1 = yysize + yystrlen (yyformat);
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
- if (yyresult)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yyresult;
- int yyi = 0;
- while ((*yyp = *yyf) != '\0')
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- }
- return yysize;
+ if (*yymsg_alloc < yysize)
+ {
+ *yymsg_alloc = 2 * yysize;
+ if (! (yysize <= *yymsg_alloc
+ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+ return 1;
}
+
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ {
+ char *yyp = *yymsg;
+ int yyi = 0;
+ while ((*yyp = *yyformat) != '\0')
+ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyformat += 2;
+ }
+ else
+ {
+ yyp++;
+ yyformat++;
+ }
+ }
+ return 0;
}
#endif /* YYERROR_VERBOSE */
-
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
@@ -1495,6 +1519,7 @@ yydestruct (yymsg, yytype, yyvaluep)
}
}
+
/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
@@ -1521,10 +1546,9 @@ YYSTYPE yylval;
int yynerrs;
-
-/*-------------------------.
-| yyparse or yypush_parse. |
-`-------------------------*/
+/*----------.
+| yyparse. |
+`----------*/
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
@@ -1548,8 +1572,6 @@ yyparse ()
#endif
#endif
{
-
-
int yystate;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
@@ -1704,7 +1726,7 @@ yybackup:
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
+ if (yypact_value_is_default (yyn))
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
@@ -1735,8 +1757,8 @@ yybackup:
yyn = yytable[yyn];
if (yyn <= 0)
{
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
+ if (yytable_value_is_error (yyn))
+ goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
@@ -1791,563 +1813,574 @@ yyreduce:
{
case 5:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 170 "pl-parser.y"
{ set_check_sum((yyvsp[(2) - (2)]).yint); }
break;
case 6:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 172 "pl-parser.y"
{ set_design_size((yyvsp[(2) - (2)]).yfix); }
break;
case 7:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 174 "pl-parser.y"
{ set_design_units((yyvsp[(2) - (2)]).yfix); }
break;
case 8:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 176 "pl-parser.y"
{ set_coding_scheme((yyvsp[(1) - (1)]).ystring); }
break;
case 9:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 178 "pl-parser.y"
{ set_family((yyvsp[(1) - (1)]).ystring); }
break;
case 10:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 180 "pl-parser.y"
{ set_face((yyvsp[(2) - (2)]).yint); }
break;
case 11:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 182 "pl-parser.y"
{ set_seven_bit_safe_flag((yyvsp[(1) - (1)]).yint); }
break;
case 12:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 184 "pl-parser.y"
{ set_header_word((yyvsp[(2) - (3)]).yint, (yyvsp[(3) - (3)]).yint); }
break;
case 13:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 186 "pl-parser.y"
{ init_parameters(); }
break;
case 15:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 189 "pl-parser.y"
{ init_ligkern(); }
break;
case 17:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 192 "pl-parser.y"
{ set_boundary_character((yyvsp[(2) - (2)]).yint); }
break;
case 18:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 194 "pl-parser.y"
{ init_character((yyvsp[(2) - (2)]).yint, NULL); }
break;
case 21:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 201 "pl-parser.y"
{ set_vtitle((yyvsp[(1) - (1)]).ystring); }
break;
case 22:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 203 "pl-parser.y"
{ init_map_font((yyvsp[(2) - (2)]).yint); }
break;
case 24:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 209 "pl-parser.y"
{ set_ofm_level((yyvsp[(2) - (2)]).yint); }
break;
case 25:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 211 "pl-parser.y"
{ set_font_dir((yyvsp[(1) - (1)]).yint); }
break;
case 26:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 213 "pl-parser.y"
{ init_character((yyvsp[(2) - (3)]).yint,NULL); }
break;
case 27:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 215 "pl-parser.y"
{ copy_characters((yyvsp[(2) - (5)]).yint,(yyvsp[(3) - (5)]).yint); }
break;
case 28:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 217 "pl-parser.y"
{init_font_ivalue((yyvsp[(2) - (2)]).yint);}
break;
case 30:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 220 "pl-parser.y"
{ init_font_mvalue((yyvsp[(2) - (2)]).yint);}
break;
case 32:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 223 "pl-parser.y"
{ init_font_fvalue((yyvsp[(2) - (2)]).yint);}
break;
case 34:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 226 "pl-parser.y"
{ init_font_penalty((yyvsp[(2) - (2)]).yint);}
break;
case 36:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 229 "pl-parser.y"
{ init_font_rule((yyvsp[(2) - (2)]).yint);}
break;
case 38:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 232 "pl-parser.y"
{ init_font_glue((yyvsp[(2) - (2)]).yint);}
break;
case 42:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 244 "pl-parser.y"
{ set_param_word((yyvsp[(1) - (2)]).yint, (yyvsp[(2) - (2)]).yfix); }
break;
case 43:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 246 "pl-parser.y"
{ set_param_word((yyvsp[(2) - (3)]).yint, (yyvsp[(3) - (3)]).yfix); }
break;
case 47:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 258 "pl-parser.y"
{ set_label_command((yyvsp[(2) - (2)]).yint); }
break;
case 48:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 260 "pl-parser.y"
{ set_label_command(CHAR_BOUNDARY); }
break;
case 49:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 262 "pl-parser.y"
{ set_ligature_command((yyvsp[(1) - (3)]).yint, (yyvsp[(2) - (3)]).yint, (yyvsp[(3) - (3)]).yint); }
break;
case 50:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 264 "pl-parser.y"
{ set_kerning_command((yyvsp[(2) - (3)]).yint, (yyvsp[(3) - (3)]).yfix); }
break;
case 51:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 266 "pl-parser.y"
{ set_stop_command(); }
break;
case 52:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 268 "pl-parser.y"
{ set_skip_command((yyvsp[(2) - (2)]).yint); }
break;
case 54:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 274 "pl-parser.y"
{ set_c_label_command((yyvsp[(2) - (2)]).yint); }
break;
case 55:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 276 "pl-parser.y"
{ set_c_kerning_command((yyvsp[(2) - (3)]).yint, (yyvsp[(3) - (3)]).yfix); }
break;
case 56:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 278 "pl-parser.y"
{ set_c_glue_command((yyvsp[(2) - (3)]).yint, (yyvsp[(3) - (3)]).yint); }
break;
case 57:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 280 "pl-parser.y"
{ set_c_penalty_command((yyvsp[(2) - (3)]).yint, (yyvsp[(3) - (3)]).yint); }
break;
case 58:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 282 "pl-parser.y"
{ set_c_penglue_command((yyvsp[(2) - (4)]).yint, (yyvsp[(3) - (4)]).yint, (yyvsp[(4) - (4)]).yint); }
break;
case 61:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 293 "pl-parser.y"
{ set_character_measure((yyvsp[(1) - (2)]).yint, (yyvsp[(2) - (2)]).yfix); }
break;
case 62:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 295 "pl-parser.y"
{ set_next_larger((yyvsp[(2) - (2)]).yint); }
break;
case 63:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 297 "pl-parser.y"
{ init_var_character(); }
break;
case 66:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 304 "pl-parser.y"
{ init_map(); }
break;
case 67:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 306 "pl-parser.y"
{ end_map(); }
break;
case 68:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 311 "pl-parser.y"
{ set_accent((yyvsp[(1) - (1)]).yint); }
break;
case 69:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 313 "pl-parser.y"
{ set_character_ivalue((yyvsp[(2) - (3)]).yint, (yyvsp[(3) - (3)]).yint); }
break;
case 70:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 315 "pl-parser.y"
{ set_character_mvalue((yyvsp[(2) - (3)]).yint, (yyvsp[(3) - (3)]).yint); }
break;
case 71:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 317 "pl-parser.y"
{ set_character_fvalue((yyvsp[(2) - (3)]).yint, (yyvsp[(3) - (3)]).yint); }
break;
case 72:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 319 "pl-parser.y"
{ set_character_penalty((yyvsp[(2) - (3)]).yint, (yyvsp[(3) - (3)]).yint); }
break;
case 73:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 321 "pl-parser.y"
{ set_character_rule((yyvsp[(2) - (3)]).yint, (yyvsp[(3) - (3)]).yint); }
break;
case 74:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 323 "pl-parser.y"
{ set_character_glue((yyvsp[(2) - (3)]).yint, (yyvsp[(3) - (3)]).yint); }
break;
case 77:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 335 "pl-parser.y"
{ set_extensible_piece((yyvsp[(1) - (2)]).yint, (yyvsp[(2) - (2)]).yint); }
break;
case 81:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 350 "pl-parser.y"
{ set_font_name((yyvsp[(1) - (1)]).ystring); }
break;
case 82:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 352 "pl-parser.y"
{ set_font_area((yyvsp[(1) - (1)]).ystring); }
break;
case 83:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 354 "pl-parser.y"
{ set_font_check_sum((yyvsp[(2) - (2)]).yint); }
break;
case 84:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 356 "pl-parser.y"
{ set_font_at((yyvsp[(2) - (2)]).yfix); }
break;
case 85:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 358 "pl-parser.y"
{ set_font_design_size((yyvsp[(2) - (2)]).yfix); }
break;
case 89:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 370 "pl-parser.y"
{ set_select_font((yyvsp[(2) - (2)]).yint); }
break;
case 90:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 372 "pl-parser.y"
{ set_set_char((yyvsp[(2) - (2)]).yint); }
break;
case 91:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 374 "pl-parser.y"
{ set_set_rule((yyvsp[(2) - (3)]).yfix, (yyvsp[(3) - (3)]).yfix); }
break;
case 92:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 376 "pl-parser.y"
{ set_move((yyvsp[(1) - (2)]).yint, (yyvsp[(2) - (2)]).yfix); }
break;
case 93:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 378 "pl-parser.y"
{ set_push(); }
break;
case 94:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 380 "pl-parser.y"
{ set_pop(); }
break;
case 95:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 382 "pl-parser.y"
{ set_special((yyvsp[(1) - (1)]).ystring); }
break;
case 96:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 384 "pl-parser.y"
{ set_special_hex((yyvsp[(1) - (1)]).ystring); }
break;
case 99:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 397 "pl-parser.y"
{ init_font_ivalue_entry((yyvsp[(2) - (2)]).yint); }
break;
case 104:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 410 "pl-parser.y"
{ set_font_ivalue_definition((yyvsp[(2) - (2)]).yint); }
break;
case 108:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 422 "pl-parser.y"
{ init_font_mvalue_entry((yyvsp[(2) - (2)]).yint); }
break;
case 113:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 435 "pl-parser.y"
{ set_font_mvalue_definition((yyvsp[(2) - (2)]).yfix); }
break;
case 117:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 447 "pl-parser.y"
{ init_font_fvalue_entry((yyvsp[(2) - (2)]).yint); }
break;
case 122:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 460 "pl-parser.y"
{ set_font_fvalue_definition((yyvsp[(2) - (2)]).yfix); }
break;
case 126:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 472 "pl-parser.y"
{ init_font_penalty_entry((yyvsp[(2) - (2)]).yint); }
break;
case 131:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 485 "pl-parser.y"
{ set_font_penalty_definition((yyvsp[(2) - (2)]).yint); }
break;
case 135:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 497 "pl-parser.y"
{ init_font_rule_entry((yyvsp[(2) - (2)]).yint); }
break;
case 140:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 510 "pl-parser.y"
{ set_font_rule_measure((yyvsp[(1) - (2)]).yint, (yyvsp[(2) - (2)]).yfix); }
break;
case 144:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 522 "pl-parser.y"
{ init_font_glue_entry((yyvsp[(2) - (2)]).yint); }
break;
case 149:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 535 "pl-parser.y"
{ set_font_glue_type((yyvsp[(2) - (2)]).yint); }
break;
case 150:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 537 "pl-parser.y"
{ set_font_glue_width((yyvsp[(2) - (2)]).yfix); }
break;
case 151:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 539 "pl-parser.y"
{ set_font_glue_character((yyvsp[(2) - (2)]).yint); }
break;
case 152:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 541 "pl-parser.y"
{ set_font_glue_rule((yyvsp[(2) - (3)]).yint, (yyvsp[(3) - (3)]).yint); }
break;
case 153:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 543 "pl-parser.y"
{ set_font_glue_shrink_stretch((yyvsp[(1) - (3)]).yint, (yyvsp[(2) - (3)]).yfix, (yyvsp[(3) - (3)]).yint); }
break;
-/* Line 1464 of yacc.c */
-#line 2349 "pl-parser.c"
+/* Line 1806 of yacc.c */
+#line 2371 "pl-parser.c"
default: break;
}
+ /* User semantic actions sometimes alter yychar, and that requires
+ that yytoken be updated with the new translation. We take the
+ approach of translating immediately before every use of yytoken.
+ One alternative is translating here after every semantic action,
+ but that translation would be missed if the semantic action invokes
+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
+ incorrect destructor might then be invoked immediately. In the
+ case of YYERROR or YYBACKUP, subsequent parser actions might lead
+ to an incorrect destructor call or verbose syntax error message
+ before the lookahead is translated. */
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
YYPOPSTACK (yylen);
@@ -2375,6 +2408,10 @@ yyreduce:
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
@@ -2382,37 +2419,36 @@ yyerrlab:
#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
#else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+ yyssp, yytoken)
{
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
- {
- YYSIZE_T yyalloc = 2 * yysize;
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
- if (yymsg)
- yymsg_alloc = yyalloc;
- else
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- }
- }
-
- if (0 < yysize && yysize <= yymsg_alloc)
- {
- (void) yysyntax_error (yymsg, yystate, yychar);
- yyerror (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- if (yysize != 0)
- goto yyexhaustedlab;
- }
+ char const *yymsgp = YY_("syntax error");
+ int yysyntax_error_status;
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ if (yysyntax_error_status == 0)
+ yymsgp = yymsg;
+ else if (yysyntax_error_status == 1)
+ {
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+ if (!yymsg)
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ yysyntax_error_status = 2;
+ }
+ else
+ {
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ yymsgp = yymsg;
+ }
+ }
+ yyerror (yymsgp);
+ if (yysyntax_error_status == 2)
+ goto yyexhaustedlab;
}
+# undef YYSYNTAX_ERROR
#endif
}
@@ -2471,7 +2507,7 @@ yyerrlab1:
for (;;)
{
yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
+ if (!yypact_value_is_default (yyn))
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
@@ -2530,8 +2566,13 @@ yyexhaustedlab:
yyreturn:
if (yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
+ {
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = YYTRANSLATE (yychar);
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ }
/* Do not reclaim the symbols of the rule which action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
diff --git a/Build/source/texk/web2c/omegafonts/pl-parser.h b/Build/source/texk/web2c/omegafonts/pl-parser.h
index 200c88cb961..4f6e4790d67 100644
--- a/Build/source/texk/web2c/omegafonts/pl-parser.h
+++ b/Build/source/texk/web2c/omegafonts/pl-parser.h
@@ -1,9 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.4.3. */
+/* A Bison parser, made by GNU Bison 2.5. */
-/* Skeleton interface for Bison's Yacc-like parsers in C
+/* Bison interface for Yacc-like parsers in C
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2011 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
diff --git a/Build/source/texk/web2c/otps/otp-parser.c b/Build/source/texk/web2c/otps/otp-parser.c
index e9411f82634..826368b416f 100644
--- a/Build/source/texk/web2c/otps/otp-parser.c
+++ b/Build/source/texk/web2c/otps/otp-parser.c
@@ -1,9 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.4.3. */
+/* A Bison parser, made by GNU Bison 2.5. */
-/* Skeleton implementation for Bison's Yacc-like parsers in C
+/* Bison implementation for Yacc-like parsers in C
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2011 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
@@ -45,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.4.3"
+#define YYBISON_VERSION "2.5"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -66,7 +65,7 @@
/* Copy the first part of user declarations. */
-/* Line 189 of yacc.c */
+/* Line 268 of yacc.c */
#line 25 "otp-parser.y"
#include "otp.h"
@@ -81,8 +80,8 @@ fprintf(stderr, "line %d: %s\n", line_number, msg);
}
-/* Line 189 of yacc.c */
-#line 86 "otp-parser.c"
+/* Line 268 of yacc.c */
+#line 85 "otp-parser.c"
/* Enabling traces. */
#ifndef YYDEBUG
@@ -161,8 +160,8 @@ typedef int YYSTYPE;
/* Copy the second part of user declarations. */
-/* Line 264 of yacc.c */
-#line 166 "otp-parser.c"
+/* Line 343 of yacc.c */
+#line 165 "otp-parser.c"
#ifdef short
# undef short
@@ -265,11 +264,11 @@ YYID (yyi)
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# endif
@@ -292,24 +291,24 @@ YYID (yyi)
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
+# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
@@ -338,23 +337,7 @@ union yyalloc
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (YYID (0))
-# endif
-# endif
+# define YYCOPY_NEEDED 1
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
@@ -374,6 +357,26 @@ union yyalloc
#endif
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+/* Copy COUNT objects from FROM to TO. 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)))
+# else
+# define YYCOPY(To, From, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+ while (YYID (0))
+# endif
+# endif
+#endif /* !YYCOPY_NEEDED */
+
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 5
/* YYLAST -- Last index in YYTABLE. */
@@ -553,8 +556,8 @@ static const yytype_uint8 yyr2[] =
2, 6, 3, 0, 2, 3, 4, 3
};
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+/* 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. */
static const yytype_uint8 yydefact[] =
{
@@ -621,8 +624,7 @@ static const yytype_int8 yypgoto[] =
/* 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 zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
+ number is the opposite. If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -40
static const yytype_int16 yytable[] =
{
@@ -646,6 +648,12 @@ static const yytype_int16 yytable[] =
0, 0, 0, 67
};
+#define yypact_value_is_default(yystate) \
+ ((yystate) == (-97))
+
+#define yytable_value_is_error(yytable_value) \
+ YYID (0)
+
static const yytype_int16 yycheck[] =
{
3, 97, 5, 46, 3, 22, 3, 63, 8, 3,
@@ -724,7 +732,6 @@ do \
{ \
yychar = (Token); \
yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK (1); \
goto yybackup; \
} \
@@ -766,19 +773,10 @@ while (YYID (0))
#endif
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
+/* This macro is provided for backward compatibility. */
#ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif
@@ -970,7 +968,6 @@ int yydebug;
# define YYMAXDEPTH 10000
#endif
-
#if YYERROR_VERBOSE
@@ -1073,115 +1070,142 @@ yytnamerr (char *yyres, const char *yystr)
}
# endif
-/* Copy into YYRESULT an error message about the unexpected token
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
- including the terminating null byte. If YYRESULT is null, do not
- copy anything; just return the number of bytes that would be
- copied. As a special case, return 0 if an ordinary "syntax error"
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
- size calculation. */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
- int yyn = yypact[yystate];
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+ about the unexpected token YYTOKEN for the state stack whose top is
+ YYSSP.
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
- return 0;
- else
+ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
+ not large enough to hold the message. In that case, also set
+ *YYMSG_ALLOC to the required number of bytes. Return 2 if the
+ required number of bytes is too large to store. */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ yytype_int16 *yyssp, int yytoken)
+{
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ /* Internationalized format string. */
+ const char *yyformat = 0;
+ /* Arguments of yyformat. */
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ /* Number of reported tokens (one for the "unexpected", one per
+ "expected"). */
+ int yycount = 0;
+
+ /* There are many possibilities here to consider:
+ - Assume YYFAIL is not used. It's too flawed to consider. See
+ <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+ 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
+ tokens because there are none.
+ - The only way there can be no lookahead present (in yychar) is if
+ this state is a consistent state with a default action. Thus,
+ detecting the absence of a lookahead is sufficient to determine
+ that there is no unexpected or expected token to report. In that
+ case, just report a simple "syntax error".
+ - Don't assume there isn't a lookahead just because this state is a
+ consistent state with a default action. There might have been a
+ previous inconsistent state, consistent state with a non-default
+ action, or user semantic action that manipulated yychar.
+ - Of course, the expected token list depends on states to have
+ correct lookahead information, and it depends on the parser not
+ to perform extra reductions after fetching a lookahead from the
+ scanner and before detecting a syntax error. Thus, state merging
+ (from LALR or IELR) and default reductions corrupt the expected
+ token list. However, the list is correct for canonical LR with
+ one exception: it will still contain any token that will not be
+ accepted due to an error action in a later state.
+ */
+ if (yytoken != YYEMPTY)
{
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-# if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
+ int yyn = yypact[*yyssp];
+ yyarg[yycount++] = yytname[yytoken];
+ if (!yypact_value_is_default (yyn))
+ {
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. In other words, skip the first -YYN actions for
+ this state because they are default actions. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yyx;
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+ && !yytable_value_is_error (yytable[yyx + yyn]))
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+ }
+ }
+ }
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
+ switch (yycount)
+ {
+# define YYCASE_(N, S) \
+ case N: \
+ yyformat = S; \
+ break
+ YYCASE_(0, YY_("syntax error"));
+ YYCASE_(1, YY_("syntax error, unexpected %s"));
+ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+ }
- if (yysize_overflow)
- return YYSIZE_MAXIMUM;
+ yysize1 = yysize + yystrlen (yyformat);
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
- if (yyresult)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yyresult;
- int yyi = 0;
- while ((*yyp = *yyf) != '\0')
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- }
- return yysize;
+ if (*yymsg_alloc < yysize)
+ {
+ *yymsg_alloc = 2 * yysize;
+ if (! (yysize <= *yymsg_alloc
+ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+ return 1;
}
+
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ {
+ char *yyp = *yymsg;
+ int yyi = 0;
+ while ((*yyp = *yyformat) != '\0')
+ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyformat += 2;
+ }
+ else
+ {
+ yyp++;
+ yyformat++;
+ }
+ }
+ return 0;
}
#endif /* YYERROR_VERBOSE */
-
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
@@ -1214,6 +1238,7 @@ yydestruct (yymsg, yytype, yyvaluep)
}
}
+
/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
@@ -1240,10 +1265,9 @@ YYSTYPE yylval;
int yynerrs;
-
-/*-------------------------.
-| yyparse or yypush_parse. |
-`-------------------------*/
+/*----------.
+| yyparse. |
+`----------*/
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
@@ -1267,8 +1291,6 @@ yyparse ()
#endif
#endif
{
-
-
int yystate;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
@@ -1423,7 +1445,7 @@ yybackup:
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
+ if (yypact_value_is_default (yyn))
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
@@ -1454,8 +1476,8 @@ yybackup:
yyn = yytable[yyn];
if (yyn <= 0)
{
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
+ if (yytable_value_is_error (yyn))
+ goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
@@ -1510,168 +1532,168 @@ yyreduce:
{
case 3:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 72 "otp-parser.y"
{ input_bytes=2; }
break;
case 4:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 74 "otp-parser.y"
{ input_bytes=(yyvsp[(2) - (3)]).yint; }
break;
case 5:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 79 "otp-parser.y"
{ output_bytes=2; }
break;
case 6:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 81 "otp-parser.y"
{ output_bytes=(yyvsp[(2) - (3)]).yint; }
break;
case 11:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 96 "otp-parser.y"
{ store_table((yyvsp[(1) - (4)]).ystring, (yyvsp[(3) - (4)]).yint); }
break;
case 15:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 107 "otp-parser.y"
{ add_to_table((yyvsp[(1) - (1)]).yint); }
break;
case 16:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 109 "otp-parser.y"
{ add_to_table((yyvsp[(3) - (3)]).yint); }
break;
case 19:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 119 "otp-parser.y"
{ store_state((yyvsp[(1) - (1)]).ystring); }
break;
case 20:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 121 "otp-parser.y"
{ store_state((yyvsp[(3) - (3)]).ystring); }
break;
case 25:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 136 "otp-parser.y"
{ store_alias((yyvsp[(1) - (4)]).ystring, (yyvsp[(3) - (4)]).yleft); }
break;
case 26:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 141 "otp-parser.y"
{ (yyval).yleft = StringLeft((yyvsp[(1) - (1)]).ystring); }
break;
case 27:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 143 "otp-parser.y"
{ (yyval).yleft = CompleteLeft((yyvsp[(1) - (6)]).yleft, (yyvsp[(3) - (6)]).yint, (yyvsp[(5) - (6)]).yint); }
break;
case 28:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 145 "otp-parser.y"
{ (yyval).yleft = PlusLeft((yyvsp[(1) - (5)]).yleft, (yyvsp[(3) - (5)]).yint); }
break;
case 29:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 147 "otp-parser.y"
{ (yyval).yleft = CompleteLeft((yyvsp[(1) - (4)]).yleft, (yyvsp[(3) - (4)]).yint, (yyvsp[(3) - (4)]).yint); }
break;
case 30:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 149 "otp-parser.y"
{ (yyval).yleft = (yyvsp[(1) - (1)]).yleft; }
break;
case 31:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 154 "otp-parser.y"
{ (yyval).yleft = SingleLeft((yyvsp[(1) - (1)]).yint); }
break;
case 32:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 156 "otp-parser.y"
{ (yyval).yleft = DoubleLeft((yyvsp[(1) - (3)]).yint, (yyvsp[(3) - (3)]).yint); }
break;
case 33:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 158 "otp-parser.y"
{ (yyval).yleft = WildCard(); }
break;
case 34:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 160 "otp-parser.y"
{ (yyval).yleft = NotChoiceLeft((yyvsp[(3) - (4)]).ylleft); }
break;
case 35:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 162 "otp-parser.y"
{ (yyval).yleft = ChoiceLeft((yyvsp[(2) - (3)]).ylleft); }
break;
case 36:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 164 "otp-parser.y"
{ (yyval).yleft = lookup_alias((yyvsp[(2) - (3)]).ystring); }
break;
case 37:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 169 "otp-parser.y"
{ (yyval).ylleft = llist1((yyvsp[(1) - (1)]).yleft); }
break;
case 38:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 171 "otp-parser.y"
{ (yyval).ylleft = lappend1((yyvsp[(1) - (3)]).ylleft, (yyvsp[(3) - (3)]).yleft); }
break;
case 39:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 176 "otp-parser.y"
{
for(cur_state=0; cur_state<no_states; cur_state++) {
@@ -1688,105 +1710,105 @@ yyreduce:
case 42:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 196 "otp-parser.y"
{ states[cur_state].no_exprs++; }
break;
case 43:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 198 "otp-parser.y"
{ out_left((yyvsp[(3) - (3)]).ylleft); right_offset=0; }
break;
case 44:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 200 "otp-parser.y"
{ right_offset=OTP_PBACK_OFFSET; }
break;
case 45:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 202 "otp-parser.y"
{ fill_in_left(); }
break;
case 48:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 212 "otp-parser.y"
{ cur_state = 0; }
break;
case 49:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 214 "otp-parser.y"
{ cur_state = lookup_state((yyvsp[(2) - (3)]).ystring); }
break;
case 50:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 219 "otp-parser.y"
{ (yyval).ylleft = lappend((yyvsp[(1) - (3)]).ylleft, lappend((yyvsp[(2) - (3)]).ylleft, (yyvsp[(3) - (3)]).ylleft)); }
break;
case 51:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 221 "otp-parser.y"
{ (yyval).ylleft = lappend((yyvsp[(1) - (2)]).ylleft, (yyvsp[(2) - (2)]).ylleft); }
break;
case 52:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 226 "otp-parser.y"
{ (yyval).ylleft = nil; }
break;
case 53:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 228 "otp-parser.y"
{ (yyval).ylleft = llist1(BeginningLeft()); }
break;
case 54:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 233 "otp-parser.y"
{ (yyval).ylleft = nil; }
break;
case 55:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 235 "otp-parser.y"
{ (yyval).ylleft = llist1(EndLeft()); }
break;
case 56:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 240 "otp-parser.y"
{ (yyval).ylleft = llist1((yyvsp[(1) - (1)]).yleft); }
break;
case 57:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 242 "otp-parser.y"
{ (yyval).ylleft = lappend1((yyvsp[(1) - (2)]).ylleft, (yyvsp[(2) - (2)]).yleft); }
break;
case 60:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 252 "otp-parser.y"
{
len=strlen((yyvsp[(1) - (1)]).ystring);
@@ -1798,35 +1820,35 @@ yyreduce:
case 61:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 259 "otp-parser.y"
{ out_right(OTP_RIGHT_NUM, (yyvsp[(1) - (1)]).yint); }
break;
case 62:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 261 "otp-parser.y"
{ out_right(OTP_RIGHT_CHAR, (yyvsp[(2) - (2)]).yint); }
break;
case 63:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 263 "otp-parser.y"
{ out_right(OTP_RIGHT_LCHAR, 0); }
break;
case 64:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 265 "otp-parser.y"
{ out_right(OTP_RIGHT_LCHAR, (yyvsp[(5) - (6)]).yint); }
break;
case 65:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 267 "otp-parser.y"
{
out_right(OTP_RIGHT_SOME, 0);
@@ -1836,7 +1858,7 @@ yyreduce:
case 66:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 272 "otp-parser.y"
{
out_right(OTP_RIGHT_SOME, (yyvsp[(5) - (6)]).yint);
@@ -1846,7 +1868,7 @@ yyreduce:
case 67:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 277 "otp-parser.y"
{
out_right(OTP_RIGHT_SOME, 0);
@@ -1856,7 +1878,7 @@ yyreduce:
case 68:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 282 "otp-parser.y"
{
out_right(OTP_RIGHT_SOME, (yyvsp[(5) - (8)]).yint);
@@ -1866,122 +1888,133 @@ yyreduce:
case 69:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 287 "otp-parser.y"
{ out_right(OTP_RIGHT_OUTPUT, 0); }
break;
case 71:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 293 "otp-parser.y"
{ out_int(OTP_ADD, 0); }
break;
case 72:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 295 "otp-parser.y"
{ out_int(OTP_SUB, 0); }
break;
case 73:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 297 "otp-parser.y"
{ out_int(OTP_MULT, 0); }
break;
case 74:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 299 "otp-parser.y"
{ out_int(OTP_DIV, 0); }
break;
case 75:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 301 "otp-parser.y"
{ out_int(OTP_MOD, 0); }
break;
case 76:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 303 "otp-parser.y"
{ out_int(OTP_PUSH_NUM, lookup_table((yyvsp[(1) - (1)]).ystring)); }
break;
case 77:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 305 "otp-parser.y"
{ out_int(OTP_LOOKUP, 0); }
break;
case 78:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 310 "otp-parser.y"
{ out_int(OTP_PUSH_NUM, (yyvsp[(1) - (1)]).yint); }
break;
case 79:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 312 "otp-parser.y"
{ out_int(OTP_PUSH_CHAR, (yyvsp[(2) - (2)]).yint); }
break;
case 80:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 314 "otp-parser.y"
{ out_int(OTP_PUSH_LCHAR, 0); }
break;
case 81:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 316 "otp-parser.y"
{ out_int(OTP_PUSH_LCHAR, (yyvsp[(5) - (6)]).yint); }
break;
case 84:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 323 "otp-parser.y"
{ out_int(OTP_STATE_CHANGE, 0); }
break;
case 85:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 325 "otp-parser.y"
{ out_int(OTP_STATE_CHANGE, lookup_state((yyvsp[(2) - (3)]).ystring)); }
break;
case 86:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 327 "otp-parser.y"
{ out_int(OTP_STATE_PUSH, lookup_state((yyvsp[(3) - (4)]).ystring)); }
break;
case 87:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 329 "otp-parser.y"
{ out_int(OTP_STATE_POP, 0); }
break;
-/* Line 1464 of yacc.c */
-#line 1983 "otp-parser.c"
+/* Line 1806 of yacc.c */
+#line 2005 "otp-parser.c"
default: break;
}
+ /* User semantic actions sometimes alter yychar, and that requires
+ that yytoken be updated with the new translation. We take the
+ approach of translating immediately before every use of yytoken.
+ One alternative is translating here after every semantic action,
+ but that translation would be missed if the semantic action invokes
+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
+ incorrect destructor might then be invoked immediately. In the
+ case of YYERROR or YYBACKUP, subsequent parser actions might lead
+ to an incorrect destructor call or verbose syntax error message
+ before the lookahead is translated. */
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
YYPOPSTACK (yylen);
@@ -2009,6 +2042,10 @@ yyreduce:
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
@@ -2016,37 +2053,36 @@ yyerrlab:
#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
#else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+ yyssp, yytoken)
{
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
- {
- YYSIZE_T yyalloc = 2 * yysize;
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
- if (yymsg)
- yymsg_alloc = yyalloc;
- else
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- }
- }
-
- if (0 < yysize && yysize <= yymsg_alloc)
- {
- (void) yysyntax_error (yymsg, yystate, yychar);
- yyerror (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- if (yysize != 0)
- goto yyexhaustedlab;
- }
+ char const *yymsgp = YY_("syntax error");
+ int yysyntax_error_status;
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ if (yysyntax_error_status == 0)
+ yymsgp = yymsg;
+ else if (yysyntax_error_status == 1)
+ {
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+ if (!yymsg)
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ yysyntax_error_status = 2;
+ }
+ else
+ {
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ yymsgp = yymsg;
+ }
+ }
+ yyerror (yymsgp);
+ if (yysyntax_error_status == 2)
+ goto yyexhaustedlab;
}
+# undef YYSYNTAX_ERROR
#endif
}
@@ -2105,7 +2141,7 @@ yyerrlab1:
for (;;)
{
yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
+ if (!yypact_value_is_default (yyn))
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
@@ -2164,8 +2200,13 @@ yyexhaustedlab:
yyreturn:
if (yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
+ {
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = YYTRANSLATE (yychar);
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ }
/* Do not reclaim the symbols of the rule which action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
@@ -2190,7 +2231,7 @@ yyreturn:
-/* Line 1684 of yacc.c */
+/* Line 2067 of yacc.c */
#line 331 "otp-parser.y"
diff --git a/Build/source/texk/web2c/otps/otp-parser.h b/Build/source/texk/web2c/otps/otp-parser.h
index d88582d1c82..c63f79293e9 100644
--- a/Build/source/texk/web2c/otps/otp-parser.h
+++ b/Build/source/texk/web2c/otps/otp-parser.h
@@ -1,9 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.4.3. */
+/* A Bison parser, made by GNU Bison 2.5. */
-/* Skeleton interface for Bison's Yacc-like parsers in C
+/* Bison interface for Yacc-like parsers in C
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2011 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
diff --git a/Build/source/texk/web2c/web2c/web2c-parser.c b/Build/source/texk/web2c/web2c/web2c-parser.c
index dcfc9754e46..70f1e012d54 100644
--- a/Build/source/texk/web2c/web2c/web2c-parser.c
+++ b/Build/source/texk/web2c/web2c/web2c-parser.c
@@ -1,9 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.4.3. */
+/* A Bison parser, made by GNU Bison 2.5. */
-/* Skeleton implementation for Bison's Yacc-like parsers in C
+/* Bison implementation for Yacc-like parsers in C
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2011 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
@@ -45,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.4.3"
+#define YYBISON_VERSION "2.5"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -66,7 +65,7 @@
/* Copy the first part of user declarations. */
-/* Line 189 of yacc.c */
+/* Line 268 of yacc.c */
#line 24 "web2c-parser.y"
#include "web2c.h"
@@ -104,8 +103,8 @@ static void gen_function_head (void);
static boolean doreturn (string);
-/* Line 189 of yacc.c */
-#line 109 "web2c-parser.c"
+/* Line 268 of yacc.c */
+#line 108 "web2c-parser.c"
/* Enabling traces. */
#ifndef YYDEBUG
@@ -264,8 +263,8 @@ typedef int YYSTYPE;
/* Copy the second part of user declarations. */
-/* Line 264 of yacc.c */
-#line 269 "web2c-parser.c"
+/* Line 343 of yacc.c */
+#line 268 "web2c-parser.c"
#ifdef short
# undef short
@@ -368,11 +367,11 @@ YYID (yyi)
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
-# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# endif
@@ -395,24 +394,24 @@ YYID (yyi)
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
-# if (defined __cplusplus && ! defined _STDLIB_H \
+# if (defined __cplusplus && ! defined EXIT_SUCCESS \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# ifndef _STDLIB_H
-# define _STDLIB_H 1
+# ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
-# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
# ifndef YYFREE
# define YYFREE free
-# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
@@ -441,23 +440,7 @@ union yyalloc
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined __GNUC__ && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (YYID (0))
-# endif
-# endif
+# define YYCOPY_NEEDED 1
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
@@ -477,6 +460,26 @@ union yyalloc
#endif
+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
+/* Copy COUNT objects from FROM to TO. 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)))
+# else
+# define YYCOPY(To, From, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+ while (YYID (0))
+# endif
+# endif
+#endif /* !YYCOPY_NEEDED */
+
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
@@ -849,8 +852,8 @@ static const yytype_uint8 yyr2[] =
0, 0, 5, 0, 0, 5
};
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+/* 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. */
static const yytype_uint16 yydefact[] =
{
@@ -1015,8 +1018,7 @@ static const yytype_int16 yypgoto[] =
/* 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 zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
+ number is the opposite. If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -314
static const yytype_int16 yytable[] =
{
@@ -1079,6 +1081,12 @@ static const yytype_int16 yytable[] =
352, 353, 354
};
+#define yypact_value_is_default(yystate) \
+ ((yystate) == (-256))
+
+#define yytable_value_is_error(yytable_value) \
+ ((yytable_value) == (-314))
+
static const yytype_int16 yycheck[] =
{
147, 140, 36, 142, 249, 260, 10, 25, 3, 254,
@@ -1229,7 +1237,6 @@ do \
{ \
yychar = (Token); \
yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK (1); \
goto yybackup; \
} \
@@ -1271,19 +1278,10 @@ while (YYID (0))
#endif
-/* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
+/* This macro is provided for backward compatibility. */
#ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
-# define YY_LOCATION_PRINT(File, Loc) \
- fprintf (File, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column)
-# else
-# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif
@@ -1475,7 +1473,6 @@ int yydebug;
# define YYMAXDEPTH 10000
#endif
-
#if YYERROR_VERBOSE
@@ -1578,115 +1575,142 @@ yytnamerr (char *yyres, const char *yystr)
}
# endif
-/* Copy into YYRESULT an error message about the unexpected token
- YYCHAR while in state YYSTATE. Return the number of bytes copied,
- including the terminating null byte. If YYRESULT is null, do not
- copy anything; just return the number of bytes that would be
- copied. As a special case, return 0 if an ordinary "syntax error"
- message will do. Return YYSIZE_MAXIMUM if overflow occurs during
- size calculation. */
-static YYSIZE_T
-yysyntax_error (char *yyresult, int yystate, int yychar)
-{
- int yyn = yypact[yystate];
+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
+ about the unexpected token YYTOKEN for the state stack whose top is
+ YYSSP.
- if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
- return 0;
- else
+ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
+ not large enough to hold the message. In that case, also set
+ *YYMSG_ALLOC to the required number of bytes. Return 2 if the
+ required number of bytes is too large to store. */
+static int
+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
+ yytype_int16 *yyssp, int yytoken)
+{
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ /* Internationalized format string. */
+ const char *yyformat = 0;
+ /* Arguments of yyformat. */
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ /* Number of reported tokens (one for the "unexpected", one per
+ "expected"). */
+ int yycount = 0;
+
+ /* There are many possibilities here to consider:
+ - Assume YYFAIL is not used. It's too flawed to consider. See
+ <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
+ 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
+ tokens because there are none.
+ - The only way there can be no lookahead present (in yychar) is if
+ this state is a consistent state with a default action. Thus,
+ detecting the absence of a lookahead is sufficient to determine
+ that there is no unexpected or expected token to report. In that
+ case, just report a simple "syntax error".
+ - Don't assume there isn't a lookahead just because this state is a
+ consistent state with a default action. There might have been a
+ previous inconsistent state, consistent state with a non-default
+ action, or user semantic action that manipulated yychar.
+ - Of course, the expected token list depends on states to have
+ correct lookahead information, and it depends on the parser not
+ to perform extra reductions after fetching a lookahead from the
+ scanner and before detecting a syntax error. Thus, state merging
+ (from LALR or IELR) and default reductions corrupt the expected
+ token list. However, the list is correct for canonical LR with
+ one exception: it will still contain any token that will not be
+ accepted due to an error action in a later state.
+ */
+ if (yytoken != YYEMPTY)
{
- int yytype = YYTRANSLATE (yychar);
- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
- YYSIZE_T yysize = yysize0;
- YYSIZE_T yysize1;
- int yysize_overflow = 0;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- int yyx;
-
-# if 0
- /* This is so xgettext sees the translatable formats that are
- constructed on the fly. */
- YY_("syntax error, unexpected %s");
- YY_("syntax error, unexpected %s, expecting %s");
- YY_("syntax error, unexpected %s, expecting %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s");
- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
-# endif
- char *yyfmt;
- char const *yyf;
- static char const yyunexpected[] = "syntax error, unexpected %s";
- static char const yyexpecting[] = ", expecting %s";
- static char const yyor[] = " or %s";
- char yyformat[sizeof yyunexpected
- + sizeof yyexpecting - 1
- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
- * (sizeof yyor - 1))];
- char const *yyprefix = yyexpecting;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 1;
-
- yyarg[0] = yytname[yytype];
- yyfmt = yystpcpy (yyformat, yyunexpected);
-
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- yyformat[sizeof yyunexpected - 1] = '\0';
- break;
- }
- yyarg[yycount++] = yytname[yyx];
- yysize1 = yysize + yytnamerr (0, yytname[yyx]);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
- yyfmt = yystpcpy (yyfmt, yyprefix);
- yyprefix = yyor;
- }
+ int yyn = yypact[*yyssp];
+ yyarg[yycount++] = yytname[yytoken];
+ if (!yypact_value_is_default (yyn))
+ {
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. In other words, skip the first -YYN actions for
+ this state because they are default actions. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yyx;
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
+ && !yytable_value_is_error (yytable[yyx + yyn]))
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ if (! (yysize <= yysize1
+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
+ }
+ }
+ }
- yyf = YY_(yyformat);
- yysize1 = yysize + yystrlen (yyf);
- yysize_overflow |= (yysize1 < yysize);
- yysize = yysize1;
+ switch (yycount)
+ {
+# define YYCASE_(N, S) \
+ case N: \
+ yyformat = S; \
+ break
+ YYCASE_(0, YY_("syntax error"));
+ YYCASE_(1, YY_("syntax error, unexpected %s"));
+ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
+ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
+ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
+ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
+# undef YYCASE_
+ }
- if (yysize_overflow)
- return YYSIZE_MAXIMUM;
+ yysize1 = yysize + yystrlen (yyformat);
+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
+ return 2;
+ yysize = yysize1;
- if (yyresult)
- {
- /* Avoid sprintf, as that infringes on the user's name space.
- Don't have undefined behavior even if the translation
- produced a string with the wrong number of "%s"s. */
- char *yyp = yyresult;
- int yyi = 0;
- while ((*yyp = *yyf) != '\0')
- {
- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyf += 2;
- }
- else
- {
- yyp++;
- yyf++;
- }
- }
- }
- return yysize;
+ if (*yymsg_alloc < yysize)
+ {
+ *yymsg_alloc = 2 * yysize;
+ if (! (yysize <= *yymsg_alloc
+ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
+ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
+ return 1;
}
+
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ {
+ char *yyp = *yymsg;
+ int yyi = 0;
+ while ((*yyp = *yyformat) != '\0')
+ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyformat += 2;
+ }
+ else
+ {
+ yyp++;
+ yyformat++;
+ }
+ }
+ return 0;
}
#endif /* YYERROR_VERBOSE */
-
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
@@ -1719,6 +1743,7 @@ yydestruct (yymsg, yytype, yyvaluep)
}
}
+
/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
@@ -1745,10 +1770,9 @@ YYSTYPE yylval;
int yynerrs;
-
-/*-------------------------.
-| yyparse or yypush_parse. |
-`-------------------------*/
+/*----------.
+| yyparse. |
+`----------*/
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
@@ -1772,8 +1796,6 @@ yyparse ()
#endif
#endif
{
-
-
int yystate;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
@@ -1928,7 +1950,7 @@ yybackup:
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
+ if (yypact_value_is_default (yyn))
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
@@ -1959,8 +1981,8 @@ yybackup:
yyn = yytable[yyn];
if (yyn <= 0)
{
- if (yyn == 0 || yyn == YYTABLE_NINF)
- goto yyerrlab;
+ if (yytable_value_is_error (yyn))
+ goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
@@ -2015,7 +2037,7 @@ yyreduce:
{
case 2:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 66 "web2c-parser.y"
{
printf ("#define %s\n", uppercasify (program_name));
@@ -2026,21 +2048,21 @@ yyreduce:
case 3:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 73 "web2c-parser.y"
{ printf ("\n#include \"%s\"\n", coerce_name); }
break;
case 4:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 76 "web2c-parser.y"
{ YYACCEPT; }
break;
case 7:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 86 "web2c-parser.y"
{
ii = add_to_table (last_id);
@@ -2050,7 +2072,7 @@ yyreduce:
case 8:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 91 "web2c-parser.y"
{
ii = add_to_table (last_id);
@@ -2060,7 +2082,7 @@ yyreduce:
case 9:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 96 "web2c-parser.y"
{
ii = add_to_table (last_id);
@@ -2070,7 +2092,7 @@ yyreduce:
case 10:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 101 "web2c-parser.y"
{
ii = add_to_table (last_id);
@@ -2080,7 +2102,7 @@ yyreduce:
case 11:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 106 "web2c-parser.y"
{
ii = add_to_table (last_id);
@@ -2090,7 +2112,7 @@ yyreduce:
case 12:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 111 "web2c-parser.y"
{
ii = add_to_table (last_id);
@@ -2100,7 +2122,7 @@ yyreduce:
case 13:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 116 "web2c-parser.y"
{
ii = add_to_table (last_id);
@@ -2110,7 +2132,7 @@ yyreduce:
case 14:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 121 "web2c-parser.y"
{
ii = add_to_table (last_id);
@@ -2124,7 +2146,7 @@ yyreduce:
case 15:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 130 "web2c-parser.y"
{
ii = add_to_table (last_id);
@@ -2134,7 +2156,7 @@ yyreduce:
case 23:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 157 "web2c-parser.y"
{ if (block_level > 0) my_output("{\n ");
indent++; block_level++;
@@ -2143,7 +2165,7 @@ yyreduce:
case 24:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 162 "web2c-parser.y"
{ if (block_level == 2) {
if (strcmp(fn_return_type, "void")) {
@@ -2162,14 +2184,14 @@ yyreduce:
case 25:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 176 "web2c-parser.y"
{ doing_statements = true; }
break;
case 26:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 178 "web2c-parser.y"
{
if (block_level == 2) {
@@ -2201,35 +2223,35 @@ yyreduce:
case 28:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 208 "web2c-parser.y"
{ my_output("/*"); }
break;
case 29:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 210 "web2c-parser.y"
{ my_output("*/"); }
break;
case 32:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 218 "web2c-parser.y"
{ my_output(temp); }
break;
case 34:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 224 "web2c-parser.y"
{ new_line(); }
break;
case 37:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 233 "web2c-parser.y"
{ /* `#define' must be in column 1 for pcc. */
unsigned save = indent;
@@ -2242,7 +2264,7 @@ yyreduce:
case 38:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 241 "web2c-parser.y"
{ ii = add_to_table (last_id);
sym_table[ii].typ = const_id_tok;
@@ -2252,28 +2274,28 @@ yyreduce:
case 39:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 245 "web2c-parser.y"
{ my_output ("("); }
break;
case 40:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 246 "web2c-parser.y"
{ my_output (")"); }
break;
case 41:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 247 "web2c-parser.y"
{ sym_table[ii].val = last_i_num; new_line(); }
break;
case 42:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 252 "web2c-parser.y"
{
sscanf (temp, "%ld", &last_i_num);
@@ -2286,252 +2308,252 @@ yyreduce:
case 43:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 259 "web2c-parser.y"
{ my_output(temp); (yyval) = ex_real; }
break;
case 44:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 260 "web2c-parser.y"
{ (yyval) = 0; }
break;
case 45:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 261 "web2c-parser.y"
{ (yyval) = ex_32; }
break;
case 46:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 266 "web2c-parser.y"
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
case 47:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 267 "web2c-parser.y"
{ my_output ("+"); }
break;
case 48:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 268 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 49:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 269 "web2c-parser.y"
{ my_output ("-"); }
break;
case 50:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 270 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 51:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 271 "web2c-parser.y"
{ my_output ("*"); }
break;
case 52:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 272 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 53:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 273 "web2c-parser.y"
{ my_output ("/"); }
break;
case 54:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 274 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 55:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 275 "web2c-parser.y"
{ my_output ("=="); }
break;
case 56:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 276 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 57:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 277 "web2c-parser.y"
{ my_output ("!="); }
break;
case 58:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 278 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 59:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 279 "web2c-parser.y"
{ my_output ("%"); }
break;
case 60:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 280 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 61:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 281 "web2c-parser.y"
{ my_output ("<"); }
break;
case 62:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 282 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 63:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 283 "web2c-parser.y"
{ my_output (">"); }
break;
case 64:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 284 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 65:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 285 "web2c-parser.y"
{ my_output ("<="); }
break;
case 66:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 286 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 67:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 287 "web2c-parser.y"
{ my_output (">="); }
break;
case 68:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 288 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 69:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 289 "web2c-parser.y"
{ my_output ("&&"); }
break;
case 70:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 290 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 71:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 291 "web2c-parser.y"
{ my_output ("||"); }
break;
case 72:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 292 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 73:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 293 "web2c-parser.y"
{ my_output ("/ ((double)"); }
break;
case 74:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 294 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); my_output (")"); }
break;
case 75:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 295 "web2c-parser.y"
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
case 76:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 300 "web2c-parser.y"
{ my_output ("("); }
break;
case 77:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 302 "web2c-parser.y"
{ my_output (")"); (yyval) = (yyvsp[(1) - (4)]); }
break;
case 79:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 308 "web2c-parser.y"
{
char s[132];
@@ -2542,7 +2564,7 @@ yyreduce:
case 80:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 314 "web2c-parser.y"
{
char s[5];
@@ -2553,21 +2575,21 @@ yyreduce:
case 81:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 322 "web2c-parser.y"
{ my_output (last_id); }
break;
case 86:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 334 "web2c-parser.y"
{ my_output ("typedef"); }
break;
case 87:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 336 "web2c-parser.y"
{
ii = add_to_table(last_id);
@@ -2579,7 +2601,7 @@ yyreduce:
case 88:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 343 "web2c-parser.y"
{
array_bounds[0] = 0;
@@ -2589,7 +2611,7 @@ yyreduce:
case 89:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 348 "web2c-parser.y"
{
if (*array_offset) {
@@ -2604,7 +2626,7 @@ yyreduce:
case 92:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 366 "web2c-parser.y"
{
if (last_type >= 0)
@@ -2642,7 +2664,7 @@ yyreduce:
case 97:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 412 "web2c-parser.y"
{
lower_bound = upper_bound;
@@ -2654,7 +2676,7 @@ yyreduce:
case 98:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 419 "web2c-parser.y"
{
lower_bound = upper_bound;
@@ -2666,7 +2688,7 @@ yyreduce:
case 99:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 426 "web2c-parser.y"
{ /* We've changed some constants into dynamic variables.
To avoid changing all the subrange decls, just use integer.
@@ -2680,7 +2702,7 @@ yyreduce:
case 100:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 435 "web2c-parser.y"
{ /* Same as var_id_tok, to avoid changing type definitions.
Should keep track of the variables we use in this way
@@ -2694,7 +2716,7 @@ yyreduce:
case 101:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 447 "web2c-parser.y"
{
if (last_type >= 0) {
@@ -2710,7 +2732,7 @@ yyreduce:
case 102:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 461 "web2c-parser.y"
{ if (last_type >= 0)
sym_table[last_type].var_not_needed = true;
@@ -2719,7 +2741,7 @@ yyreduce:
case 104:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 466 "web2c-parser.y"
{ if (last_type >= 0)
sym_table[last_type].var_not_needed = true;
@@ -2728,7 +2750,7 @@ yyreduce:
case 105:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 470 "web2c-parser.y"
{ if (last_type >= 0)
sym_table[last_type].var_not_needed = true;
@@ -2737,7 +2759,7 @@ yyreduce:
case 106:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 477 "web2c-parser.y"
{
if (last_type >= 0) {
@@ -2754,14 +2776,14 @@ yyreduce:
case 109:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 497 "web2c-parser.y"
{ compute_array_bounds(); }
break;
case 110:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 499 "web2c-parser.y"
{
lower_bound = sym_table[l_s].val;
@@ -2774,28 +2796,28 @@ yyreduce:
case 112:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 512 "web2c-parser.y"
{ my_output ("struct"); my_output ("{"); indent++; }
break;
case 113:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 514 "web2c-parser.y"
{ indent--; my_output ("}"); semicolon(); }
break;
case 116:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 522 "web2c-parser.y"
{ field_list[0] = 0; }
break;
case 117:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 524 "web2c-parser.y"
{
/*array_bounds[0] = 0;
@@ -2805,7 +2827,7 @@ yyreduce:
case 118:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 529 "web2c-parser.y"
{ int i=0, j; char ltemp[80];
while(field_list[i++] == '!') {
@@ -2824,7 +2846,7 @@ yyreduce:
case 122:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 550 "web2c-parser.y"
{ int i=0, j=0;
while (field_list[i] == '!')
@@ -2841,7 +2863,7 @@ yyreduce:
case 123:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 562 "web2c-parser.y"
{ int i=0, j=0;
while (field_list[i] == '!')
@@ -2856,21 +2878,21 @@ yyreduce:
case 124:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 575 "web2c-parser.y"
{ my_output ("text /* of "); }
break;
case 125:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 577 "web2c-parser.y"
{ my_output ("*/"); }
break;
case 130:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 591 "web2c-parser.y"
{
var_list[0] = 0;
@@ -2883,7 +2905,7 @@ yyreduce:
case 131:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 599 "web2c-parser.y"
{
array_bounds[0] = 0;
@@ -2893,14 +2915,14 @@ yyreduce:
case 132:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 604 "web2c-parser.y"
{ fixup_var_list(); }
break;
case 135:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 612 "web2c-parser.y"
{ int i=0, j=0;
ii = add_to_table(last_id);
@@ -2919,7 +2941,7 @@ yyreduce:
case 136:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 626 "web2c-parser.y"
{ int i=0, j=0;
ii = add_to_table(last_id);
@@ -2938,7 +2960,7 @@ yyreduce:
case 137:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 640 "web2c-parser.y"
{ int i=0, j=0;
ii = add_to_table(last_id);
@@ -2957,7 +2979,7 @@ yyreduce:
case 139:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 658 "web2c-parser.y"
{ my_output ("void mainbody( void ) {");
indent++;
@@ -2967,7 +2989,7 @@ yyreduce:
case 140:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 663 "web2c-parser.y"
{ indent--;
my_output ("}");
@@ -2977,28 +2999,28 @@ yyreduce:
case 143:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 675 "web2c-parser.y"
{ new_line(); remove_locals(); }
break;
case 144:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 677 "web2c-parser.y"
{ new_line(); remove_locals(); }
break;
case 147:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 686 "web2c-parser.y"
{ proc_is_noreturn = 1; }
break;
case 149:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 692 "web2c-parser.y"
{ ii = add_to_table(last_id);
if (debug)
@@ -3015,7 +3037,7 @@ yyreduce:
case 150:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 704 "web2c-parser.y"
{ strcpy(fn_return_type, "void");
do_proc_args();
@@ -3024,7 +3046,7 @@ yyreduce:
case 151:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 708 "web2c-parser.y"
{ ii = l_s;
if (debug)
@@ -3037,7 +3059,7 @@ yyreduce:
case 152:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 716 "web2c-parser.y"
{ strcpy(fn_return_type, "void");
do_proc_args();
@@ -3047,7 +3069,7 @@ yyreduce:
case 153:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 724 "web2c-parser.y"
{
strcpy (z_id, last_id);
@@ -3058,7 +3080,7 @@ yyreduce:
case 154:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 730 "web2c-parser.y"
{ sprintf (z_id, "z%s", last_id);
ids_paramed = 0;
@@ -3072,14 +3094,14 @@ yyreduce:
case 158:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 746 "web2c-parser.y"
{ ids_typed = ids_paramed; }
break;
case 159:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 748 "web2c-parser.y"
{ int i, need_var;
i = search_table(last_id);
@@ -3097,21 +3119,21 @@ yyreduce:
case 160:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 762 "web2c-parser.y"
{var_formals = 0; }
break;
case 162:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 763 "web2c-parser.y"
{var_formals = 1; }
break;
case 167:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 775 "web2c-parser.y"
{
orig_out = out;
@@ -3127,7 +3149,7 @@ yyreduce:
case 168:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 786 "web2c-parser.y"
{
normal();
@@ -3138,7 +3160,7 @@ yyreduce:
case 169:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 792 "web2c-parser.y"
{
get_result_type(fn_return_type);
@@ -3149,7 +3171,7 @@ yyreduce:
case 171:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 799 "web2c-parser.y"
{
orig_out = out;
@@ -3164,7 +3186,7 @@ yyreduce:
case 172:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 809 "web2c-parser.y"
{ normal();
array_bounds[0] = 0;
@@ -3174,7 +3196,7 @@ yyreduce:
case 173:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 814 "web2c-parser.y"
{ get_result_type(fn_return_type);
do_proc_args();
@@ -3184,21 +3206,21 @@ yyreduce:
case 179:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 832 "web2c-parser.y"
{ my_output ("{"); indent++; new_line(); }
break;
case 180:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 834 "web2c-parser.y"
{ indent--; my_output ("}"); new_line(); }
break;
case 185:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 847 "web2c-parser.y"
{if (!doreturn(temp)) {
sprintf(safe_string, "lab%s:", temp);
@@ -3209,42 +3231,42 @@ yyreduce:
case 186:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 855 "web2c-parser.y"
{ semicolon(); }
break;
case 187:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 857 "web2c-parser.y"
{ semicolon(); }
break;
case 192:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 865 "web2c-parser.y"
{ my_output ("break"); }
break;
case 193:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 869 "web2c-parser.y"
{ my_output ("="); }
break;
case 195:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 872 "web2c-parser.y"
{ my_output ("Result ="); }
break;
case 197:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 877 "web2c-parser.y"
{ if (strcmp(last_id, "mem") == 0)
uses_mem = 1;
@@ -3259,7 +3281,7 @@ yyreduce:
case 199:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 888 "web2c-parser.y"
{ if (sym_table[l_s].var_formal)
putchar('*');
@@ -3268,35 +3290,35 @@ yyreduce:
case 200:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 894 "web2c-parser.y"
{ (yyval) = ex_32; }
break;
case 201:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 896 "web2c-parser.y"
{ (yyval) = ex_32; }
break;
case 204:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 904 "web2c-parser.y"
{ my_output ("["); }
break;
case 205:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 906 "web2c-parser.y"
{ my_output ("]"); }
break;
case 206:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 908 "web2c-parser.y"
{if (tex || mf) {
if (strcmp(last_id, "int")==0)
@@ -3319,315 +3341,315 @@ yyreduce:
case 207:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 926 "web2c-parser.y"
{ my_output (".hh.b0"); }
break;
case 208:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 928 "web2c-parser.y"
{ my_output (".hh.b1"); }
break;
case 210:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 933 "web2c-parser.y"
{ my_output ("]["); }
break;
case 212:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 938 "web2c-parser.y"
{ (yyval) = (yyvsp[(2) - (2)]); }
break;
case 213:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 939 "web2c-parser.y"
{ my_output ("+"); }
break;
case 214:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 940 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 215:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 941 "web2c-parser.y"
{ my_output ("-"); }
break;
case 216:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 942 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 217:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 943 "web2c-parser.y"
{ my_output ("*"); }
break;
case 218:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 944 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 219:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 945 "web2c-parser.y"
{ my_output ("/"); }
break;
case 220:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 946 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 221:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 947 "web2c-parser.y"
{ my_output ("=="); }
break;
case 222:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 948 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 223:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 949 "web2c-parser.y"
{ my_output ("!="); }
break;
case 224:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 950 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 225:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 951 "web2c-parser.y"
{ my_output ("%"); }
break;
case 226:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 952 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 227:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 953 "web2c-parser.y"
{ my_output ("<"); }
break;
case 228:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 954 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 229:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 955 "web2c-parser.y"
{ my_output (">"); }
break;
case 230:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 956 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 231:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 957 "web2c-parser.y"
{ my_output ("<="); }
break;
case 232:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 958 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 233:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 959 "web2c-parser.y"
{ my_output (">="); }
break;
case 234:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 960 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 235:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 961 "web2c-parser.y"
{ my_output ("&&"); }
break;
case 236:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 962 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 237:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 963 "web2c-parser.y"
{ my_output ("||"); }
break;
case 238:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 964 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); }
break;
case 239:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 966 "web2c-parser.y"
{ my_output ("/ ((double)"); }
break;
case 240:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 968 "web2c-parser.y"
{ (yyval) = max ((yyvsp[(1) - (4)]), (yyvsp[(4) - (4)])); my_output (")"); }
break;
case 241:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 970 "web2c-parser.y"
{ (yyval) = (yyvsp[(1) - (1)]); }
break;
case 243:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 976 "web2c-parser.y"
{ my_output ("- (integer)"); }
break;
case 244:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 978 "web2c-parser.y"
{ my_output ("!"); }
break;
case 245:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 983 "web2c-parser.y"
{ my_output ("("); }
break;
case 246:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 985 "web2c-parser.y"
{ my_output (")"); (yyval) = (yyvsp[(1) - (4)]); }
break;
case 249:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 989 "web2c-parser.y"
{ my_output (last_id); my_output ("()"); }
break;
case 250:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 991 "web2c-parser.y"
{ my_output (last_id); }
break;
case 252:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 996 "web2c-parser.y"
{ my_output ("("); }
break;
case 253:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 997 "web2c-parser.y"
{ my_output (")"); }
break;
case 255:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1002 "web2c-parser.y"
{ my_output (","); }
break;
case 258:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1009 "web2c-parser.y"
{ my_output (last_id); }
break;
case 261:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1018 "web2c-parser.y"
{ my_output (last_id); my_output ("()"); }
break;
case 262:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1020 "web2c-parser.y"
{ my_output (last_id);
ii = add_to_table(last_id);
@@ -3638,14 +3660,14 @@ yyreduce:
case 263:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1026 "web2c-parser.y"
{ my_output (last_id); }
break;
case 265:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1031 "web2c-parser.y"
{if (doreturn(temp)) {
if (strcmp(fn_return_type,"void"))
@@ -3662,28 +3684,28 @@ yyreduce:
case 272:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1057 "web2c-parser.y"
{ my_output ("if"); my_output ("("); }
break;
case 274:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1062 "web2c-parser.y"
{ my_output (")"); }
break;
case 276:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1067 "web2c-parser.y"
{ new_line (); }
break;
case 278:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1070 "web2c-parser.y"
{ my_output ("{"); indent++; new_line();
my_output ("if"); my_output ("("); }
@@ -3691,28 +3713,28 @@ yyreduce:
case 279:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1073 "web2c-parser.y"
{ indent--; my_output ("}"); new_line(); }
break;
case 282:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1079 "web2c-parser.y"
{ my_output ("else"); }
break;
case 284:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1084 "web2c-parser.y"
{ my_output ("switch"); my_output ("("); }
break;
case 285:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1086 "web2c-parser.y"
{ my_output (")"); new_line();
my_output ("{"); indent++;
@@ -3721,21 +3743,21 @@ yyreduce:
case 286:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1090 "web2c-parser.y"
{ indent--; my_output ("}"); new_line(); }
break;
case 289:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1098 "web2c-parser.y"
{ my_output ("break"); semicolon(); }
break;
case 292:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1106 "web2c-parser.y"
{ my_output ("case");
my_output (temp);
@@ -3745,14 +3767,14 @@ yyreduce:
case 293:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1111 "web2c-parser.y"
{ my_output ("default:"); new_line(); }
break;
case 299:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1124 "web2c-parser.y"
{ my_output ("while");
my_output ("(");
@@ -3761,21 +3783,21 @@ yyreduce:
case 300:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1128 "web2c-parser.y"
{ my_output (")"); }
break;
case 302:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1133 "web2c-parser.y"
{ my_output ("do"); my_output ("{"); indent++; }
break;
case 303:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1135 "web2c-parser.y"
{ indent--; my_output ("}");
my_output ("while"); my_output ("( ! (");
@@ -3784,14 +3806,14 @@ yyreduce:
case 304:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1139 "web2c-parser.y"
{ my_output (") )"); }
break;
case 305:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1143 "web2c-parser.y"
{
my_output ("{");
@@ -3805,7 +3827,7 @@ yyreduce:
case 306:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1152 "web2c-parser.y"
{ if (strict_for)
my_output ("for_begin");
@@ -3816,7 +3838,7 @@ yyreduce:
case 307:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1158 "web2c-parser.y"
{ my_output ("; if (");
if (strict_for) my_output ("for_begin");
@@ -3838,7 +3860,7 @@ yyreduce:
case 308:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1175 "web2c-parser.y"
{
char *top = strrchr (for_stack, '#');
@@ -3859,21 +3881,21 @@ yyreduce:
case 309:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1193 "web2c-parser.y"
{ strcpy(control_var, last_id); }
break;
case 310:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1197 "web2c-parser.y"
{ my_output (";"); }
break;
case 311:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1199 "web2c-parser.y"
{
strcpy(relation, "<=");
@@ -3883,7 +3905,7 @@ yyreduce:
case 312:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1204 "web2c-parser.y"
{
sprintf(for_stack + strlen(for_stack),
@@ -3893,14 +3915,14 @@ yyreduce:
case 313:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1209 "web2c-parser.y"
{ my_output (";"); }
break;
case 314:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1211 "web2c-parser.y"
{
strcpy(relation, ">=");
@@ -3910,7 +3932,7 @@ yyreduce:
case 315:
-/* Line 1464 of yacc.c */
+/* Line 1806 of yacc.c */
#line 1216 "web2c-parser.y"
{
sprintf(for_stack + strlen(for_stack),
@@ -3920,10 +3942,21 @@ yyreduce:
-/* Line 1464 of yacc.c */
-#line 3925 "web2c-parser.c"
+/* Line 1806 of yacc.c */
+#line 3947 "web2c-parser.c"
default: break;
}
+ /* User semantic actions sometimes alter yychar, and that requires
+ that yytoken be updated with the new translation. We take the
+ approach of translating immediately before every use of yytoken.
+ One alternative is translating here after every semantic action,
+ but that translation would be missed if the semantic action invokes
+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
+ incorrect destructor might then be invoked immediately. In the
+ case of YYERROR or YYBACKUP, subsequent parser actions might lead
+ to an incorrect destructor call or verbose syntax error message
+ before the lookahead is translated. */
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
YYPOPSTACK (yylen);
@@ -3951,6 +3984,10 @@ yyreduce:
| yyerrlab -- here on detecting error |
`------------------------------------*/
yyerrlab:
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
+
/* If not already recovering from an error, report this error. */
if (!yyerrstatus)
{
@@ -3958,37 +3995,36 @@ yyerrlab:
#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
#else
+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
+ yyssp, yytoken)
{
- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
- {
- YYSIZE_T yyalloc = 2 * yysize;
- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
- yyalloc = YYSTACK_ALLOC_MAXIMUM;
- if (yymsg != yymsgbuf)
- YYSTACK_FREE (yymsg);
- yymsg = (char *) YYSTACK_ALLOC (yyalloc);
- if (yymsg)
- yymsg_alloc = yyalloc;
- else
- {
- yymsg = yymsgbuf;
- yymsg_alloc = sizeof yymsgbuf;
- }
- }
-
- if (0 < yysize && yysize <= yymsg_alloc)
- {
- (void) yysyntax_error (yymsg, yystate, yychar);
- yyerror (yymsg);
- }
- else
- {
- yyerror (YY_("syntax error"));
- if (yysize != 0)
- goto yyexhaustedlab;
- }
+ char const *yymsgp = YY_("syntax error");
+ int yysyntax_error_status;
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ if (yysyntax_error_status == 0)
+ yymsgp = yymsg;
+ else if (yysyntax_error_status == 1)
+ {
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
+ if (!yymsg)
+ {
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
+ yysyntax_error_status = 2;
+ }
+ else
+ {
+ yysyntax_error_status = YYSYNTAX_ERROR;
+ yymsgp = yymsg;
+ }
+ }
+ yyerror (yymsgp);
+ if (yysyntax_error_status == 2)
+ goto yyexhaustedlab;
}
+# undef YYSYNTAX_ERROR
#endif
}
@@ -4047,7 +4083,7 @@ yyerrlab1:
for (;;)
{
yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
+ if (!yypact_value_is_default (yyn))
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
@@ -4106,8 +4142,13 @@ yyexhaustedlab:
yyreturn:
if (yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- yytoken, &yylval);
+ {
+ /* Make sure we have latest lookahead translation. See comments at
+ user semantic actions for why this is necessary. */
+ yytoken = YYTRANSLATE (yychar);
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ }
/* Do not reclaim the symbols of the rule which action triggered
this YYABORT or YYACCEPT. */
YYPOPSTACK (yylen);
@@ -4132,7 +4173,7 @@ yyreturn:
-/* Line 1684 of yacc.c */
+/* Line 2067 of yacc.c */
#line 1221 "web2c-parser.y"
diff --git a/Build/source/texk/web2c/web2c/web2c-parser.h b/Build/source/texk/web2c/web2c/web2c-parser.h
index f8454bbecd9..fe12f626646 100644
--- a/Build/source/texk/web2c/web2c/web2c-parser.h
+++ b/Build/source/texk/web2c/web2c/web2c-parser.h
@@ -1,9 +1,8 @@
-/* A Bison parser, made by GNU Bison 2.4.3. */
+/* A Bison parser, made by GNU Bison 2.5. */
-/* Skeleton interface for Bison's Yacc-like parsers in C
+/* Bison interface for Yacc-like parsers in C
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
- 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2011 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