mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-17 08:13:02 +00:00
* src/bison.simple: Update and add '%%' directives.
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
|
2001-08-25 Robert Anisko <robert.anisko@epita.fr>
|
||||||
|
|
||||||
|
* src/bison.simple: Update and add '%%' directives.
|
||||||
|
|
||||||
2001-08-25 Robert Anisko <robert.anisko@epita.fr>
|
2001-08-25 Robert Anisko <robert.anisko@epita.fr>
|
||||||
|
|
||||||
* src/reader.c (reader): Remove calls to 'output_headers' and
|
* src/reader.c (reader): Remove calls to 'output_headers' and
|
||||||
|
|||||||
281
src/bison.simple
281
src/bison.simple
@@ -1,5 +1,8 @@
|
|||||||
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
|
/* -*- C -*- */
|
||||||
#line
|
|
||||||
|
/* A Bison parser, made from %%filename
|
||||||
|
by GNU bison %%version. */
|
||||||
|
|
||||||
/* Skeleton output parser for bison,
|
/* Skeleton output parser for bison,
|
||||||
Copyright 1984, 1989, 1990, 2000, 2001 Free Software Foundation, Inc.
|
Copyright 1984, 1989, 1990, 2000, 2001 Free Software Foundation, Inc.
|
||||||
|
|
||||||
@@ -28,6 +31,14 @@
|
|||||||
It was written by Richard Stallman by simplifying the hairy parser
|
It was written by Richard Stallman by simplifying the hairy parser
|
||||||
used when %semantic_parser is specified. */
|
used when %semantic_parser is specified. */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
# ifndef __STDC__
|
||||||
|
# define const
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef YYSTACK_USE_ALLOCA
|
#ifndef YYSTACK_USE_ALLOCA
|
||||||
# ifdef alloca
|
# ifdef alloca
|
||||||
# define YYSTACK_USE_ALLOCA 1
|
# define YYSTACK_USE_ALLOCA 1
|
||||||
@@ -78,31 +89,162 @@
|
|||||||
# define YYSTACK_ALLOC malloc
|
# define YYSTACK_ALLOC malloc
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define YYBISON 1 /* Identify Bison output. */
|
||||||
|
#define YYPURE %%pure /* Identify pure parsers. */
|
||||||
|
|
||||||
|
#ifndef YYDEBUG
|
||||||
|
# define YYDEBUG %%debug
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef YYSTYPE
|
||||||
|
# define YYSTYPE %%stype
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef YYLTYPE
|
||||||
|
typedef struct yyltype
|
||||||
|
{
|
||||||
|
int first_line;
|
||||||
|
int first_column;
|
||||||
|
int last_line;
|
||||||
|
int last_column;
|
||||||
|
} yyltype;
|
||||||
|
# define YYLTYPE %%ltype
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef YYERROR_VERBOSE
|
||||||
|
# define YYERROR_VERBOSE %%verbose
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Tokens. */
|
||||||
|
%%tokendef
|
||||||
|
|
||||||
|
#define YYFINAL %%final
|
||||||
|
#define YYFLAG %%flag
|
||||||
|
#define YYNTBASE %%ntbase
|
||||||
|
#define YYLAST %%last
|
||||||
|
|
||||||
|
#define YYNTOKENS %%ntokens
|
||||||
|
#define YYNNTS %%nnts
|
||||||
|
#define YYNRULES %%nrules
|
||||||
|
#define YYNSTATES %%nstates
|
||||||
|
#define YYMAXUTOK %%maxtok
|
||||||
|
|
||||||
|
/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
|
||||||
|
#define YYTRANSLATE(x) ((unsigned)(x) <= %%maxtok ? yytranslate[x] : %%nsym)
|
||||||
|
|
||||||
|
/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
|
||||||
|
static const char yytranslate[] =
|
||||||
|
{
|
||||||
|
%%translate
|
||||||
|
};
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
|
static const short yyprhs[] =
|
||||||
|
{
|
||||||
|
%%prhs
|
||||||
|
};
|
||||||
|
|
||||||
|
static const short yyrhs[] =
|
||||||
|
{
|
||||||
|
%%rhs
|
||||||
|
};
|
||||||
|
|
||||||
|
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
||||||
|
static const short yyrline[] =
|
||||||
|
{
|
||||||
|
%%rline
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG || YYERROR_VERBOSE
|
||||||
|
/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
|
||||||
|
static const char* const yytname[] =
|
||||||
|
{
|
||||||
|
%%tname
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* YYTOKNUM[YYN] -- Index in YYTNAME corresponding to YYLEX. */
|
||||||
|
static const short yytoknum[] =
|
||||||
|
{
|
||||||
|
%%toknum
|
||||||
|
};
|
||||||
|
|
||||||
|
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
|
||||||
|
static const short yyr1[] =
|
||||||
|
{
|
||||||
|
%%r1
|
||||||
|
};
|
||||||
|
|
||||||
|
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
|
||||||
|
static const short yyr2[] =
|
||||||
|
{
|
||||||
|
%%r2
|
||||||
|
};
|
||||||
|
|
||||||
|
/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
|
||||||
|
doesn't specify something else to do. Zero means the default is an
|
||||||
|
error. */
|
||||||
|
static const short yydefact[] =
|
||||||
|
{
|
||||||
|
%%defact
|
||||||
|
};
|
||||||
|
|
||||||
|
static const short yydefgoto[] =
|
||||||
|
{
|
||||||
|
%%defgoto
|
||||||
|
};
|
||||||
|
|
||||||
|
static const short yypact[] =
|
||||||
|
{
|
||||||
|
%%pact
|
||||||
|
};
|
||||||
|
|
||||||
|
static const short yypgoto[] =
|
||||||
|
{
|
||||||
|
%%pgoto
|
||||||
|
};
|
||||||
|
|
||||||
|
static const short yytable[] =
|
||||||
|
{
|
||||||
|
%%table
|
||||||
|
};
|
||||||
|
|
||||||
|
static const short yycheck[] =
|
||||||
|
{
|
||||||
|
%%check
|
||||||
|
};
|
||||||
|
|
||||||
#define yyerrok (yyerrstatus = 0)
|
#define yyerrok (yyerrstatus = 0)
|
||||||
#define yyclearin (yychar = YYEMPTY)
|
#define yyclearin (%%yychar = YYEMPTY)
|
||||||
#define YYEMPTY -2
|
#define YYEMPTY -2
|
||||||
#define YYEOF 0
|
#define YYEOF 0
|
||||||
|
|
||||||
#define YYACCEPT goto yyacceptlab
|
#define YYACCEPT goto yyacceptlab
|
||||||
#define YYABORT goto yyabortlab
|
#define YYABORT goto yyabortlab
|
||||||
#define YYERROR goto yyerrlab1
|
#define YYERROR goto yyerrlab1
|
||||||
|
|
||||||
/* Like YYERROR except do call yyerror. This remains here temporarily
|
/* Like YYERROR except do call yyerror. This remains here temporarily
|
||||||
to ease the transition to the new meaning of YYERROR, for GCC.
|
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. */
|
||||||
|
|
||||||
#define YYFAIL goto yyerrlab
|
#define YYFAIL goto yyerrlab
|
||||||
|
|
||||||
#define YYRECOVERING() (!!yyerrstatus)
|
#define YYRECOVERING() (!!yyerrstatus)
|
||||||
|
|
||||||
#define YYBACKUP(Token, Value) \
|
#define YYBACKUP(Token, Value) \
|
||||||
do \
|
do \
|
||||||
if (yychar == YYEMPTY && yylen == 1) \
|
if (%%yychar == YYEMPTY && yylen == 1) \
|
||||||
{ \
|
{ \
|
||||||
yychar = (Token); \
|
%%yychar = (Token); \
|
||||||
yylval = (Value); \
|
%%yylval = (Value); \
|
||||||
yychar1 = YYTRANSLATE (yychar); \
|
yychar1 = YYTRANSLATE (%%yychar); \
|
||||||
YYPOPSTACK; \
|
YYPOPSTACK; \
|
||||||
goto yybackup; \
|
goto yybackup; \
|
||||||
} \
|
} \
|
||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
yyerror ("syntax error: cannot back up"); \
|
%%yyerror ("syntax error: cannot back up"); \
|
||||||
YYERROR; \
|
YYERROR; \
|
||||||
} \
|
} \
|
||||||
while (0)
|
while (0)
|
||||||
@@ -110,7 +252,6 @@ while (0)
|
|||||||
#define YYTERROR 1
|
#define YYTERROR 1
|
||||||
#define YYERRCODE 256
|
#define YYERRCODE 256
|
||||||
|
|
||||||
|
|
||||||
/* YYLLOC_DEFAULT -- Compute the default location (before the actions
|
/* YYLLOC_DEFAULT -- Compute the default location (before the actions
|
||||||
are run).
|
are run).
|
||||||
|
|
||||||
@@ -124,47 +265,45 @@ while (0)
|
|||||||
Current.last_column = Rhs[N].last_column;
|
Current.last_column = Rhs[N].last_column;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* YYLEX -- calling `yylex' with the right arguments. */
|
/* YYLEX -- calling `yylex' with the right arguments. */
|
||||||
|
|
||||||
#if YYPURE
|
#if YYPURE
|
||||||
# if YYLSP_NEEDED
|
# if YYLSP_NEEDED
|
||||||
# ifdef YYLEX_PARAM
|
# ifdef YYLEX_PARAM
|
||||||
# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
|
# define YYLEX %%yylex (&%%yylval, &yylloc, YYLEX_PARAM)
|
||||||
# else
|
# else
|
||||||
# define YYLEX yylex (&yylval, &yylloc)
|
# define YYLEX %%yylex (&%%yylval, &yylloc)
|
||||||
# endif
|
# endif
|
||||||
# else /* !YYLSP_NEEDED */
|
# else /* !YYLSP_NEEDED */
|
||||||
# ifdef YYLEX_PARAM
|
# ifdef YYLEX_PARAM
|
||||||
# define YYLEX yylex (&yylval, YYLEX_PARAM)
|
# define YYLEX %%yylex (&%%yylval, YYLEX_PARAM)
|
||||||
# else
|
# else
|
||||||
# define YYLEX yylex (&yylval)
|
# define YYLEX %%yylex (&%%yylval)
|
||||||
# endif
|
# endif
|
||||||
# endif /* !YYLSP_NEEDED */
|
# endif /* !YYLSP_NEEDED */
|
||||||
#else /* !YYPURE */
|
#else /* !YYPURE */
|
||||||
# define YYLEX yylex ()
|
# define YYLEX %%yylex ()
|
||||||
#endif /* !YYPURE */
|
#endif /* !YYPURE */
|
||||||
|
|
||||||
|
|
||||||
/* Enable debugging if requested. */
|
/* Enable debugging if requested. */
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
# define YYDPRINTF(Args) \
|
# define YYDPRINTF(Args) \
|
||||||
do { \
|
do { \
|
||||||
if (yydebug) \
|
if (%%yydebug) \
|
||||||
fprintf Args; \
|
fprintf Args; \
|
||||||
} while (0)
|
} while (0)
|
||||||
/* Nonzero means print parse trace. [The following comment makes no
|
/* Nonzero means print parse trace. [The following comment makes no
|
||||||
sense to me. Could someone clarify it? --akim] Since this is
|
sense to me. Could someone clarify it? --akim] Since this is
|
||||||
uninitialized, it does not stop multiple parsers from coexisting.
|
uninitialized, it does not stop multiple parsers from coexisting.
|
||||||
*/
|
*/
|
||||||
int yydebug;
|
int %%yydebug;
|
||||||
#else /* !YYDEBUG */
|
#else /* !YYDEBUG */
|
||||||
# define YYDPRINTF(Args)
|
# define YYDPRINTF(Args)
|
||||||
#endif /* !YYDEBUG */
|
#endif /* !YYDEBUG */
|
||||||
|
|
||||||
/* YYINITDEPTH -- initial size of the parser's stacks. */
|
/* YYINITDEPTH -- initial size of the parser's stacks. */
|
||||||
#ifndef YYINITDEPTH
|
#ifndef YYINITDEPTH
|
||||||
# define YYINITDEPTH 200
|
# define YYINITDEPTH %%initdepth
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
|
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
|
||||||
@@ -174,9 +313,11 @@ int yydebug;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef YYMAXDEPTH
|
#ifndef YYMAXDEPTH
|
||||||
# define YYMAXDEPTH 10000
|
# define YYMAXDEPTH %%maxdepth
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Define __yy_memcpy. Note that the size argument
|
/* Define __yy_memcpy. Note that the size argument
|
||||||
should be passed with type unsigned int, because that is what the non-GCC
|
should be passed with type unsigned int, because that is what the non-GCC
|
||||||
definitions require. With GCC, __builtin_memcpy takes an arg
|
definitions require. With GCC, __builtin_memcpy takes an arg
|
||||||
@@ -205,10 +346,11 @@ __yy_memcpy (char *to, const char *from, unsigned int count)
|
|||||||
while (i-- > 0)
|
while (i-- > 0)
|
||||||
*t++ = *f++;
|
*t++ = *f++;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#line
|
|
||||||
|
#line %%line "%%filename"
|
||||||
|
|
||||||
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
|
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
|
||||||
into yyparse. The argument should have type void *.
|
into yyparse. The argument should have type void *.
|
||||||
@@ -232,9 +374,9 @@ __yy_memcpy (char *to, const char *from, unsigned int count)
|
|||||||
/* Prevent warning if -Wstrict-prototypes. */
|
/* Prevent warning if -Wstrict-prototypes. */
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
# ifdef YYPARSE_PARAM
|
# ifdef YYPARSE_PARAM
|
||||||
int yyparse (void *);
|
int %%yyparse (void *);
|
||||||
# else
|
# else
|
||||||
int yyparse (void);
|
int %%yyparse (void);
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -243,13 +385,13 @@ int yyparse (void);
|
|||||||
|
|
||||||
#define _YY_DECL_VARIABLES \
|
#define _YY_DECL_VARIABLES \
|
||||||
/* The lookahead symbol. */ \
|
/* The lookahead symbol. */ \
|
||||||
int yychar; \
|
int %%yychar; \
|
||||||
\
|
\
|
||||||
/* The semantic value of the lookahead symbol. */ \
|
/* The semantic value of the lookahead symbol. */ \
|
||||||
YYSTYPE yylval; \
|
YYSTYPE %%yylval; \
|
||||||
\
|
\
|
||||||
/* Number of parse errors so far. */ \
|
/* Number of parse errors so far. */ \
|
||||||
int yynerrs;
|
int %%yynerrs;
|
||||||
|
|
||||||
#if YYLSP_NEEDED
|
#if YYLSP_NEEDED
|
||||||
# define YY_DECL_VARIABLES \
|
# define YY_DECL_VARIABLES \
|
||||||
@@ -262,7 +404,6 @@ YYLTYPE yylloc;
|
|||||||
_YY_DECL_VARIABLES
|
_YY_DECL_VARIABLES
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* If nonreentrant, generate the variables here. */
|
/* If nonreentrant, generate the variables here. */
|
||||||
|
|
||||||
#if !YYPURE
|
#if !YYPURE
|
||||||
@@ -270,7 +411,7 @@ YY_DECL_VARIABLES
|
|||||||
#endif /* !YYPURE */
|
#endif /* !YYPURE */
|
||||||
|
|
||||||
int
|
int
|
||||||
yyparse (YYPARSE_PARAM_ARG)
|
%%yyparse (YYPARSE_PARAM_ARG)
|
||||||
YYPARSE_PARAM_DECL
|
YYPARSE_PARAM_DECL
|
||||||
{
|
{
|
||||||
/* If reentrant, generate the variables here. */
|
/* If reentrant, generate the variables here. */
|
||||||
@@ -319,7 +460,6 @@ yyparse (YYPARSE_PARAM_ARG)
|
|||||||
int yystacksize = YYINITDEPTH;
|
int yystacksize = YYINITDEPTH;
|
||||||
int yyfree_stacks = 0;
|
int yyfree_stacks = 0;
|
||||||
|
|
||||||
|
|
||||||
/* The variables used to return semantic value and location from the
|
/* The variables used to return semantic value and location from the
|
||||||
action routines. */
|
action routines. */
|
||||||
YYSTYPE yyval;
|
YYSTYPE yyval;
|
||||||
@@ -335,8 +475,8 @@ yyparse (YYPARSE_PARAM_ARG)
|
|||||||
|
|
||||||
yystate = 0;
|
yystate = 0;
|
||||||
yyerrstatus = 0;
|
yyerrstatus = 0;
|
||||||
yynerrs = 0;
|
%%yynerrs = 0;
|
||||||
yychar = YYEMPTY; /* Cause a token to be read. */
|
%%yychar = YYEMPTY; /* Cause a token to be read. */
|
||||||
|
|
||||||
/* Initialize stack pointers.
|
/* Initialize stack pointers.
|
||||||
Waste one element of value and location stack
|
Waste one element of value and location stack
|
||||||
@@ -349,7 +489,6 @@ yyparse (YYPARSE_PARAM_ARG)
|
|||||||
yylsp = yyls;
|
yylsp = yyls;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/*------------------------------------------------------------.
|
/*------------------------------------------------------------.
|
||||||
| yynewstate -- Push a new state, which is found in yystate. |
|
| yynewstate -- Push a new state, which is found in yystate. |
|
||||||
`------------------------------------------------------------*/
|
`------------------------------------------------------------*/
|
||||||
@@ -399,7 +538,7 @@ yynewstate:
|
|||||||
/* Extend the stack our own way. */
|
/* Extend the stack our own way. */
|
||||||
if (yystacksize >= YYMAXDEPTH)
|
if (yystacksize >= YYMAXDEPTH)
|
||||||
{
|
{
|
||||||
yyerror ("parser stack overflow");
|
%%yyerror ("parser stack overflow");
|
||||||
if (yyfree_stacks)
|
if (yyfree_stacks)
|
||||||
{
|
{
|
||||||
free (yyss);
|
free (yyss);
|
||||||
@@ -413,7 +552,7 @@ yynewstate:
|
|||||||
yystacksize *= 2;
|
yystacksize *= 2;
|
||||||
if (yystacksize > YYMAXDEPTH)
|
if (yystacksize > YYMAXDEPTH)
|
||||||
yystacksize = YYMAXDEPTH;
|
yystacksize = YYMAXDEPTH;
|
||||||
# ifndef YYSTACK_USE_ALLOCA
|
# if !YYSTACK_USE_ALLOCA
|
||||||
yyfree_stacks = 1;
|
yyfree_stacks = 1;
|
||||||
# endif
|
# endif
|
||||||
yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
|
yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
|
||||||
@@ -445,7 +584,6 @@ yynewstate:
|
|||||||
|
|
||||||
goto yybackup;
|
goto yybackup;
|
||||||
|
|
||||||
|
|
||||||
/*-----------.
|
/*-----------.
|
||||||
| yybackup. |
|
| yybackup. |
|
||||||
`-----------*/
|
`-----------*/
|
||||||
@@ -466,35 +604,35 @@ yybackup:
|
|||||||
/* yychar is either YYEMPTY or YYEOF
|
/* yychar is either YYEMPTY or YYEOF
|
||||||
or a valid token in external form. */
|
or a valid token in external form. */
|
||||||
|
|
||||||
if (yychar == YYEMPTY)
|
if (%%yychar == YYEMPTY)
|
||||||
{
|
{
|
||||||
YYDPRINTF ((stderr, "Reading a token: "));
|
YYDPRINTF ((stderr, "Reading a token: "));
|
||||||
yychar = YYLEX;
|
%%yychar = YYLEX;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Convert token to internal form (in yychar1) for indexing tables with */
|
/* Convert token to internal form (in yychar1) for indexing tables with */
|
||||||
|
|
||||||
if (yychar <= 0) /* This means end of input. */
|
if (%%yychar <= 0) /* This means end of input. */
|
||||||
{
|
{
|
||||||
yychar1 = 0;
|
yychar1 = 0;
|
||||||
yychar = YYEOF; /* Don't call YYLEX any more */
|
%%yychar = YYEOF; /* Don't call YYLEX any more */
|
||||||
|
|
||||||
YYDPRINTF ((stderr, "Now at end of input.\n"));
|
YYDPRINTF ((stderr, "Now at end of input.\n"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
yychar1 = YYTRANSLATE (yychar);
|
yychar1 = YYTRANSLATE (%%yychar);
|
||||||
|
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
/* We have to keep this `#if YYDEBUG', since we use variables
|
/* We have to keep this `#if YYDEBUG', since we use variables
|
||||||
which are defined only if `YYDEBUG' is set. */
|
which are defined only if `YYDEBUG' is set. */
|
||||||
if (yydebug)
|
if (%%yydebug)
|
||||||
{
|
{
|
||||||
fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
|
fprintf (stderr, "Next token is %d (%s", %%yychar, yytname[yychar1]);
|
||||||
/* Give the individual parser a way to print the precise
|
/* Give the individual parser a way to print the precise
|
||||||
meaning of a token, for further debugging info. */
|
meaning of a token, for further debugging info. */
|
||||||
# ifdef YYPRINT
|
# ifdef YYPRINT
|
||||||
YYPRINT (stderr, yychar, yylval);
|
YYPRINT (stderr, %%yychar, %%yylval);
|
||||||
# endif
|
# endif
|
||||||
fprintf (stderr, ")\n");
|
fprintf (stderr, ")\n");
|
||||||
}
|
}
|
||||||
@@ -528,13 +666,13 @@ yybackup:
|
|||||||
YYACCEPT;
|
YYACCEPT;
|
||||||
|
|
||||||
/* Shift the lookahead token. */
|
/* Shift the lookahead token. */
|
||||||
YYDPRINTF ((stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]));
|
YYDPRINTF ((stderr, "Shifting token %d (%s), ", %%yychar, yytname[yychar1]));
|
||||||
|
|
||||||
/* Discard the token being shifted unless it is eof. */
|
/* Discard the token being shifted unless it is eof. */
|
||||||
if (yychar != YYEOF)
|
if (%%yychar != YYEOF)
|
||||||
yychar = YYEMPTY;
|
%%yychar = YYEMPTY;
|
||||||
|
|
||||||
*++yyvsp = yylval;
|
*++yyvsp = %%yylval;
|
||||||
#if YYLSP_NEEDED
|
#if YYLSP_NEEDED
|
||||||
*++yylsp = yylloc;
|
*++yylsp = yylloc;
|
||||||
#endif
|
#endif
|
||||||
@@ -585,7 +723,7 @@ yyreduce:
|
|||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
/* We have to keep this `#if YYDEBUG', since we use variables which
|
/* We have to keep this `#if YYDEBUG', since we use variables which
|
||||||
are defined only if `YYDEBUG' is set. */
|
are defined only if `YYDEBUG' is set. */
|
||||||
if (yydebug)
|
if (%%yydebug)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@@ -598,8 +736,11 @@ yyreduce:
|
|||||||
fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
|
fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
%% actions /* The action file replaces this line. */
|
switch (yyn)
|
||||||
#line
|
{
|
||||||
|
%%action /* The action file replaces this line. */
|
||||||
|
}
|
||||||
|
#line %%line "%%filename"
|
||||||
|
|
||||||
yyvsp -= yylen;
|
yyvsp -= yylen;
|
||||||
yyssp -= yylen;
|
yyssp -= yylen;
|
||||||
@@ -608,7 +749,7 @@ yyreduce:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
if (yydebug)
|
if (%%yydebug)
|
||||||
{
|
{
|
||||||
short *ssp1 = yyss - 1;
|
short *ssp1 = yyss - 1;
|
||||||
fprintf (stderr, "state stack now");
|
fprintf (stderr, "state stack now");
|
||||||
@@ -645,9 +786,9 @@ yyerrlab:
|
|||||||
/* If not already recovering from an error, report this error. */
|
/* If not already recovering from an error, report this error. */
|
||||||
if (!yyerrstatus)
|
if (!yyerrstatus)
|
||||||
{
|
{
|
||||||
++yynerrs;
|
++%%yynerrs;
|
||||||
|
|
||||||
#ifdef YYERROR_VERBOSE
|
#if YYERROR_VERBOSE
|
||||||
yyn = yypact[yystate];
|
yyn = yypact[yystate];
|
||||||
|
|
||||||
if (yyn > YYFLAG && yyn < YYLAST)
|
if (yyn > YYFLAG && yyn < YYLAST)
|
||||||
@@ -663,36 +804,36 @@ yyerrlab:
|
|||||||
if (yycheck[x + yyn] == x)
|
if (yycheck[x + yyn] == x)
|
||||||
size += strlen (yytname[x]) + 15, count++;
|
size += strlen (yytname[x]) + 15, count++;
|
||||||
size += strlen ("parse error, unexpected `") + 1;
|
size += strlen ("parse error, unexpected `") + 1;
|
||||||
size += strlen (yytname[YYTRANSLATE (yychar)]);
|
size += strlen (yytname[YYTRANSLATE (%%yychar)]);
|
||||||
msg = (char *) malloc (size);
|
msg = (char *) malloc (size);
|
||||||
if (msg != 0)
|
if (msg != 0)
|
||||||
{
|
{
|
||||||
strcpy (msg, "parse error, unexpected `");
|
strcpy (msg, "parse error, unexpected `");
|
||||||
strcat (msg, yytname[YYTRANSLATE (yychar)]);
|
strcat (msg, yytname[YYTRANSLATE (%%yychar)]);
|
||||||
strcat (msg, "'");
|
strcat (msg, "'");
|
||||||
|
|
||||||
if (count < 5)
|
if (count < 5)
|
||||||
{
|
{
|
||||||
count = 0;
|
count = 0;
|
||||||
for (x = (yyn < 0 ? -yyn : 0);
|
for (x = (yyn < 0 ? -yyn : 0);
|
||||||
x < (int) (sizeof (yytname) / sizeof (char *)); x++)
|
x < (int) (sizeof (yytname) / sizeof (char *)); x++)
|
||||||
if (yycheck[x + yyn] == x)
|
if (yycheck[x + yyn] == x)
|
||||||
{
|
{
|
||||||
strcat (msg, count == 0 ? ", expecting `" : " or `");
|
strcat (msg, count == 0 ? ", expecting `" : " or `");
|
||||||
strcat (msg, yytname[x]);
|
strcat (msg, yytname[x]);
|
||||||
strcat (msg, "'");
|
strcat (msg, "'");
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
yyerror (msg);
|
%%yyerror (msg);
|
||||||
free (msg);
|
free (msg);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
yyerror ("parse error; also virtual memory exceeded");
|
%%yyerror ("parse error; also virtual memory exceeded");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif /* YYERROR_VERBOSE */
|
#endif /* YYERROR_VERBOSE */
|
||||||
yyerror ("parse error");
|
%%yyerror ("parse error");
|
||||||
}
|
}
|
||||||
goto yyerrlab1;
|
goto yyerrlab1;
|
||||||
|
|
||||||
@@ -707,11 +848,11 @@ yyerrlab1:
|
|||||||
error, discard it. */
|
error, discard it. */
|
||||||
|
|
||||||
/* return failure if at end of input */
|
/* return failure if at end of input */
|
||||||
if (yychar == YYEOF)
|
if (%%yychar == YYEOF)
|
||||||
YYABORT;
|
YYABORT;
|
||||||
YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
|
YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
|
||||||
yychar, yytname[yychar1]));
|
%%yychar, yytname[yychar1]));
|
||||||
yychar = YYEMPTY;
|
%%yychar = YYEMPTY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Else will try to reuse lookahead token after shifting the error
|
/* Else will try to reuse lookahead token after shifting the error
|
||||||
@@ -752,7 +893,7 @@ yyerrpop:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
if (yydebug)
|
if (%%yydebug)
|
||||||
{
|
{
|
||||||
short *ssp1 = yyss - 1;
|
short *ssp1 = yyss - 1;
|
||||||
fprintf (stderr, "Error: state stack now");
|
fprintf (stderr, "Error: state stack now");
|
||||||
@@ -790,7 +931,7 @@ yyerrhandle:
|
|||||||
|
|
||||||
YYDPRINTF ((stderr, "Shifting error token, "));
|
YYDPRINTF ((stderr, "Shifting error token, "));
|
||||||
|
|
||||||
*++yyvsp = yylval;
|
*++yyvsp = %%yylval;
|
||||||
#if YYLSP_NEEDED
|
#if YYLSP_NEEDED
|
||||||
*++yylsp = yylloc;
|
*++yylsp = yylloc;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user