/* Line 219 of yacc.c. */
#line 291 "../../src/parse-gram.c"
+/* Define YYMODERN_C if this compiler supports C89 or better. If
+ __STDC__ is defined, the compiler is modern. IBM xlc 7.0 when run
+ as 'cc' doesn't define __STDC__ (or __STDC_VERSION__) for pedantic
+ reasons, but it defines __C99__FUNC__ so check that as well.
+ Consider a C++ compiler to be modern if it defines __cplusplus. */
+#ifndef YYMODERN_C
+# if defined (__STDC__) || defined (__C99__FUNC__) || defined (__cplusplus)
+# define YYMODERN_C 1
+# else
+# define YYMODERN_C 0
+# endif
+#endif
+
#ifndef YYSIZE_T
# if defined (__SIZE_TYPE__)
# define YYSIZE_T __SIZE_TYPE__
# elif defined (size_t)
# define YYSIZE_T size_t
-# elif ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
+# elif ! defined (YYSIZE_T) && YYMODERN_C
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# else
# endif
#endif
+/* Suppress unused-variable warnings by "using" E. */
+#define YYUSE(e) do {;} while (/*CONSTCOND*/ 0 && (e))
+
#if ! defined (yyoverflow) || YYERROR_VERBOSE
/* The parser invokes alloca or malloc; define the necessary symbols. */
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
-# if (! defined (_ALLOCA_H) && ! defined (_STDLIB_H) \
- && (defined (__STDC__) || defined (__cplusplus)))
+# if ! defined (_ALLOCA_H) && ! defined (_STDLIB_H) && YYMODERN_C
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# ifndef _STDLIB_H
# define _STDLIB_H 1
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
-# if (! defined (malloc) && ! defined (_STDLIB_H) \
- && (defined (__STDC__) || defined (__cplusplus)))
+# if ! defined (malloc) && ! defined (_STDLIB_H) && YYMODERN_C
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 (__cplusplus)))
+# if ! defined (free) && ! defined (_STDLIB_H) && YYMODERN_C
void free (void *); /* INFRINGES ON USER NAME SPACE */
# endif
# endif
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
- while (0)
+ while (/*CONSTCOND*/ 0)
# endif
# endif
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
- while (0)
+ while (/*CONSTCOND*/ 0)
#endif
-#if defined (__STDC__) || defined (__cplusplus)
+#if YYMODERN_C
typedef signed char yysigned_char;
#else
typedef short int yysigned_char;
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
-while (0)
+while (/*CONSTCOND*/ 0)
#define YYTERROR 1
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
- while (0)
+ while (/*CONSTCOND*/ 0)
#endif
do { \
if (yydebug) \
YYFPRINTF Args; \
-} while (0)
-
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yysymprint (stderr, \
- Type, Value, Location); \
- YYFPRINTF (stderr, "\n"); \
- } \
-} while (0)
+} while (/*CONSTCOND*/ 0)
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yysymprint (stderr, \
+ Type, Value, Location); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (/*CONSTCOND*/ 0)
/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included). |
`------------------------------------------------------------------*/
-#if defined (__STDC__) || defined (__cplusplus)
+#if defined (__STDC__) || defined (__C99__FUNC__) || defined (__cplusplus)
static void
yy_stack_print (short int *bottom, short int *top)
#else
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
-} while (0)
+} while (/*CONSTCOND*/ 0)
/*------------------------------------------------.
| Report that the YYRULE is going to be reduced. |
`------------------------------------------------*/
-#if defined (__STDC__) || defined (__cplusplus)
+#if defined (__STDC__) || defined (__C99__FUNC__) || defined (__cplusplus)
static void
yy_reduce_print (int yyrule)
#else
do { \
if (yydebug) \
yy_reduce_print (Rule); \
-} while (0)
+} while (/*CONSTCOND*/ 0)
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
# else
/* Return the length of YYSTR. */
static YYSIZE_T
-# if defined (__STDC__) || defined (__cplusplus)
+# if YYMODERN_C
yystrlen (const char *yystr)
# else
yystrlen (yystr)
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
YYDEST. */
static char *
-# if defined (__STDC__) || defined (__cplusplus)
+# if YYMODERN_C
yystpcpy (char *yydest, const char *yysrc)
# else
yystpcpy (yydest, yysrc)
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
-#if defined (__STDC__) || defined (__cplusplus)
+#if defined (__STDC__) || defined (__C99__FUNC__) || defined (__cplusplus)
static void
yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
#else
YYLTYPE *yylocationp;
#endif
{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
- (void) yylocationp;
+ YYUSE (yyvaluep);
+ YYUSE (yylocationp);
if (yytype < YYNTOKENS)
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
case 3: /* "\"string\"" */
#line 169 "../../src/parse-gram.y"
{ fprintf (stderr, "\"%s\"", (yyvaluep->chars)); };
-#line 1199 "../../src/parse-gram.c"
+#line 1211 "../../src/parse-gram.c"
break;
case 4: /* "\"integer\"" */
#line 182 "../../src/parse-gram.y"
{ fprintf (stderr, "%d", (yyvaluep->integer)); };
-#line 1204 "../../src/parse-gram.c"
+#line 1216 "../../src/parse-gram.c"
break;
case 8: /* "\"%destructor {...}\"" */
#line 171 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1209 "../../src/parse-gram.c"
+#line 1221 "../../src/parse-gram.c"
break;
case 9: /* "\"%printer {...}\"" */
#line 175 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1214 "../../src/parse-gram.c"
+#line 1226 "../../src/parse-gram.c"
break;
case 10: /* "\"%union {...}\"" */
#line 176 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1219 "../../src/parse-gram.c"
+#line 1231 "../../src/parse-gram.c"
break;
case 26: /* "\"%initial-action {...}\"" */
#line 172 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1224 "../../src/parse-gram.c"
+#line 1236 "../../src/parse-gram.c"
break;
case 27: /* "\"%lex-param {...}\"" */
#line 173 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1229 "../../src/parse-gram.c"
+#line 1241 "../../src/parse-gram.c"
break;
case 34: /* "\"%parse-param {...}\"" */
#line 174 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1234 "../../src/parse-gram.c"
+#line 1246 "../../src/parse-gram.c"
break;
case 42: /* "\"type\"" */
#line 180 "../../src/parse-gram.y"
{ fprintf (stderr, "<%s>", (yyvaluep->uniqstr)); };
-#line 1239 "../../src/parse-gram.c"
+#line 1251 "../../src/parse-gram.c"
break;
case 46: /* "\"identifier\"" */
#line 184 "../../src/parse-gram.y"
{ fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
-#line 1244 "../../src/parse-gram.c"
+#line 1256 "../../src/parse-gram.c"
break;
case 47: /* "\"identifier:\"" */
#line 186 "../../src/parse-gram.y"
{ fprintf (stderr, "%s:", (yyvaluep->symbol)->tag); };
-#line 1249 "../../src/parse-gram.c"
+#line 1261 "../../src/parse-gram.c"
break;
case 49: /* "\"%{...%}\"" */
#line 178 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1254 "../../src/parse-gram.c"
+#line 1266 "../../src/parse-gram.c"
break;
case 50: /* "\"epilogue\"" */
#line 178 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1259 "../../src/parse-gram.c"
+#line 1271 "../../src/parse-gram.c"
break;
case 51: /* "\"{...}\"" */
#line 177 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1264 "../../src/parse-gram.c"
+#line 1276 "../../src/parse-gram.c"
break;
case 72: /* "symbol" */
#line 184 "../../src/parse-gram.y"
{ fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
-#line 1269 "../../src/parse-gram.c"
+#line 1281 "../../src/parse-gram.c"
break;
case 73: /* "action" */
#line 177 "../../src/parse-gram.y"
{ fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1274 "../../src/parse-gram.c"
+#line 1286 "../../src/parse-gram.c"
break;
case 74: /* "string_as_id" */
#line 184 "../../src/parse-gram.y"
{ fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
-#line 1279 "../../src/parse-gram.c"
+#line 1291 "../../src/parse-gram.c"
break;
case 75: /* "string_content" */
#line 169 "../../src/parse-gram.y"
{ fprintf (stderr, "\"%s\"", (yyvaluep->chars)); };
-#line 1284 "../../src/parse-gram.c"
+#line 1296 "../../src/parse-gram.c"
break;
default:
break;
}
YYFPRINTF (yyoutput, ")");
}
-
#endif /* ! YYDEBUG */
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
`-----------------------------------------------*/
-#if defined (__STDC__) || defined (__cplusplus)
+#if defined (__STDC__) || defined (__C99__FUNC__) || defined (__cplusplus)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
#else
YYLTYPE *yylocationp;
#endif
{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
- (void) yylocationp;
+ YYUSE (yyvaluep);
+ YYUSE (yylocationp);
if (!yymsg)
yymsg = "Deleting";
/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
+# if YYMODERN_C
int yyparse (void *YYPARSE_PARAM);
# else
int yyparse ();
`----------*/
#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
+# if YYMODERN_C
int yyparse (void *YYPARSE_PARAM)
# else
int yyparse (YYPARSE_PARAM)
void *YYPARSE_PARAM;
# endif
#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
+#if defined (__STDC__) || defined (__C99__FUNC__) || defined (__cplusplus)
int
yyparse (void)
#else
int
yyparse ()
- ;
+
#endif
#endif
{
yylloc.start.line = yylloc.end.line = 1;
yylloc.start.column = yylloc.end.column = 0;
}
-/* Line 1053 of yacc.c. */
-#line 1464 "../../src/parse-gram.c"
+/* Line 1066 of yacc.c. */
+#line 1474 "../../src/parse-gram.c"
yylsp[0] = yylloc;
goto yysetstate;
default: break;
}
-/* Line 1249 of yacc.c. */
-#line 2057 "../../src/parse-gram.c"
+/* Line 1262 of yacc.c. */
+#line 2067 "../../src/parse-gram.c"
\f
yyvsp -= yylen;
yyssp -= yylen;
}
else
{
- yydestruct ("Error: discarding", yytoken, &yylval, &yylloc);
+ yydestruct ("Error: discarding",
+ yytoken, &yylval, &yylloc);
yychar = YYEMPTY;
}
}
/* Pacify compilers like GCC when the user code never invokes
YYERROR and the label yyerrorlab therefore never appears in user
code. */
- if (0)
+ if (/*CONSTCOND*/ 0)
goto yyerrorlab;
yyerror_range[0] = yylsp[1-yylen];
YYABORT;
yyerror_range[0] = *yylsp;
- yydestruct ("Error: popping", yystos[yystate], yyvsp, yylsp);
+ yydestruct ("Error: popping",
+ yystos[yystate], yyvsp, yylsp);
YYPOPSTACK;
yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp);
version_check (location const *loc, char const *version)
{
if (strverscmp (version, PACKAGE_VERSION) > 0)
- complain_at (*loc, "require bison %s, but have %s",
- version, PACKAGE_VERSION);
+ {
+ complain_at (*loc, "require bison %s, but have %s",
+ version, PACKAGE_VERSION);
+ exit (63);
+ }
}
static void