Newer
Older
134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
-1, -1, -1, -1, 148, -1, 150, 130, 131, 132,

Christophe Geuzaine
committed
133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
143, -1, -1, -1, -1, 148, -1, 150, 130, 131,

Christophe Geuzaine
committed
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
142, 143, -1, -1, -1, -1, 148, -1, 150, 130,

Christophe Geuzaine
committed
131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
141, 142, 143, -1, -1, -1, -1, 148, -1, 150,
130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
140, 141, 142, 143, -1, -1, -1, -1, 148, -1,
150, 130, 131, 132, 133, 134, 135, 136, 137, 138,
139, 140, 141, 142, 143, -1, -1, -1, -1, 148,
-1, 150, 130, 131, 132, 133, 134, 135, 136, 137,
138, 139, 140, 141, 142, 143, -1, -1, -1, -1,
148, -1, 150, 130, 131, 132, 133, 134, 135, 136,
137, 138, 139, 140, 141, 142, 143, -1, -1, -1,
-1, 148, -1, 150, 130, 131, 132, 133, 134, 135,
136, 137, 138, 139, 140, 141, 142, 143, -1, -1,
-1, -1, 148, -1, 150, 130, 131, 132, 133, 134,
135, 136, 137, 138, 139, 140, 141, 142, 143, -1,
-1, -1, -1, 148, -1, 150, 130, 131, 132, 133,
134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
-1, -1, -1, -1, 148, -1, 150, 130, 131, 132,

Christophe Geuzaine
committed
133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
143, -1, -1, -1, -1, 148, -1, 150, 130, 131,

Christophe Geuzaine
committed
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
142, 143, -1, -1, -1, -1, 148, -1, 150, 130,
131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
141, 142, 143, -1, -1, -1, -1, 148, -1, 150,
130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
140, 141, 142, 143, -1, -1, -1, -1, 148, -1,
150, 130, 131, 132, 133, 134, 135, 136, 137, 138,
139, 140, 141, 142, 143, -1, -1, -1, -1, 148,
-1, 150, 130, 131, 132, 133, 134, 135, 136, 137,
138, 139, 140, 141, 142, 143, -1, -1, -1, -1,
148, -1, 150, 130, 131, 132, 133, 134, 135, 136,
137, 138, 139, 140, 141, 142, 143, -1, -1, -1,
-1, 148, -1, 150, 130, 131, 132, 133, 134, 135,
136, 137, 138, 139, 140, 141, 142, 143, -1, -1,
-1, -1, 148, -1, 150, 130, 131, 132, 133, 134,
135, 136, 137, 138, 139, 140, 141, 142, 143, -1,
-1, -1, -1, 148, -1, 150, 130, 131, 132, 133,
134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
-1, -1, -1, -1, 148, -1, 150, 130, 131, 132,
133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
143, -1, -1, -1, -1, 148, -1, 150, 130, 131,
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,

Christophe Geuzaine
committed
142, 143, -1, -1, -1, -1, 148, -1, 150, 130,
131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
0, 1, 160, 161, 6, 0, 4, 12, 13, 36,
41, 42, 44, 45, 46, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
85, 88, 89, 93, 98, 99, 100, 101, 104, 106,
108, 109, 110, 111, 112, 113, 114, 115, 116, 117,

Christophe Geuzaine
committed
121, 122, 162, 164, 165, 183, 193, 198, 201, 202,
203, 204, 205, 206, 207, 227, 228, 229, 230, 231,
232, 3, 4, 5, 7, 9, 10, 11, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 37,
38, 39, 40, 43, 112, 118, 119, 120, 123, 124,
125, 126, 127, 128, 129, 139, 140, 144, 146, 147,

Christophe Geuzaine
committed
149, 151, 153, 154, 156, 181, 182, 233, 234, 246,
13, 55, 149, 6, 156, 6, 6, 6, 6, 151,
149, 156, 149, 149, 4, 149, 156, 149, 149, 4,
156, 149, 149, 59, 55, 55, 6, 55, 55, 52,
55, 57, 57, 49, 52, 55, 57, 52, 55, 57,

Christophe Geuzaine
committed
52, 55, 149, 52, 156, 139, 140, 149, 156, 235,
236, 235, 156, 49, 52, 55, 156, 235, 4, 49,
53, 63, 55, 55, 52, 4, 112, 156, 4, 6,
49, 52, 55, 4, 4, 4, 5, 35, 49, 52,

Christophe Geuzaine
committed
55, 57, 140, 156, 198, 207, 233, 238, 239, 240,
4, 149, 149, 149, 4, 156, 242, 4, 149, 149,
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
6, 151, 4, 4, 5, 156, 5, 156, 6, 149,
156, 4, 151, 153, 158, 182, 156, 5, 246, 149,
151, 149, 151, 149, 151, 149, 151, 149, 151, 149,
151, 149, 151, 149, 151, 149, 151, 149, 151, 149,
151, 149, 151, 149, 151, 149, 151, 149, 151, 149,
151, 149, 151, 149, 151, 149, 151, 149, 151, 149,
151, 149, 149, 149, 149, 7, 149, 149, 149, 4,
233, 233, 233, 233, 152, 156, 233, 4, 104, 105,
4, 4, 198, 199, 200, 238, 6, 6, 130, 131,
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
142, 143, 148, 6, 6, 233, 5, 233, 185, 233,
140, 233, 240, 241, 233, 233, 149, 233, 241, 233,
233, 149, 241, 233, 233, 238, 149, 156, 149, 149,
239, 239, 239, 149, 194, 195, 196, 197, 149, 149,
149, 238, 233, 4, 238, 235, 235, 235, 233, 233,
139, 140, 156, 156, 235, 156, 156, 156, 139, 140,
149, 200, 235, 156, 149, 156, 149, 149, 149, 239,
238, 149, 4, 6, 151, 151, 200, 6, 156, 156,
156, 151, 151, 151, 151, 5, 156, 5, 5, 5,
156, 233, 240, 157, 241, 8, 141, 6, 6, 233,
233, 233, 153, 233, 156, 107, 233, 233, 233, 6,
6, 200, 6, 200, 238, 238, 151, 233, 4, 156,
166, 6, 233, 233, 233, 233, 233, 233, 233, 233,

Christophe Geuzaine
committed
233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
233, 233, 233, 233, 4, 245, 246, 245, 245, 245,
233, 245, 245, 245, 151, 150, 7, 181, 241, 152,
7, 181, 182, 153, 7, 151, 157, 49, 52, 55,
57, 193, 6, 233, 233, 233, 233, 233, 233, 233,
233, 233, 233, 233, 233, 233, 233, 233, 6, 150,
155, 155, 152, 155, 184, 150, 141, 155, 157, 150,
150, 233, 150, 157, 150, 150, 233, 157, 150, 150,
7, 233, 233, 233, 233, 7, 7, 225, 225, 233,
149, 149, 149, 149, 233, 233, 233, 7, 156, 150,
6, 155, 155, 155, 235, 235, 199, 199, 155, 233,
233, 233, 233, 211, 155, 200, 233, 233, 233, 233,
233, 7, 226, 7, 233, 6, 233, 233, 157, 241,
241, 241, 233, 233, 152, 156, 233, 4, 233, 241,
157, 233, 156, 233, 240, 150, 150, 150, 104, 155,
200, 156, 8, 150, 152, 157, 157, 150, 155, 157,
233, 152, 182, 233, 4, 94, 95, 96, 97, 157,
169, 173, 176, 178, 179, 150, 152, 150, 152, 150,
152, 150, 152, 150, 152, 150, 152, 150, 152, 150,
152, 150, 152, 150, 152, 150, 152, 155, 155, 150,
152, 150, 152, 150, 152, 150, 152, 150, 152, 150,
152, 155, 155, 155, 155, 155, 155, 151, 153, 150,
155, 155, 150, 150, 6, 155, 150, 155, 238, 157,
153, 181, 182, 246, 233, 6, 4, 4, 156, 243,
152, 156, 156, 156, 156, 8, 6, 136, 163, 241,
233, 6, 4, 7, 233, 240, 107, 7, 7, 150,
7, 107, 7, 7, 150, 107, 7, 7, 233, 150,
157, 150, 150, 233, 238, 4, 224, 6, 150, 190,
233, 246, 190, 190, 190, 150, 150, 150, 238, 241,
153, 235, 233, 233, 157, 157, 233, 155, 155, 155,
70, 79, 86, 87, 90, 91, 221, 222, 235, 157,
208, 150, 157, 150, 150, 150, 233, 6, 233, 150,
152, 152, 157, 157, 157, 152, 152, 241, 152, 152,
157, 157, 8, 241, 7, 7, 7, 153, 233, 157,
233, 233, 7, 153, 156, 238, 6, 152, 153, 182,
245, 157, 170, 149, 149, 156, 180, 6, 233, 233,
233, 233, 233, 233, 233, 233, 233, 4, 241, 245,
233, 245, 6, 152, 4, 104, 105, 233, 6, 6,
6, 7, 151, 242, 244, 6, 241, 241, 241, 241,
233, 136, 245, 150, 155, 7, 235, 55, 238, 238,
7, 238, 55, 57, 238, 238, 7, 57, 238, 238,
6, 7, 7, 7, 7, 70, 223, 6, 7, 150,
150, 150, 150, 7, 7, 7, 6, 157, 4, 155,
155, 155, 157, 235, 235, 235, 4, 6, 156, 149,
6, 92, 6, 92, 157, 222, 155, 221, 7, 6,
7, 7, 7, 6, 156, 6, 6, 6, 55, 233,
6, 6, 157, 233, 157, 238, 238, 238, 4, 155,
8, 8, 150, 4, 4, 238, 157, 6, 4, 6,
149, 233, 233, 237, 238, 156, 150, 152, 150, 152,
150, 152, 150, 152, 152, 150, 150, 150, 150, 181,
7, 181, 182, 153, 7, 6, 242, 233, 155, 157,
157, 157, 157, 157, 6, 6, 163, 233, 156, 233,
6, 156, 63, 192, 192, 238, 6, 156, 156, 6,
6, 238, 156, 6, 6, 5, 238, 238, 238, 4,
6, 238, 7, 7, 7, 7, 238, 238, 238, 7,
6, 7, 233, 233, 233, 156, 155, 157, 155, 157,
155, 157, 151, 233, 238, 233, 6, 6, 233, 235,
157, 5, 156, 238, 156, 156, 156, 238, 241, 156,
6, 152, 6, 6, 103, 233, 233, 233, 6, 6,
7, 155, 6, 182, 167, 233, 155, 155, 155, 157,
168, 233, 153, 238, 246, 233, 6, 4, 243, 6,
152, 242, 6, 6, 6, 6, 245, 155, 233, 233,
235, 6, 6, 6, 233, 233, 6, 233, 5, 6,
6, 107, 191, 233, 6, 238, 238, 238, 238, 6,
4, 6, 6, 233, 233, 246, 157, 150, 155, 157,
199, 235, 6, 212, 235, 6, 213, 235, 6, 214,
233, 157, 155, 150, 157, 155, 6, 140, 235, 6,
237, 235, 235, 6, 157, 233, 238, 155, 157, 8,
157, 150, 156, 233, 246, 238, 150, 155, 233, 233,
238, 156, 155, 157, 4, 6, 6, 6, 7, 6,
153, 6, 233, 186, 157, 157, 157, 157, 5, 53,
6, 6, 6, 6, 6, 156, 156, 6, 6, 156,
233, 157, 155, 156, 155, 156, 155, 156, 152, 6,
238, 7, 156, 233, 155, 157, 155, 155, 6, 157,
102, 233, 233, 241, 6, 6, 157, 171, 233, 155,
155, 237, 233, 6, 242, 105, 155, 188, 6, 6,
6, 6, 6, 156, 237, 241, 199, 155, 157, 233,
235, 221, 233, 235, 221, 233, 235, 221, 6, 155,
157, 238, 200, 157, 235, 6, 241, 235, 233, 157,
157, 157, 6, 156, 233, 233, 157, 6, 233, 155,
157, 189, 233, 157, 157, 157, 233, 157, 155, 157,
157, 155, 157, 157, 155, 157, 238, 6, 70, 157,
209, 156, 155, 157, 155, 6, 6, 168, 150, 155,
6, 156, 155, 4, 157, 6, 6, 157, 6, 215,
233, 6, 6, 216, 233, 6, 6, 217, 233, 6,
157, 233, 221, 200, 241, 6, 235, 241, 157, 174,
233, 237, 233, 5, 156, 238, 156, 157, 156, 157,
156, 157, 6, 6, 157, 157, 210, 157, 155, 157,
6, 156, 150, 157, 157, 187, 233, 221, 6, 218,
221, 6, 219, 221, 6, 220, 221, 6, 241, 6,
172, 245, 177, 156, 6, 155, 157, 7, 157, 156,
157, 156, 157, 156, 157, 157, 155, 157, 156, 237,
233, 246, 6, 221, 6, 221, 6, 221, 6, 245,
6, 175, 245, 157, 7, 157, 157, 157, 155, 157,
6, 246, 6, 6, 6, 245, 6
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY (-2)
#define YYEOF 0
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
#define YYERROR goto yyerrorlab
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.

Christophe Geuzaine
committed
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

Christophe Geuzaine
committed
#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)
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (1); \
goto yybackup; \
} \
else \
{ \
#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 \
{ \
(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; \
} \
/* This macro is provided for backward compatibility. */
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#endif
/* YYLEX -- calling `yylex' with the right arguments. */
/* Enable debugging if requested. */
#if YYDEBUG
# ifndef YYFPRINTF
# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
# define YYFPRINTF fprintf
# endif
# define YYDPRINTF(Args) \
do { \
if (yydebug) \
YYFPRINTF Args; \
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yy_symbol_print (stderr, \
Type, Value); \
YYFPRINTF (stderr, "\n"); \
} \
} while (YYID (0))
/*--------------------------------.
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_value_print (yyoutput, yytype, yyvaluep)
FILE *yyoutput;
int yytype;
YYSTYPE const * const yyvaluep;
{
if (!yyvaluep)
return;
# ifdef YYPRINT
if (yytype < YYNTOKENS)
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# else
YYUSE (yyoutput);
# endif
switch (yytype)
{
default:
}
}
/*--------------------------------.
| Print this symbol on YYOUTPUT. |
`--------------------------------*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_print (yyoutput, yytype, yyvaluep)
FILE *yyoutput;
int yytype;
YYSTYPE const * const yyvaluep;
#endif
{
if (yytype < YYNTOKENS)
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
else
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
yy_symbol_value_print (yyoutput, yytype, yyvaluep);
YYFPRINTF (yyoutput, ")");
}
/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included). |
`------------------------------------------------------------------*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void

Christophe Geuzaine
committed
yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)

Christophe Geuzaine
committed
yy_stack_print (yybottom, yytop)
yytype_int16 *yybottom;
yytype_int16 *yytop;

Christophe Geuzaine
committed
for (; yybottom <= yytop; yybottom++)
{
int yybot = *yybottom;
YYFPRINTF (stderr, " %d", yybot);
}
# define YY_STACK_PRINT(Bottom, Top) \
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
/*------------------------------------------------.
| Report that the YYRULE is going to be reduced. |
`------------------------------------------------*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
#else
static void
yy_reduce_print (yyvsp, yyrule)
YYSTYPE *yyvsp;
int yyrule;
{
int yynrhs = yyr2[yyrule];
int yyi;
unsigned long int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
/* The symbols being reduced. */
for (yyi = 0; yyi < yynrhs; yyi++)
{

Christophe Geuzaine
committed
YYFPRINTF (stderr, " $%d = ", yyi + 1);
&(yyvsp[(yyi + 1) - (yynrhs)])
);

Christophe Geuzaine
committed
YYFPRINTF (stderr, "\n");
# define YY_REDUCE_PRINT(Rule) \
do { \
if (yydebug) \
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
if the built-in stack extension method is used).
Do not make this value too large; the results are undefined if
YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
evaluated with infinite-precision integer arithmetic. */
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
#if YYERROR_VERBOSE
# ifndef yystrlen
# if defined __GLIBC__ && defined _STRING_H
# define yystrlen strlen
# else
/* Return the length of YYSTR. */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
yystrlen (const char *yystr)
#else
static YYSIZE_T
yystrlen (yystr)
const char *yystr;
#endif
{
YYSIZE_T yylen;
for (yylen = 0; yystr[yylen]; yylen++)
continue;
return yylen;
}
# endif
# endif
# ifndef yystpcpy
# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
# define yystpcpy stpcpy
# else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
YYDEST. */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static char *
yystpcpy (char *yydest, const char *yysrc)
#else
static char *
yystpcpy (yydest, yysrc)
char *yydest;
const char *yysrc;
#endif
while ((*yyd++ = *yys++) != '\0')
continue;
return yyd - 1;
# endif
# endif
# ifndef yytnamerr
/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
quotes and backslashes, so that it's suitable for yyerror. The
heuristic is that double-quoting is unnecessary unless the string
contains an apostrophe, a comma, or backslash (other than
backslash-backslash). YYSTR is taken from yytname. If YYRES is
null, do not copy; instead, return the length of what the result
would have been. */
static YYSIZE_T
yytnamerr (char *yyres, const char *yystr)
{
if (*yystr == '"')
{
YYSIZE_T yyn = 0;
char const *yyp = yystr;
for (;;)
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
switch (*++yyp)
{
case '\'':
case ',':
goto do_not_strip_quotes;
case '\\':
if (*++yyp != '\\')
goto do_not_strip_quotes;
/* Fall through. */
default:
if (yyres)
yyres[yyn] = *yyp;
yyn++;
break;
case '"':
if (yyres)
yyres[yyn] = '\0';
return yyn;
}
/* 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.
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
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 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;
}
}
}
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_
}
yysize1 = yysize + yystrlen (yyformat);
if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
yysize = yysize1;
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. |
`-----------------------------------------------*/
/*ARGSUSED*/
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else
static void
yydestruct (yymsg, yytype, yyvaluep)
const char *yymsg;
int yytype;
YYSTYPE *yyvaluep;
{
YYUSE (yyvaluep);
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
switch (yytype)
{
default:
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else /* ! YYPARSE_PARAM */
#if defined __STDC__ || defined __cplusplus
int yyparse (void);
#else
int yyparse ();

Christophe Geuzaine
committed
/* The lookahead symbol. */

Christophe Geuzaine
committed
/* The semantic value of the lookahead symbol. */
/* Number of syntax errors so far. */
int yynerrs;
/*----------.
| yyparse. |
`----------*/
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
int
yyparse (void *YYPARSE_PARAM)
#else /* ! YYPARSE_PARAM */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
int
yyparse (void)
#else
int
yyparse ()

Christophe Geuzaine
committed
int yystate;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;

Christophe Geuzaine
committed
/* The stacks and their tools:
`yyss': related to states.
`yyvs': related to semantic values.

Christophe Geuzaine
committed
Refer to the stacks thru separate pointers, to allow yyoverflow
to reallocate them elsewhere. */

Christophe Geuzaine
committed
/* The state stack. */
yytype_int16 yyssa[YYINITDEPTH];
yytype_int16 *yyss;
yytype_int16 *yyssp;

Christophe Geuzaine
committed
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs;
YYSTYPE *yyvsp;

Christophe Geuzaine
committed
YYSIZE_T yystacksize;

Christophe Geuzaine
committed
int yyn;
int yyresult;
/* Lookahead token as an internal (translated) token number. */
int yytoken;
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;

Christophe Geuzaine
committed
#if YYERROR_VERBOSE
/* Buffer for error messages, and its allocated size. */
char yymsgbuf[128];
char *yymsg = yymsgbuf;
YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
/* The number of symbols on the RHS of the reduced rule.
Keep to zero when no symbol should be popped. */
int yylen = 0;

Christophe Geuzaine
committed
yytoken = 0;
yyss = yyssa;
yyvs = yyvsa;
yystacksize = YYINITDEPTH;
YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;

Christophe Geuzaine
committed
yychar = YYEMPTY; /* Cause a token to be read. */
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
yyvsp = yyvs;
/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate. |
`------------------------------------------------------------*/
yynewstate:
/* In all cases, when you get here, the value and location stacks
have just been pushed. So pushing a state here evens the stacks. */
yyssp++;
/* Get the current used size of the three stacks, in elements. */
#ifdef yyoverflow
/* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into
memory. */
YYSTYPE *yyvs1 = yyvs;
yytype_int16 *yyss1 = yyss;
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
be undefined if yyoverflow is a macro. */
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
&yystacksize);
yyss = yyss1;
yyvs = yyvs1;
#else /* no yyoverflow */
/* Extend the stack our own way. */
goto yyexhaustedlab;
yystacksize *= 2;
yystacksize = YYMAXDEPTH;
yytype_int16 *yyss1 = yyss;
union yyalloc *yyptr =
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;

Christophe Geuzaine
committed
YYSTACK_RELOCATE (yyss_alloc, yyss);
YYSTACK_RELOCATE (yyvs_alloc, yyvs);
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
#endif /* no yyoverflow */
(unsigned long int) yystacksize));
}

Christophe Geuzaine
committed
if (yystate == YYFINAL)
YYACCEPT;
goto yybackup;
/*-----------.
| yybackup. |
`-----------*/
yybackup:

Christophe Geuzaine
committed
lookahead token if we need one and don't already have one. */

Christophe Geuzaine
committed
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
if (yypact_value_is_default (yyn))
goto yydefault;

Christophe Geuzaine
committed
/* Not known => get a lookahead token if don't already have one. */

Christophe Geuzaine
committed
/* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
if (yychar == YYEMPTY)
{
yychar = YYLEX;
}
{
yychar = yytoken = YYEOF;
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
else
{
yytoken = YYTRANSLATE (yychar);
YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
}
/* If the proper action on seeing token YYTOKEN is to reduce or to
detect an error, take that action. */
yyn += yytoken;
if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
goto yydefault;
yyn = yytable[yyn];
{
if (yytable_value_is_error (yyn))
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;

Christophe Geuzaine
committed
/* Shift the lookahead token. */

Christophe Geuzaine
committed
/* Discard the shifted token. */
yychar = YYEMPTY;
*++yyvsp = yylval;