mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 20:33:03 +00:00
YYFAIL: deprecate.
* NEWS (2.4.2): Document deprecation and the phase-out plan.
* data/lalr1.java (parser::YYStack::YYFAIL): Add comment about
deprecation.
* data/yacc.c (YYFAIL): Likewise, and suppress warnings about
YYFAIL from GCC cpp's -Wunused-macros.
* doc/bison.texinfo (Java Action Features): Remove YYFAIL
documentation.
(cherry picked from commit 1625df5b18)
Conflicts:
doc/bison.texinfo
src/parse-gram.c
src/parse-gram.h
This commit is contained in:
11
ChangeLog
11
ChangeLog
@@ -1,3 +1,14 @@
|
||||
2009-12-21 Joel E. Denny <jdenny@clemson.edu>
|
||||
|
||||
YYFAIL: deprecate.
|
||||
* NEWS (2.4.2): Document deprecation and the phase-out plan.
|
||||
* data/lalr1.java (parser::YYStack::YYFAIL): Add comment about
|
||||
deprecation.
|
||||
* data/yacc.c (YYFAIL): Likewise, and suppress warnings about
|
||||
YYFAIL from GCC cpp's -Wunused-macros.
|
||||
* doc/bison.texinfo (Java Action Features): Remove YYFAIL
|
||||
documentation.
|
||||
|
||||
2009-12-16 Joel E. Denny <jdenny@clemson.edu>
|
||||
|
||||
Add gcc's -Wundef to test suite and fix another warning from it.
|
||||
|
||||
39
NEWS
39
NEWS
@@ -32,6 +32,45 @@ Bison News
|
||||
Bison's Java feature as a whole including its current usage of %code
|
||||
is still considered experimental.
|
||||
|
||||
** YYFAIL is deprecated and will eventually be removed.
|
||||
|
||||
YYFAIL has existed for many years as an undocumented feature of
|
||||
deterministic parsers in C generated by Bison. Previously, it was
|
||||
documented for Bison's experimental Java parsers. YYFAIL is no longer
|
||||
documented for Java parsers and is formally deprecated in both cases.
|
||||
Users are strongly encouraged to migrate to YYERROR, which is
|
||||
specified by POSIX.
|
||||
|
||||
Like YYERROR, you can invoke YYFAIL from a semantic action in order to
|
||||
induce a syntax error. The most obvious difference from YYERROR is
|
||||
that YYFAIL will automatically invoke yyerror to report the syntax
|
||||
error so that you don't have to. However, there are several other
|
||||
subtle differences between YYERROR and YYFAIL, and YYFAIL suffers from
|
||||
inherent flaws when %error-verbose or `#define YYERROR_VERBOSE' is
|
||||
used. For a more detailed discussion, see:
|
||||
|
||||
http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html
|
||||
|
||||
The upcoming Bison 2.5 will remove YYFAIL from Java parsers, but
|
||||
deterministic parsers in C will continue to implement it. However,
|
||||
because YYFAIL is already flawed, it seems futile to try to make new
|
||||
Bison features compatible with it. Thus, during parser generation,
|
||||
Bison 2.5 will produce a warning whenever it discovers YYFAIL in a
|
||||
rule action. In a later release, YYFAIL will be disabled for
|
||||
%error-verbose and `#define YYERROR_VERBOSE'. Eventually, YYFAIL will
|
||||
be removed altogether.
|
||||
|
||||
There exists at least one case where Bison 2.5's YYFAIL warning will
|
||||
be a false positive. Some projects add phony uses of YYFAIL and other
|
||||
Bison-defined macros for the sole purpose of suppressing C
|
||||
preprocessor warnings (from GCC cpp's -Wunused-macros, for example).
|
||||
To avoid Bison's future warning, such YYFAIL uses can be moved to the
|
||||
epilogue (that is, after the second `%%') in the Bison input file. In
|
||||
this release (2.4.2), Bison already generates its own code to suppress
|
||||
C preprocessor warnings for YYFAIL, so projects can remove their own
|
||||
phony uses of YYFAIL if compatibility with Bison releases prior to
|
||||
2.4.2 is not necessary.
|
||||
|
||||
** Internationalization.
|
||||
|
||||
Fix a regression introduced in Bison 2.4: Under some circumstances,
|
||||
|
||||
@@ -310,7 +310,8 @@ b4_lexer_if([[
|
||||
|
||||
/**
|
||||
* Returned by a Bison action in order to print an error message and start
|
||||
* error recovery. */
|
||||
* error recovery. Formally deprecated in Bison 2.4.2's NEWS entry, where
|
||||
* a plan to phase it out is discussed. */
|
||||
public static final int YYFAIL = 3;
|
||||
|
||||
private static final int YYNEWSTATE = 4;
|
||||
|
||||
11
data/yacc.c
11
data/yacc.c
@@ -610,9 +610,18 @@ static const ]b4_int_type_for([b4_stos])[ yystos[] =
|
||||
|
||||
/* Like YYERROR except do call yyerror. This remains here temporarily
|
||||
to ease the transition to the new meaning of YYERROR, for GCC.
|
||||
Once GCC version 2 has supplanted version 1, this can go. */
|
||||
Once GCC version 2 has supplanted version 1, this can go. However,
|
||||
YYFAIL appears to be in use. Nevertheless, it is formally deprecated
|
||||
in Bison 2.4.2's NEWS entry, where a plan to phase it out is
|
||||
discussed. */
|
||||
|
||||
#define YYFAIL goto yyerrlab
|
||||
#if defined YYFAIL
|
||||
/* This is here to suppress warnings from the GCC cpp's
|
||||
-Wunused-macros. Normally we don't worry about that warning, but
|
||||
some users do, and we want to make it easy for users to remove
|
||||
YYFAIL uses, which will produce warnings from Bison 2.5. */
|
||||
#endif
|
||||
|
||||
#define YYRECOVERING() (!!yyerrstatus)
|
||||
|
||||
|
||||
@@ -9069,11 +9069,6 @@ Start error recovery without printing an error message.
|
||||
@xref{Error Recovery}.
|
||||
@end deffn
|
||||
|
||||
@deffn {Statement} {return YYFAIL;}
|
||||
Print an error message and start error recovery.
|
||||
@xref{Error Recovery}.
|
||||
@end deffn
|
||||
|
||||
@deftypefn {Function} {boolean} recovering ()
|
||||
Return whether error recovery is being done. In this state, the parser
|
||||
reads token until it reaches a known state, and then restarts normal
|
||||
|
||||
297
src/parse-gram.c
297
src/parse-gram.c
@@ -1,4 +1,4 @@
|
||||
/* A Bison parser, made by GNU Bison 2.4.1.50-3249. */
|
||||
/* A Bison parser, made by GNU Bison 2.4.1.58-3d04. */
|
||||
|
||||
/* Skeleton implementation for Bison's Yacc-like parsers in C
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
#define YYBISON 1
|
||||
|
||||
/* Bison version. */
|
||||
#define YYBISON_VERSION "2.4.1.50-3249"
|
||||
#define YYBISON_VERSION "2.4.1.58-3d04"
|
||||
|
||||
/* Skeleton name. */
|
||||
#define YYSKELETON_NAME "yacc.c"
|
||||
@@ -388,7 +388,7 @@ typedef short int yytype_int16;
|
||||
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
|
||||
|
||||
#ifndef YY_
|
||||
# if YYENABLE_NLS
|
||||
# if defined YYENABLE_NLS && YYENABLE_NLS
|
||||
# if ENABLE_NLS
|
||||
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
|
||||
# define YY_(msgid) dgettext ("bison-runtime", msgid)
|
||||
@@ -893,9 +893,18 @@ static const yytype_uint8 yystos[] =
|
||||
|
||||
/* Like YYERROR except do call yyerror. This remains here temporarily
|
||||
to ease the transition to the new meaning of YYERROR, for GCC.
|
||||
Once GCC version 2 has supplanted version 1, this can go. */
|
||||
Once GCC version 2 has supplanted version 1, this can go. However,
|
||||
YYFAIL appears to be in use. Nevertheless, it is formally deprecated
|
||||
in Bison 2.4.2's NEWS entry, where a plan to phase it out is
|
||||
discussed. */
|
||||
|
||||
#define YYFAIL goto yyerrlab
|
||||
#if defined YYFAIL
|
||||
/* This is here to suppress warnings from the GCC cpp's
|
||||
-Wunused-macros. Normally we don't worry about that warning, but
|
||||
some users do, and we want to make it easy for users to remove
|
||||
YYFAIL uses, which will produce warnings from Bison 2.5. */
|
||||
#endif
|
||||
|
||||
#define YYRECOVERING() (!!yyerrstatus)
|
||||
|
||||
@@ -952,7 +961,7 @@ while (YYID (0))
|
||||
we won't break user code: when these are the locations we know. */
|
||||
|
||||
#ifndef YY_LOCATION_PRINT
|
||||
# if YYLTYPE_IS_TRIVIAL
|
||||
# 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, \
|
||||
@@ -1028,147 +1037,147 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
|
||||
{
|
||||
case 3: /* "\"string\"" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 180 "parse-gram.y"
|
||||
{ fputs (quotearg_style (c_quoting_style, (yyvaluep->chars)), stderr); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1037 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1046 "parse-gram.c"
|
||||
break;
|
||||
case 4: /* "\"integer\"" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 191 "parse-gram.y"
|
||||
{ fprintf (stderr, "%d", (yyvaluep->integer)); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1046 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1055 "parse-gram.c"
|
||||
break;
|
||||
case 43: /* "\"{...}\"" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 182 "parse-gram.y"
|
||||
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->code)); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1055 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1064 "parse-gram.c"
|
||||
break;
|
||||
case 44: /* "\"char\"" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 174 "parse-gram.y"
|
||||
{ fputs (char_name ((yyvaluep->character)), stderr); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1064 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1073 "parse-gram.c"
|
||||
break;
|
||||
case 45: /* "\"epilogue\"" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 182 "parse-gram.y"
|
||||
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1073 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1082 "parse-gram.c"
|
||||
break;
|
||||
case 47: /* "\"identifier\"" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 187 "parse-gram.y"
|
||||
{ fputs ((yyvaluep->uniqstr), stderr); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1082 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1091 "parse-gram.c"
|
||||
break;
|
||||
case 48: /* "\"identifier:\"" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 188 "parse-gram.y"
|
||||
{ fprintf (stderr, "%s:", (yyvaluep->uniqstr)); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1091 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1100 "parse-gram.c"
|
||||
break;
|
||||
case 51: /* "\"%{...%}\"" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 182 "parse-gram.y"
|
||||
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1100 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1109 "parse-gram.c"
|
||||
break;
|
||||
case 53: /* "\"type\"" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 186 "parse-gram.y"
|
||||
{ fprintf (stderr, "<%s>", (yyvaluep->uniqstr)); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1109 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1118 "parse-gram.c"
|
||||
break;
|
||||
case 82: /* "variable" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 187 "parse-gram.y"
|
||||
{ fputs ((yyvaluep->uniqstr), stderr); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1118 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1127 "parse-gram.c"
|
||||
break;
|
||||
case 83: /* "content.opt" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 182 "parse-gram.y"
|
||||
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1127 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1136 "parse-gram.c"
|
||||
break;
|
||||
case 84: /* "braceless" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 182 "parse-gram.y"
|
||||
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1136 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1145 "parse-gram.c"
|
||||
break;
|
||||
case 85: /* "id" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 194 "parse-gram.y"
|
||||
{ fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1145 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1154 "parse-gram.c"
|
||||
break;
|
||||
case 86: /* "id_colon" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 195 "parse-gram.y"
|
||||
{ fprintf (stderr, "%s:", (yyvaluep->symbol)->tag); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1154 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1163 "parse-gram.c"
|
||||
break;
|
||||
case 87: /* "symbol" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 194 "parse-gram.y"
|
||||
{ fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1163 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1172 "parse-gram.c"
|
||||
break;
|
||||
case 88: /* "string_as_id" */
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
/* Line 725 of yacc.c */
|
||||
#line 194 "parse-gram.y"
|
||||
{ fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
|
||||
|
||||
/* Line 716 of yacc.c */
|
||||
#line 1172 "parse-gram.c"
|
||||
/* Line 725 of yacc.c */
|
||||
#line 1181 "parse-gram.c"
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -1679,7 +1688,7 @@ YYLTYPE yylloc;
|
||||
yyvsp = yyvs;
|
||||
yylsp = yyls;
|
||||
|
||||
#if YYLTYPE_IS_TRIVIAL
|
||||
#if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
|
||||
/* Initialize the default location before parsing starts. */
|
||||
yylloc.first_line = yylloc.last_line = 1;
|
||||
yylloc.first_column = yylloc.last_column = 1;
|
||||
@@ -1687,7 +1696,7 @@ YYLTYPE yylloc;
|
||||
|
||||
/* User initialization code. */
|
||||
|
||||
/* Line 1243 of yacc.c */
|
||||
/* Line 1252 of yacc.c */
|
||||
#line 84 "parse-gram.y"
|
||||
{
|
||||
/* Bison's grammar can initial empty locations, hence a default
|
||||
@@ -1696,8 +1705,8 @@ YYLTYPE yylloc;
|
||||
boundary_set (&yylloc.end, current_file, 1, 1);
|
||||
}
|
||||
|
||||
/* Line 1243 of yacc.c */
|
||||
#line 1701 "parse-gram.c"
|
||||
/* Line 1252 of yacc.c */
|
||||
#line 1710 "parse-gram.c"
|
||||
yylsp[0] = yylloc;
|
||||
|
||||
goto yysetstate;
|
||||
@@ -1884,7 +1893,7 @@ yyreduce:
|
||||
{
|
||||
case 6:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 218 "parse-gram.y"
|
||||
{
|
||||
code_props plain_code;
|
||||
@@ -1899,14 +1908,14 @@ yyreduce:
|
||||
|
||||
case 7:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 227 "parse-gram.y"
|
||||
{ debug_flag = true; }
|
||||
break;
|
||||
|
||||
case 8:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 229 "parse-gram.y"
|
||||
{
|
||||
muscle_percent_define_insert ((yyvsp[(2) - (3)].uniqstr), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].chars));
|
||||
@@ -1915,14 +1924,14 @@ yyreduce:
|
||||
|
||||
case 9:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 232 "parse-gram.y"
|
||||
{ defines_flag = true; }
|
||||
break;
|
||||
|
||||
case 10:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 234 "parse-gram.y"
|
||||
{
|
||||
defines_flag = true;
|
||||
@@ -1932,42 +1941,42 @@ yyreduce:
|
||||
|
||||
case 11:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 238 "parse-gram.y"
|
||||
{ error_verbose = true; }
|
||||
break;
|
||||
|
||||
case 12:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 239 "parse-gram.y"
|
||||
{ expected_sr_conflicts = (yyvsp[(2) - (2)].integer); }
|
||||
break;
|
||||
|
||||
case 13:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 240 "parse-gram.y"
|
||||
{ expected_rr_conflicts = (yyvsp[(2) - (2)].integer); }
|
||||
break;
|
||||
|
||||
case 14:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 241 "parse-gram.y"
|
||||
{ spec_file_prefix = (yyvsp[(2) - (2)].chars); }
|
||||
break;
|
||||
|
||||
case 15:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 242 "parse-gram.y"
|
||||
{ spec_file_prefix = (yyvsp[(3) - (3)].chars); }
|
||||
break;
|
||||
|
||||
case 16:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 244 "parse-gram.y"
|
||||
{
|
||||
nondeterministic_parser = true;
|
||||
@@ -1977,7 +1986,7 @@ yyreduce:
|
||||
|
||||
case 17:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 249 "parse-gram.y"
|
||||
{
|
||||
code_props action;
|
||||
@@ -1991,77 +2000,77 @@ yyreduce:
|
||||
|
||||
case 18:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 257 "parse-gram.y"
|
||||
{ language_argmatch ((yyvsp[(2) - (2)].chars), grammar_prio, &(yylsp[(1) - (2)])); }
|
||||
break;
|
||||
|
||||
case 19:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 258 "parse-gram.y"
|
||||
{ add_param ("lex_param", (yyvsp[(2) - (2)].code), (yylsp[(2) - (2)])); }
|
||||
break;
|
||||
|
||||
case 20:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 259 "parse-gram.y"
|
||||
{ locations_flag = true; }
|
||||
break;
|
||||
|
||||
case 21:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 260 "parse-gram.y"
|
||||
{ spec_name_prefix = (yyvsp[(2) - (2)].chars); }
|
||||
break;
|
||||
|
||||
case 22:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 261 "parse-gram.y"
|
||||
{ spec_name_prefix = (yyvsp[(3) - (3)].chars); }
|
||||
break;
|
||||
|
||||
case 23:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 262 "parse-gram.y"
|
||||
{ no_lines_flag = true; }
|
||||
break;
|
||||
|
||||
case 24:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 263 "parse-gram.y"
|
||||
{ nondeterministic_parser = true; }
|
||||
break;
|
||||
|
||||
case 25:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 264 "parse-gram.y"
|
||||
{ spec_outfile = (yyvsp[(2) - (2)].chars); }
|
||||
break;
|
||||
|
||||
case 26:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 265 "parse-gram.y"
|
||||
{ spec_outfile = (yyvsp[(3) - (3)].chars); }
|
||||
break;
|
||||
|
||||
case 27:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 266 "parse-gram.y"
|
||||
{ add_param ("parse_param", (yyvsp[(2) - (2)].code), (yylsp[(2) - (2)])); }
|
||||
break;
|
||||
|
||||
case 28:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 268 "parse-gram.y"
|
||||
{
|
||||
/* %pure-parser is deprecated in favor of `%define api.pure', so use
|
||||
@@ -2079,14 +2088,14 @@ yyreduce:
|
||||
|
||||
case 29:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 280 "parse-gram.y"
|
||||
{ version_check (&(yylsp[(2) - (2)]), (yyvsp[(2) - (2)].chars)); }
|
||||
break;
|
||||
|
||||
case 30:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 282 "parse-gram.y"
|
||||
{
|
||||
char const *skeleton_user = (yyvsp[(2) - (2)].chars);
|
||||
@@ -2115,28 +2124,28 @@ yyreduce:
|
||||
|
||||
case 31:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 305 "parse-gram.y"
|
||||
{ token_table_flag = true; }
|
||||
break;
|
||||
|
||||
case 32:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 306 "parse-gram.y"
|
||||
{ report_flag |= report_states; }
|
||||
break;
|
||||
|
||||
case 33:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 307 "parse-gram.y"
|
||||
{ yacc_flag = true; }
|
||||
break;
|
||||
|
||||
case 37:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 315 "parse-gram.y"
|
||||
{
|
||||
grammar_start_symbol_set ((yyvsp[(2) - (2)].symbol), (yylsp[(2) - (2)]));
|
||||
@@ -2145,7 +2154,7 @@ yyreduce:
|
||||
|
||||
case 38:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 319 "parse-gram.y"
|
||||
{
|
||||
symbol_list *list;
|
||||
@@ -2157,7 +2166,7 @@ yyreduce:
|
||||
|
||||
case 39:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 326 "parse-gram.y"
|
||||
{
|
||||
symbol_list *list;
|
||||
@@ -2169,7 +2178,7 @@ yyreduce:
|
||||
|
||||
case 40:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 333 "parse-gram.y"
|
||||
{
|
||||
default_prec = true;
|
||||
@@ -2178,7 +2187,7 @@ yyreduce:
|
||||
|
||||
case 41:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 337 "parse-gram.y"
|
||||
{
|
||||
default_prec = false;
|
||||
@@ -2187,7 +2196,7 @@ yyreduce:
|
||||
|
||||
case 42:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 341 "parse-gram.y"
|
||||
{
|
||||
/* Do not invoke muscle_percent_code_grow here since it invokes
|
||||
@@ -2199,7 +2208,7 @@ yyreduce:
|
||||
|
||||
case 43:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 348 "parse-gram.y"
|
||||
{
|
||||
muscle_percent_code_grow ((yyvsp[(2) - (3)].uniqstr), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].chars), (yylsp[(3) - (3)]));
|
||||
@@ -2209,21 +2218,21 @@ yyreduce:
|
||||
|
||||
case 44:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 362 "parse-gram.y"
|
||||
{}
|
||||
break;
|
||||
|
||||
case 45:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 363 "parse-gram.y"
|
||||
{ muscle_code_grow ("union_name", (yyvsp[(1) - (1)].uniqstr), (yylsp[(1) - (1)])); }
|
||||
break;
|
||||
|
||||
case 46:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 368 "parse-gram.y"
|
||||
{
|
||||
union_seen = true;
|
||||
@@ -2234,14 +2243,14 @@ yyreduce:
|
||||
|
||||
case 47:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 379 "parse-gram.y"
|
||||
{ current_class = nterm_sym; }
|
||||
break;
|
||||
|
||||
case 48:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 380 "parse-gram.y"
|
||||
{
|
||||
current_class = unknown_sym;
|
||||
@@ -2251,14 +2260,14 @@ yyreduce:
|
||||
|
||||
case 49:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 384 "parse-gram.y"
|
||||
{ current_class = token_sym; }
|
||||
break;
|
||||
|
||||
case 50:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 385 "parse-gram.y"
|
||||
{
|
||||
current_class = unknown_sym;
|
||||
@@ -2268,7 +2277,7 @@ yyreduce:
|
||||
|
||||
case 51:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 390 "parse-gram.y"
|
||||
{
|
||||
symbol_list *list;
|
||||
@@ -2281,7 +2290,7 @@ yyreduce:
|
||||
|
||||
case 52:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 401 "parse-gram.y"
|
||||
{
|
||||
symbol_list *list;
|
||||
@@ -2298,126 +2307,126 @@ yyreduce:
|
||||
|
||||
case 53:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 415 "parse-gram.y"
|
||||
{ (yyval.assoc) = left_assoc; }
|
||||
break;
|
||||
|
||||
case 54:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 416 "parse-gram.y"
|
||||
{ (yyval.assoc) = right_assoc; }
|
||||
break;
|
||||
|
||||
case 55:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 417 "parse-gram.y"
|
||||
{ (yyval.assoc) = non_assoc; }
|
||||
break;
|
||||
|
||||
case 56:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 421 "parse-gram.y"
|
||||
{ current_type = NULL; }
|
||||
break;
|
||||
|
||||
case 57:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 422 "parse-gram.y"
|
||||
{ current_type = (yyvsp[(1) - (1)].uniqstr); tag_seen = true; }
|
||||
break;
|
||||
|
||||
case 58:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 428 "parse-gram.y"
|
||||
{ (yyval.list) = symbol_list_sym_new ((yyvsp[(1) - (1)].symbol), (yylsp[(1) - (1)])); }
|
||||
break;
|
||||
|
||||
case 59:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 430 "parse-gram.y"
|
||||
{ (yyval.list) = symbol_list_prepend ((yyvsp[(1) - (2)].list), symbol_list_sym_new ((yyvsp[(2) - (2)].symbol), (yylsp[(2) - (2)]))); }
|
||||
break;
|
||||
|
||||
case 60:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 434 "parse-gram.y"
|
||||
{ (yyval.symbol) = (yyvsp[(1) - (1)].symbol); }
|
||||
break;
|
||||
|
||||
case 61:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 435 "parse-gram.y"
|
||||
{ (yyval.symbol) = (yyvsp[(1) - (2)].symbol); symbol_user_token_number_set ((yyvsp[(1) - (2)].symbol), (yyvsp[(2) - (2)].integer), (yylsp[(2) - (2)])); }
|
||||
break;
|
||||
|
||||
case 62:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 441 "parse-gram.y"
|
||||
{ (yyval.list) = symbol_list_sym_new ((yyvsp[(1) - (1)].symbol), (yylsp[(1) - (1)])); }
|
||||
break;
|
||||
|
||||
case 63:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 443 "parse-gram.y"
|
||||
{ (yyval.list) = symbol_list_prepend ((yyvsp[(1) - (2)].list), symbol_list_sym_new ((yyvsp[(2) - (2)].symbol), (yylsp[(2) - (2)]))); }
|
||||
break;
|
||||
|
||||
case 64:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 447 "parse-gram.y"
|
||||
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
|
||||
break;
|
||||
|
||||
case 65:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 448 "parse-gram.y"
|
||||
{ (yyval.list) = symbol_list_prepend ((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); }
|
||||
break;
|
||||
|
||||
case 66:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 452 "parse-gram.y"
|
||||
{ (yyval.list) = symbol_list_sym_new ((yyvsp[(1) - (1)].symbol), (yylsp[(1) - (1)])); }
|
||||
break;
|
||||
|
||||
case 67:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 453 "parse-gram.y"
|
||||
{ (yyval.list) = symbol_list_type_new ((yyvsp[(1) - (1)].uniqstr), (yylsp[(1) - (1)])); }
|
||||
break;
|
||||
|
||||
case 68:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 454 "parse-gram.y"
|
||||
{ (yyval.list) = symbol_list_default_tagged_new ((yylsp[(1) - (1)])); }
|
||||
break;
|
||||
|
||||
case 69:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 455 "parse-gram.y"
|
||||
{ (yyval.list) = symbol_list_default_tagless_new ((yylsp[(1) - (1)])); }
|
||||
break;
|
||||
|
||||
case 70:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 461 "parse-gram.y"
|
||||
{
|
||||
current_type = (yyvsp[(1) - (1)].uniqstr);
|
||||
@@ -2427,7 +2436,7 @@ yyreduce:
|
||||
|
||||
case 71:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 466 "parse-gram.y"
|
||||
{
|
||||
symbol_class_set ((yyvsp[(1) - (1)].symbol), current_class, (yylsp[(1) - (1)]), true);
|
||||
@@ -2437,7 +2446,7 @@ yyreduce:
|
||||
|
||||
case 72:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 471 "parse-gram.y"
|
||||
{
|
||||
symbol_class_set ((yyvsp[(1) - (2)].symbol), current_class, (yylsp[(1) - (2)]), true);
|
||||
@@ -2448,7 +2457,7 @@ yyreduce:
|
||||
|
||||
case 73:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 477 "parse-gram.y"
|
||||
{
|
||||
symbol_class_set ((yyvsp[(1) - (2)].symbol), current_class, (yylsp[(1) - (2)]), true);
|
||||
@@ -2459,7 +2468,7 @@ yyreduce:
|
||||
|
||||
case 74:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 483 "parse-gram.y"
|
||||
{
|
||||
symbol_class_set ((yyvsp[(1) - (3)].symbol), current_class, (yylsp[(1) - (3)]), true);
|
||||
@@ -2471,7 +2480,7 @@ yyreduce:
|
||||
|
||||
case 81:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 513 "parse-gram.y"
|
||||
{
|
||||
yyerrok;
|
||||
@@ -2480,77 +2489,77 @@ yyreduce:
|
||||
|
||||
case 82:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 519 "parse-gram.y"
|
||||
{ current_lhs = (yyvsp[(1) - (1)].symbol); current_lhs_location = (yylsp[(1) - (1)]); }
|
||||
break;
|
||||
|
||||
case 84:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 523 "parse-gram.y"
|
||||
{ grammar_current_rule_end ((yylsp[(1) - (1)])); }
|
||||
break;
|
||||
|
||||
case 85:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 524 "parse-gram.y"
|
||||
{ grammar_current_rule_end ((yylsp[(3) - (3)])); }
|
||||
break;
|
||||
|
||||
case 87:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 530 "parse-gram.y"
|
||||
{ grammar_current_rule_begin (current_lhs, current_lhs_location); }
|
||||
break;
|
||||
|
||||
case 88:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 532 "parse-gram.y"
|
||||
{ grammar_current_rule_symbol_append ((yyvsp[(2) - (2)].symbol), (yylsp[(2) - (2)])); }
|
||||
break;
|
||||
|
||||
case 89:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 534 "parse-gram.y"
|
||||
{ grammar_current_rule_action_append ((yyvsp[(2) - (2)].code), (yylsp[(2) - (2)])); }
|
||||
break;
|
||||
|
||||
case 90:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 536 "parse-gram.y"
|
||||
{ grammar_current_rule_prec_set ((yyvsp[(3) - (3)].symbol), (yylsp[(3) - (3)])); }
|
||||
break;
|
||||
|
||||
case 91:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 538 "parse-gram.y"
|
||||
{ grammar_current_rule_dprec_set ((yyvsp[(3) - (3)].integer), (yylsp[(3) - (3)])); }
|
||||
break;
|
||||
|
||||
case 92:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 540 "parse-gram.y"
|
||||
{ grammar_current_rule_merge_set ((yyvsp[(3) - (3)].uniqstr), (yylsp[(3) - (3)])); }
|
||||
break;
|
||||
|
||||
case 94:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 550 "parse-gram.y"
|
||||
{ (yyval.uniqstr) = uniqstr_new ((yyvsp[(1) - (1)].chars)); }
|
||||
break;
|
||||
|
||||
case 95:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 556 "parse-gram.y"
|
||||
{
|
||||
(yyval.chars) = "";
|
||||
@@ -2559,7 +2568,7 @@ yyreduce:
|
||||
|
||||
case 97:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 569 "parse-gram.y"
|
||||
{
|
||||
code_props plain_code;
|
||||
@@ -2573,14 +2582,14 @@ yyreduce:
|
||||
|
||||
case 98:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 589 "parse-gram.y"
|
||||
{ (yyval.symbol) = symbol_from_uniqstr ((yyvsp[(1) - (1)].uniqstr), (yylsp[(1) - (1)])); }
|
||||
break;
|
||||
|
||||
case 99:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 591 "parse-gram.y"
|
||||
{
|
||||
(yyval.symbol) = symbol_get (char_name ((yyvsp[(1) - (1)].character)), (yylsp[(1) - (1)]));
|
||||
@@ -2591,14 +2600,14 @@ yyreduce:
|
||||
|
||||
case 100:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 599 "parse-gram.y"
|
||||
{ (yyval.symbol) = symbol_from_uniqstr ((yyvsp[(1) - (1)].uniqstr), (yylsp[(1) - (1)])); }
|
||||
break;
|
||||
|
||||
case 103:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 611 "parse-gram.y"
|
||||
{
|
||||
(yyval.symbol) = symbol_get (quotearg_style (c_quoting_style, (yyvsp[(1) - (1)].chars)), (yylsp[(1) - (1)]));
|
||||
@@ -2608,7 +2617,7 @@ yyreduce:
|
||||
|
||||
case 105:
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 620 "parse-gram.y"
|
||||
{
|
||||
code_props plain_code;
|
||||
@@ -2622,8 +2631,8 @@ yyreduce:
|
||||
|
||||
|
||||
|
||||
/* Line 1456 of yacc.c */
|
||||
#line 2627 "parse-gram.c"
|
||||
/* Line 1465 of yacc.c */
|
||||
#line 2636 "parse-gram.c"
|
||||
default: break;
|
||||
}
|
||||
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
|
||||
@@ -2841,7 +2850,7 @@ yyreturn:
|
||||
|
||||
|
||||
|
||||
/* Line 1676 of yacc.c */
|
||||
/* Line 1685 of yacc.c */
|
||||
#line 630 "parse-gram.y"
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* A Bison parser, made by GNU Bison 2.4.1.50-3249. */
|
||||
/* A Bison parser, made by GNU Bison 2.4.1.58-3d04. */
|
||||
|
||||
/* Skeleton interface for Bison's Yacc-like parsers in C
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
typedef union YYSTYPE
|
||||
{
|
||||
|
||||
/* Line 1677 of yacc.c */
|
||||
/* Line 1686 of yacc.c */
|
||||
#line 92 "parse-gram.y"
|
||||
|
||||
symbol *symbol;
|
||||
@@ -173,7 +173,7 @@ typedef union YYSTYPE
|
||||
|
||||
|
||||
|
||||
/* Line 1677 of yacc.c */
|
||||
/* Line 1686 of yacc.c */
|
||||
#line 178 "parse-gram.h"
|
||||
} YYSTYPE;
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
|
||||
Reference in New Issue
Block a user