-/* A Bison parser, made by GNU Bison 2.5.1_rc2. */
+/* A Bison parser, made by GNU Bison 2.6.1.12-3153-dirty. */
/* Bison implementation for Yacc-like parsers in C
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.5.1_rc2"
+#define YYBISON_VERSION "2.6.1.12-3153-dirty"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
/* Pull parsers. */
#define YYPULL 1
-/* Using locations. */
-#define YYLSP_NEEDED 1
/* Substitute the variable and function names. */
#define yyparse gram_parse
#define yylloc gram_lloc
/* Copy the first part of user declarations. */
-
-/* Line 268 of yacc.c */
+/* Line 336 of yacc.c */
#line 1 "parse-gram.y"
/* Bison Grammar Parser -*- C -*-
#define YYTYPE_UINT16 uint_fast16_t
#define YYTYPE_UINT8 uint_fast8_t
-
-/* Line 268 of yacc.c */
-#line 174 "parse-gram.c"
+/* Line 336 of yacc.c */
+#line 170 "parse-gram.c"
# ifndef YY_NULL
# if defined __cplusplus && 201103L <= __cplusplus
# endif
# endif
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 1
-#endif
-
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#endif
-/* Enabling the token table. */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
+/* In a future release of Bison, this section will be replaced
+ by #include "parse-gram.h". */
+#ifndef GRAM_Y_TAB_H
+# define GRAM_Y_TAB_H
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 1
+#endif
+#if YYDEBUG
+extern int gram_debug;
#endif
-
/* Tokens. */
#ifndef YYTOKENTYPE
-
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
{
-
-/* Line 295 of yacc.c */
+/* Line 350 of yacc.c */
#line 114 "parse-gram.y"
symbol *symbol;
named_ref *named_ref;
-
-/* Line 295 of yacc.c */
-#line 348 "parse-gram.c"
+/* Line 350 of yacc.c */
+#line 342 "parse-gram.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
#endif
-/* Copy the second part of user declarations. */
+#ifdef YYPARSE_PARAM
+#if defined __STDC__ || defined __cplusplus
+int gram_parse (void *YYPARSE_PARAM);
+#else
+int gram_parse ();
+#endif
+#else /* ! YYPARSE_PARAM */
+#if defined __STDC__ || defined __cplusplus
+int gram_parse (void);
+#else
+int gram_parse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+#endif /* !GRAM_Y_TAB_H */
-/* Line 345 of yacc.c */
-#line 373 "parse-gram.c"
+/* Copy the second part of user declarations. */
+
+/* Line 353 of yacc.c */
+#line 382 "parse-gram.c"
#ifdef short
# undef short
0, 229, 229, 237, 239, 243, 244, 254, 255, 260,
261, 266, 267, 268, 269, 270, 271, 276, 285, 286,
287, 288, 289, 290, 291, 292, 293, 294, 295, 310,
- 311, 335, 336, 337, 338, 342, 343, 344, 348, 355,
- 362, 366, 370, 377, 392, 393, 397, 409, 409, 414,
- 414, 419, 430, 445, 446, 447, 451, 452, 457, 459,
- 464, 465, 470, 472, 477, 478, 482, 483, 484, 485,
- 490, 495, 500, 506, 512, 523, 524, 533, 534, 540,
- 541, 542, 549, 549, 557, 558, 559, 564, 566, 568,
- 570, 572, 574, 579, 581, 592, 593, 598, 599, 600,
- 609, 629, 631, 640, 645, 646, 651, 658, 660
+ 311, 335, 336, 337, 338, 342, 343, 344, 348, 360,
+ 372, 376, 380, 387, 402, 403, 407, 419, 419, 424,
+ 424, 429, 440, 455, 456, 457, 461, 462, 467, 469,
+ 474, 475, 480, 482, 487, 488, 492, 493, 494, 495,
+ 500, 505, 510, 516, 522, 533, 534, 543, 544, 550,
+ 551, 552, 559, 559, 567, 568, 569, 574, 576, 578,
+ 580, 582, 584, 589, 591, 602, 603, 608, 609, 610,
+ 619, 639, 641, 650, 655, 656, 661, 668, 670
};
#endif
-#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+#if YYDEBUG || YYERROR_VERBOSE || 1
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
#define YYTERROR 1
#define YYERRCODE 256
-
/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
If N is 0, then set CURRENT to the empty location which ends
the previous symbol: RHS[0] (always defined). */
-#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- do \
- if (YYID (N)) \
- { \
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
- } \
- else \
- { \
- (Current).first_line = (Current).last_line = \
- YYRHSLOC (Rhs, 0).last_line; \
- (Current).first_column = (Current).last_column = \
- YYRHSLOC (Rhs, 0).last_column; \
- } \
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ do \
+ if (YYID (N)) \
+ { \
+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
+ } \
+ else \
+ { \
+ (Current).first_line = (Current).last_line = \
+ YYRHSLOC (Rhs, 0).last_line; \
+ (Current).first_column = (Current).last_column = \
+ YYRHSLOC (Rhs, 0).last_column; \
+ } \
while (YYID (0))
#endif
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+
+
/* YY_LOCATION_PRINT -- Print the location on the stream.
This macro was not mandated originally: define only if we know
# endif
switch (yytype)
{
- case 3: /* "\"string\"" */
-
-/* Line 823 of yacc.c */
+ case 3: /* "string" */
+/* Line 809 of yacc.c */
#line 204 "parse-gram.y"
- { fputs (quotearg_style (c_quoting_style, (yyvaluep->chars)), stderr); };
-
-/* Line 823 of yacc.c */
-#line 1069 "parse-gram.c"
+ { fputs (quotearg_style (c_quoting_style, ((*yyvaluep).chars)), stderr); };
+/* Line 809 of yacc.c */
+#line 1077 "parse-gram.c"
break;
- case 4: /* "\"integer\"" */
-
-/* Line 823 of yacc.c */
+ case 4: /* "integer" */
+/* Line 809 of yacc.c */
#line 216 "parse-gram.y"
- { fprintf (stderr, "%d", (yyvaluep->integer)); };
-
-/* Line 823 of yacc.c */
-#line 1078 "parse-gram.c"
+ { fprintf (stderr, "%d", ((*yyvaluep).integer)); };
+/* Line 809 of yacc.c */
+#line 1084 "parse-gram.c"
break;
- case 43: /* "\"{...}\"" */
-
-/* Line 823 of yacc.c */
+ case 43: /* "{...}" */
+/* Line 809 of yacc.c */
#line 206 "parse-gram.y"
- { fprintf (stderr, "{\n%s\n}", (yyvaluep->code)); };
-
-/* Line 823 of yacc.c */
-#line 1087 "parse-gram.c"
+ { fprintf (stderr, "{\n%s\n}", ((*yyvaluep).code)); };
+/* Line 809 of yacc.c */
+#line 1091 "parse-gram.c"
break;
- case 44: /* "\"[identifier]\"" */
-
-/* Line 823 of yacc.c */
+ case 44: /* "[identifier]" */
+/* Line 809 of yacc.c */
#line 211 "parse-gram.y"
- { fprintf (stderr, "[%s]", (yyvaluep->uniqstr)); };
-
-/* Line 823 of yacc.c */
-#line 1096 "parse-gram.c"
+ { fprintf (stderr, "[%s]", ((*yyvaluep).uniqstr)); };
+/* Line 809 of yacc.c */
+#line 1098 "parse-gram.c"
break;
- case 45: /* "\"char\"" */
-
-/* Line 823 of yacc.c */
+ case 45: /* "char" */
+/* Line 809 of yacc.c */
#line 198 "parse-gram.y"
- { fputs (char_name ((yyvaluep->character)), stderr); };
-
-/* Line 823 of yacc.c */
+ { fputs (char_name (((*yyvaluep).character)), stderr); };
+/* Line 809 of yacc.c */
#line 1105 "parse-gram.c"
break;
- case 46: /* "\"epilogue\"" */
-
-/* Line 823 of yacc.c */
+ case 46: /* "epilogue" */
+/* Line 809 of yacc.c */
#line 206 "parse-gram.y"
- { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-
-/* Line 823 of yacc.c */
-#line 1114 "parse-gram.c"
+ { fprintf (stderr, "{\n%s\n}", ((*yyvaluep).chars)); };
+/* Line 809 of yacc.c */
+#line 1112 "parse-gram.c"
break;
- case 48: /* "\"identifier\"" */
-
-/* Line 823 of yacc.c */
+ case 48: /* "identifier" */
+/* Line 809 of yacc.c */
#line 210 "parse-gram.y"
- { fputs ((yyvaluep->uniqstr), stderr); };
-
-/* Line 823 of yacc.c */
-#line 1123 "parse-gram.c"
+ { fputs (((*yyvaluep).uniqstr), stderr); };
+/* Line 809 of yacc.c */
+#line 1119 "parse-gram.c"
break;
- case 49: /* "\"identifier:\"" */
-
-/* Line 823 of yacc.c */
+ case 49: /* "identifier:" */
+/* Line 809 of yacc.c */
#line 212 "parse-gram.y"
- { fprintf (stderr, "%s:", (yyvaluep->uniqstr)); };
-
-/* Line 823 of yacc.c */
-#line 1132 "parse-gram.c"
+ { fprintf (stderr, "%s:", ((*yyvaluep).uniqstr)); };
+/* Line 809 of yacc.c */
+#line 1126 "parse-gram.c"
break;
- case 52: /* "\"%{...%}\"" */
-
-/* Line 823 of yacc.c */
+ case 52: /* "%{...%}" */
+/* Line 809 of yacc.c */
#line 206 "parse-gram.y"
- { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-
-/* Line 823 of yacc.c */
-#line 1141 "parse-gram.c"
+ { fprintf (stderr, "{\n%s\n}", ((*yyvaluep).chars)); };
+/* Line 809 of yacc.c */
+#line 1133 "parse-gram.c"
break;
- case 54: /* "\"type\"" */
-
-/* Line 823 of yacc.c */
+ case 54: /* "type" */
+/* Line 809 of yacc.c */
#line 213 "parse-gram.y"
- { fprintf (stderr, "<%s>", (yyvaluep->uniqstr)); };
-
-/* Line 823 of yacc.c */
-#line 1150 "parse-gram.c"
+ { fprintf (stderr, "<%s>", ((*yyvaluep).uniqstr)); };
+/* Line 809 of yacc.c */
+#line 1140 "parse-gram.c"
break;
- case 71: /* "symbol.prec" */
-
-/* Line 823 of yacc.c */
+ case 71: /* symbol.prec */
+/* Line 809 of yacc.c */
#line 219 "parse-gram.y"
- { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
-
-/* Line 823 of yacc.c */
-#line 1159 "parse-gram.c"
+ { fprintf (stderr, "%s", ((*yyvaluep).symbol)->tag); };
+/* Line 809 of yacc.c */
+#line 1147 "parse-gram.c"
break;
- case 84: /* "variable" */
-
-/* Line 823 of yacc.c */
+ case 84: /* variable */
+/* Line 809 of yacc.c */
#line 210 "parse-gram.y"
- { fputs ((yyvaluep->uniqstr), stderr); };
-
-/* Line 823 of yacc.c */
-#line 1168 "parse-gram.c"
+ { fputs (((*yyvaluep).uniqstr), stderr); };
+/* Line 809 of yacc.c */
+#line 1154 "parse-gram.c"
break;
- case 85: /* "content.opt" */
-
-/* Line 823 of yacc.c */
+ case 85: /* content.opt */
+/* Line 809 of yacc.c */
#line 206 "parse-gram.y"
- { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-
-/* Line 823 of yacc.c */
-#line 1177 "parse-gram.c"
+ { fprintf (stderr, "{\n%s\n}", ((*yyvaluep).chars)); };
+/* Line 809 of yacc.c */
+#line 1161 "parse-gram.c"
break;
- case 86: /* "braceless" */
-
-/* Line 823 of yacc.c */
+ case 86: /* braceless */
+/* Line 809 of yacc.c */
#line 206 "parse-gram.y"
- { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-
-/* Line 823 of yacc.c */
-#line 1186 "parse-gram.c"
+ { fprintf (stderr, "{\n%s\n}", ((*yyvaluep).chars)); };
+/* Line 809 of yacc.c */
+#line 1168 "parse-gram.c"
break;
- case 87: /* "id" */
-
-/* Line 823 of yacc.c */
+ case 87: /* id */
+/* Line 809 of yacc.c */
#line 219 "parse-gram.y"
- { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
-
-/* Line 823 of yacc.c */
-#line 1195 "parse-gram.c"
+ { fprintf (stderr, "%s", ((*yyvaluep).symbol)->tag); };
+/* Line 809 of yacc.c */
+#line 1175 "parse-gram.c"
break;
- case 88: /* "id_colon" */
-
-/* Line 823 of yacc.c */
+ case 88: /* id_colon */
+/* Line 809 of yacc.c */
#line 220 "parse-gram.y"
- { fprintf (stderr, "%s:", (yyvaluep->symbol)->tag); };
-
-/* Line 823 of yacc.c */
-#line 1204 "parse-gram.c"
+ { fprintf (stderr, "%s:", ((*yyvaluep).symbol)->tag); };
+/* Line 809 of yacc.c */
+#line 1182 "parse-gram.c"
break;
- case 89: /* "symbol" */
-
-/* Line 823 of yacc.c */
+ case 89: /* symbol */
+/* Line 809 of yacc.c */
#line 219 "parse-gram.y"
- { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
-
-/* Line 823 of yacc.c */
-#line 1213 "parse-gram.c"
+ { fprintf (stderr, "%s", ((*yyvaluep).symbol)->tag); };
+/* Line 809 of yacc.c */
+#line 1189 "parse-gram.c"
break;
- case 90: /* "string_as_id" */
-
-/* Line 823 of yacc.c */
+ case 90: /* string_as_id */
+/* Line 809 of yacc.c */
#line 219 "parse-gram.y"
- { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
-
-/* Line 823 of yacc.c */
-#line 1222 "parse-gram.c"
+ { fprintf (stderr, "%s", ((*yyvaluep).symbol)->tag); };
+/* Line 809 of yacc.c */
+#line 1196 "parse-gram.c"
break;
default:
break;
}
-/* Prevent warnings from -Wmissing-prototypes. */
-#ifdef YYPARSE_PARAM
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void *YYPARSE_PARAM);
-#else
-int yyparse ();
-#endif
-#else /* ! YYPARSE_PARAM */
-#if defined __STDC__ || defined __cplusplus
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
/*----------.
`yyvs': related to semantic values.
`yyls': related to locations.
- Refer to the stacks thru separate pointers, to allow yyoverflow
+ Refer to the stacks through separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
/* The state stack. */
#endif
/* User initialization code. */
-
-/* Line 1594 of yacc.c */
+/* Line 1572 of yacc.c */
#line 106 "parse-gram.y"
{
/* Bison's grammar can initial empty locations, hence a default
boundary_set (&yylloc.start, current_file, 1, 1);
boundary_set (&yylloc.end, current_file, 1, 1);
}
-
-/* Line 1594 of yacc.c */
-#line 2023 "parse-gram.c"
+/* Line 1572 of yacc.c */
+#line 1981 "parse-gram.c"
yylsp[0] = yylloc;
-
goto yysetstate;
/*------------------------------------------------------------.
switch (yyn)
{
case 6:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 245 "parse-gram.y"
{
code_props plain_code;
break;
case 7:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 254 "parse-gram.y"
{ debug_flag = true; }
break;
case 8:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 256 "parse-gram.y"
{
muscle_percent_define_insert ((yyvsp[(2) - (3)].uniqstr), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].chars),
break;
case 9:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 260 "parse-gram.y"
{ defines_flag = true; }
break;
case 10:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 262 "parse-gram.y"
{
defines_flag = true;
break;
case 11:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 266 "parse-gram.y"
{ error_verbose = true; }
break;
case 12:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 267 "parse-gram.y"
{ expected_sr_conflicts = (yyvsp[(2) - (2)].integer); }
break;
case 13:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 268 "parse-gram.y"
{ expected_rr_conflicts = (yyvsp[(2) - (2)].integer); }
break;
case 14:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 269 "parse-gram.y"
{ spec_file_prefix = (yyvsp[(2) - (2)].chars); }
break;
case 15:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 270 "parse-gram.y"
{ spec_file_prefix = (yyvsp[(3) - (3)].chars); }
break;
case 16:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 272 "parse-gram.y"
{
nondeterministic_parser = true;
break;
case 17:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 277 "parse-gram.y"
{
code_props action;
break;
case 18:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 285 "parse-gram.y"
{ language_argmatch ((yyvsp[(2) - (2)].chars), grammar_prio, (yylsp[(1) - (2)])); }
break;
case 19:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 286 "parse-gram.y"
{ add_param ("lex_param", (yyvsp[(2) - (2)].code), (yylsp[(2) - (2)])); }
break;
case 20:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 287 "parse-gram.y"
{ locations_flag = true; }
break;
case 21:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 288 "parse-gram.y"
{ spec_name_prefix = (yyvsp[(2) - (2)].chars); }
break;
case 22:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 289 "parse-gram.y"
{ spec_name_prefix = (yyvsp[(3) - (3)].chars); }
break;
case 23:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 290 "parse-gram.y"
{ no_lines_flag = true; }
break;
case 24:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 291 "parse-gram.y"
{ nondeterministic_parser = true; }
break;
case 25:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 292 "parse-gram.y"
{ spec_outfile = (yyvsp[(2) - (2)].chars); }
break;
case 26:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 293 "parse-gram.y"
{ spec_outfile = (yyvsp[(3) - (3)].chars); }
break;
case 27:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 294 "parse-gram.y"
{ add_param ("parse_param", (yyvsp[(2) - (2)].code), (yylsp[(2) - (2)])); }
break;
case 28:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 296 "parse-gram.y"
{
/* %pure-parser is deprecated in favor of `%define api.pure', so use
break;
case 29:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 310 "parse-gram.y"
{ version_check (&(yylsp[(2) - (2)]), (yyvsp[(2) - (2)].chars)); }
break;
case 30:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 312 "parse-gram.y"
{
char const *skeleton_user = (yyvsp[(2) - (2)].chars);
break;
case 31:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 335 "parse-gram.y"
{ token_table_flag = true; }
break;
case 32:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 336 "parse-gram.y"
{ report_flag |= report_states; }
break;
case 33:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 337 "parse-gram.y"
{ yacc_flag = true; }
break;
case 37:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 345 "parse-gram.y"
{
grammar_start_symbol_set ((yyvsp[(2) - (2)].symbol), (yylsp[(2) - (2)]));
break;
case 38:
-
-/* Line 1810 of yacc.c */
+/* Line 1787 of yacc.c */
#line 349 "parse-gram.y"
{
- symbol_list *list;
- for (list = (yyvsp[(3) - (3)].list); list; list = list->next)
- symbol_list_destructor_set (list, (yyvsp[(2) - (3)].code), (yylsp[(2) - (3)]));
- symbol_list_free ((yyvsp[(3) - (3)].list));
+ code_props code;
+ code_props_symbol_action_init (&code, (yyvsp[(2) - (3)].code), (yylsp[(2) - (3)]));
+ code_props_translate_code (&code);
+ {
+ symbol_list *list;
+ for (list = (yyvsp[(3) - (3)].list); list; list = list->next)
+ symbol_list_destructor_set (list, &code);
+ symbol_list_free ((yyvsp[(3) - (3)].list));
+ }
}
break;
case 39:
-
-/* Line 1810 of yacc.c */
-#line 356 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 361 "parse-gram.y"
{
- symbol_list *list;
- for (list = (yyvsp[(3) - (3)].list); list; list = list->next)
- symbol_list_printer_set (list, (yyvsp[(2) - (3)].code), (yylsp[(2) - (3)]));
- symbol_list_free ((yyvsp[(3) - (3)].list));
+ code_props code;
+ code_props_symbol_action_init (&code, (yyvsp[(2) - (3)].code), (yylsp[(2) - (3)]));
+ code_props_translate_code (&code);
+ {
+ symbol_list *list;
+ for (list = (yyvsp[(3) - (3)].list); list; list = list->next)
+ symbol_list_printer_set (list, &code);
+ symbol_list_free ((yyvsp[(3) - (3)].list));
+ }
}
break;
case 40:
-
-/* Line 1810 of yacc.c */
-#line 363 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 373 "parse-gram.y"
{
default_prec = true;
}
break;
case 41:
-
-/* Line 1810 of yacc.c */
-#line 367 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 377 "parse-gram.y"
{
default_prec = false;
}
break;
case 42:
-
-/* Line 1810 of yacc.c */
-#line 371 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 381 "parse-gram.y"
{
/* Do not invoke muscle_percent_code_grow here since it invokes
muscle_user_name_list_grow. */
break;
case 43:
-
-/* Line 1810 of yacc.c */
-#line 378 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 388 "parse-gram.y"
{
muscle_percent_code_grow ((yyvsp[(2) - (3)].uniqstr), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].chars), (yylsp[(3) - (3)]));
code_scanner_last_string_free ();
break;
case 44:
-
-/* Line 1810 of yacc.c */
-#line 392 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 402 "parse-gram.y"
{}
break;
case 45:
-
-/* Line 1810 of yacc.c */
-#line 393 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 403 "parse-gram.y"
{ muscle_code_grow ("union_name", (yyvsp[(1) - (1)].uniqstr), (yylsp[(1) - (1)])); }
break;
case 46:
-
-/* Line 1810 of yacc.c */
-#line 398 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 408 "parse-gram.y"
{
union_seen = true;
muscle_code_grow ("stype", (yyvsp[(3) - (3)].chars), (yylsp[(3) - (3)]));
break;
case 47:
-
-/* Line 1810 of yacc.c */
-#line 409 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 419 "parse-gram.y"
{ current_class = nterm_sym; }
break;
case 48:
-
-/* Line 1810 of yacc.c */
-#line 410 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 420 "parse-gram.y"
{
current_class = unknown_sym;
current_type = NULL;
break;
case 49:
-
-/* Line 1810 of yacc.c */
-#line 414 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 424 "parse-gram.y"
{ current_class = token_sym; }
break;
case 50:
-
-/* Line 1810 of yacc.c */
-#line 415 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 425 "parse-gram.y"
{
current_class = unknown_sym;
current_type = NULL;
break;
case 51:
-
-/* Line 1810 of yacc.c */
-#line 420 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 430 "parse-gram.y"
{
symbol_list *list;
tag_seen = true;
break;
case 52:
-
-/* Line 1810 of yacc.c */
-#line 431 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 441 "parse-gram.y"
{
symbol_list *list;
++current_prec;
break;
case 53:
-
-/* Line 1810 of yacc.c */
-#line 445 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 455 "parse-gram.y"
{ (yyval.assoc) = left_assoc; }
break;
case 54:
-
-/* Line 1810 of yacc.c */
-#line 446 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 456 "parse-gram.y"
{ (yyval.assoc) = right_assoc; }
break;
case 55:
-
-/* Line 1810 of yacc.c */
-#line 447 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 457 "parse-gram.y"
{ (yyval.assoc) = non_assoc; }
break;
case 56:
-
-/* Line 1810 of yacc.c */
-#line 451 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 461 "parse-gram.y"
{ current_type = NULL; }
break;
case 57:
-
-/* Line 1810 of yacc.c */
-#line 452 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 462 "parse-gram.y"
{ current_type = (yyvsp[(1) - (1)].uniqstr); tag_seen = true; }
break;
case 58:
-
-/* Line 1810 of yacc.c */
-#line 458 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 468 "parse-gram.y"
{ (yyval.list) = symbol_list_sym_new ((yyvsp[(1) - (1)].symbol), (yylsp[(1) - (1)])); }
break;
case 59:
-
-/* Line 1810 of yacc.c */
-#line 460 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 470 "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 1810 of yacc.c */
-#line 464 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 474 "parse-gram.y"
{ (yyval.symbol) = (yyvsp[(1) - (1)].symbol); }
break;
case 61:
-
-/* Line 1810 of yacc.c */
-#line 465 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 475 "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 1810 of yacc.c */
-#line 471 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 481 "parse-gram.y"
{ (yyval.list) = symbol_list_sym_new ((yyvsp[(1) - (1)].symbol), (yylsp[(1) - (1)])); }
break;
case 63:
-
-/* Line 1810 of yacc.c */
-#line 473 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 483 "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 1810 of yacc.c */
-#line 477 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 487 "parse-gram.y"
{ (yyval.list) = (yyvsp[(1) - (1)].list); }
break;
case 65:
-
-/* Line 1810 of yacc.c */
-#line 478 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 488 "parse-gram.y"
{ (yyval.list) = symbol_list_prepend ((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].list)); }
break;
case 66:
-
-/* Line 1810 of yacc.c */
-#line 482 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 492 "parse-gram.y"
{ (yyval.list) = symbol_list_sym_new ((yyvsp[(1) - (1)].symbol), (yylsp[(1) - (1)])); }
break;
case 67:
-
-/* Line 1810 of yacc.c */
-#line 483 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 493 "parse-gram.y"
{ (yyval.list) = symbol_list_type_new ((yyvsp[(1) - (1)].uniqstr), (yylsp[(1) - (1)])); }
break;
case 68:
-
-/* Line 1810 of yacc.c */
-#line 484 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 494 "parse-gram.y"
{ (yyval.list) = symbol_list_default_tagged_new ((yylsp[(1) - (1)])); }
break;
case 69:
-
-/* Line 1810 of yacc.c */
-#line 485 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 495 "parse-gram.y"
{ (yyval.list) = symbol_list_default_tagless_new ((yylsp[(1) - (1)])); }
break;
case 70:
-
-/* Line 1810 of yacc.c */
-#line 491 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 501 "parse-gram.y"
{
current_type = (yyvsp[(1) - (1)].uniqstr);
tag_seen = true;
break;
case 71:
-
-/* Line 1810 of yacc.c */
-#line 496 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 506 "parse-gram.y"
{
symbol_class_set ((yyvsp[(1) - (1)].symbol), current_class, (yylsp[(1) - (1)]), true);
symbol_type_set ((yyvsp[(1) - (1)].symbol), current_type, (yylsp[(1) - (1)]));
break;
case 72:
-
-/* Line 1810 of yacc.c */
-#line 501 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 511 "parse-gram.y"
{
symbol_class_set ((yyvsp[(1) - (2)].symbol), current_class, (yylsp[(1) - (2)]), true);
symbol_type_set ((yyvsp[(1) - (2)].symbol), current_type, (yylsp[(1) - (2)]));
break;
case 73:
-
-/* Line 1810 of yacc.c */
-#line 507 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 517 "parse-gram.y"
{
symbol_class_set ((yyvsp[(1) - (2)].symbol), current_class, (yylsp[(1) - (2)]), true);
symbol_type_set ((yyvsp[(1) - (2)].symbol), current_type, (yylsp[(1) - (2)]));
break;
case 74:
-
-/* Line 1810 of yacc.c */
-#line 513 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 523 "parse-gram.y"
{
symbol_class_set ((yyvsp[(1) - (3)].symbol), current_class, (yylsp[(1) - (3)]), true);
symbol_type_set ((yyvsp[(1) - (3)].symbol), current_type, (yylsp[(1) - (3)]));
break;
case 81:
-
-/* Line 1810 of yacc.c */
-#line 543 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 553 "parse-gram.y"
{
yyerrok;
}
break;
case 82:
-
-/* Line 1810 of yacc.c */
-#line 549 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 559 "parse-gram.y"
{ current_lhs ((yyvsp[(1) - (2)].symbol), (yylsp[(1) - (2)]), (yyvsp[(2) - (2)].named_ref)); }
break;
case 83:
-
-/* Line 1810 of yacc.c */
-#line 550 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 560 "parse-gram.y"
{
/* Free the current lhs. */
current_lhs (0, (yylsp[(1) - (4)]), 0);
break;
case 84:
-
-/* Line 1810 of yacc.c */
-#line 557 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 567 "parse-gram.y"
{ grammar_current_rule_end ((yylsp[(1) - (1)])); }
break;
case 85:
-
-/* Line 1810 of yacc.c */
-#line 558 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 568 "parse-gram.y"
{ grammar_current_rule_end ((yylsp[(3) - (3)])); }
break;
case 87:
-
-/* Line 1810 of yacc.c */
-#line 564 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 574 "parse-gram.y"
{ grammar_current_rule_begin (current_lhs_symbol, current_lhs_location,
current_lhs_named_ref); }
break;
case 88:
-
-/* Line 1810 of yacc.c */
-#line 567 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 577 "parse-gram.y"
{ grammar_current_rule_symbol_append ((yyvsp[(2) - (3)].symbol), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].named_ref)); }
break;
case 89:
-
-/* Line 1810 of yacc.c */
-#line 569 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 579 "parse-gram.y"
{ grammar_current_rule_action_append ((yyvsp[(2) - (3)].code), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].named_ref)); }
break;
case 90:
-
-/* Line 1810 of yacc.c */
-#line 571 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 581 "parse-gram.y"
{ grammar_current_rule_prec_set ((yyvsp[(3) - (3)].symbol), (yylsp[(3) - (3)])); }
break;
case 91:
-
-/* Line 1810 of yacc.c */
-#line 573 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 583 "parse-gram.y"
{ grammar_current_rule_dprec_set ((yyvsp[(3) - (3)].integer), (yylsp[(3) - (3)])); }
break;
case 92:
-
-/* Line 1810 of yacc.c */
-#line 575 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 585 "parse-gram.y"
{ grammar_current_rule_merge_set ((yyvsp[(3) - (3)].uniqstr), (yylsp[(3) - (3)])); }
break;
case 93:
-
-/* Line 1810 of yacc.c */
-#line 579 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 589 "parse-gram.y"
{ (yyval.named_ref) = 0; }
break;
case 94:
-
-/* Line 1810 of yacc.c */
-#line 581 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 591 "parse-gram.y"
{ (yyval.named_ref) = named_ref_new((yyvsp[(1) - (1)].uniqstr), (yylsp[(1) - (1)])); }
break;
case 96:
-
-/* Line 1810 of yacc.c */
-#line 593 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 603 "parse-gram.y"
{ (yyval.uniqstr) = uniqstr_new ((yyvsp[(1) - (1)].chars)); }
break;
case 97:
-
-/* Line 1810 of yacc.c */
-#line 598 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 608 "parse-gram.y"
{ (yyval.chars) = ""; }
break;
case 98:
-
-/* Line 1810 of yacc.c */
-#line 599 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 609 "parse-gram.y"
{ (yyval.chars) = (yyvsp[(1) - (1)].uniqstr); }
break;
case 100:
-
-/* Line 1810 of yacc.c */
-#line 610 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 620 "parse-gram.y"
{
code_props plain_code;
(yyvsp[(1) - (1)].code)[strlen ((yyvsp[(1) - (1)].code)) - 1] = '\n';
break;
case 101:
-
-/* Line 1810 of yacc.c */
-#line 630 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 640 "parse-gram.y"
{ (yyval.symbol) = symbol_from_uniqstr ((yyvsp[(1) - (1)].uniqstr), (yylsp[(1) - (1)])); }
break;
case 102:
-
-/* Line 1810 of yacc.c */
-#line 632 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 642 "parse-gram.y"
{
(yyval.symbol) = symbol_get (char_name ((yyvsp[(1) - (1)].character)), (yylsp[(1) - (1)]));
symbol_class_set ((yyval.symbol), token_sym, (yylsp[(1) - (1)]), false);
break;
case 103:
-
-/* Line 1810 of yacc.c */
-#line 640 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 650 "parse-gram.y"
{ (yyval.symbol) = symbol_from_uniqstr ((yyvsp[(1) - (1)].uniqstr), (yylsp[(1) - (1)])); }
break;
case 106:
-
-/* Line 1810 of yacc.c */
-#line 652 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 662 "parse-gram.y"
{
(yyval.symbol) = symbol_get (quotearg_style (c_quoting_style, (yyvsp[(1) - (1)].chars)), (yylsp[(1) - (1)]));
symbol_class_set ((yyval.symbol), token_sym, (yylsp[(1) - (1)]), false);
break;
case 108:
-
-/* Line 1810 of yacc.c */
-#line 661 "parse-gram.y"
+/* Line 1787 of yacc.c */
+#line 671 "parse-gram.y"
{
code_props plain_code;
code_props_plain_init (&plain_code, (yyvsp[(2) - (2)].chars), (yylsp[(2) - (2)]));
break;
-
-/* Line 1810 of yacc.c */
-#line 2989 "parse-gram.c"
+/* Line 1787 of yacc.c */
+#line 2867 "parse-gram.c"
default: break;
}
if (yychar_backup != yychar)
}
-
-/* Line 2071 of yacc.c */
-#line 671 "parse-gram.y"
+/* Line 2048 of yacc.c */
+#line 681 "parse-gram.y"
/* Strip the surrounding '{' and '}', and any blanks just inside
the braces. */
- while (*--p == ' ' || *p == '\t')
- continue;
+ --p;
+ while (isspace ((unsigned char) *p))
+ --p;
p[1] = '\0';
- while (*++decl == ' ' || *decl == '\t')
- continue;
+ ++decl;
+ while (isspace ((unsigned char) *decl))
+ ++decl;
if (! name_start)
complain_at (loc, _("missing identifier in parameter declaration"));
return quotearg_style (escape_quoting_style, buf);
}
}
-