mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
* data/bison.c++: Replace some direct m4 expansions by constants. Be
more consistent when naming methods and variables. Put preprocessor directives around tables only needed for debugging.
This commit is contained in:
@@ -1,3 +1,9 @@
|
|||||||
|
2002-02-07 Robert Anisko <robert@lrde.epita.fr>
|
||||||
|
|
||||||
|
* data/bison.c++: Replace some direct m4 expansions by constants. Be
|
||||||
|
more consistent when naming methods and variables. Put preprocessor
|
||||||
|
directives around tables only needed for debugging.
|
||||||
|
|
||||||
2002-02-07 Robert Anisko <robert@lrde.epita.fr>
|
2002-02-07 Robert Anisko <robert@lrde.epita.fr>
|
||||||
|
|
||||||
* data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
|
* data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
|
||||||
|
|||||||
309
data/bison.c++
309
data/bison.c++
@@ -1,8 +1,8 @@
|
|||||||
#output "b4_output_prefix[]b4_output_infix[]-class.hh"
|
#output "b4_output_prefix[]b4_output_infix[]-class.hh"
|
||||||
/* -*- C++ -*- */
|
/* -*- C++ -*- */
|
||||||
|
|
||||||
/* A Bison parser, made from %%filename,
|
/* A Bison parser, made from b4_filename,
|
||||||
by GNU bison %%version. */
|
by GNU bison b4_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.
|
||||||
@@ -32,6 +32,19 @@
|
|||||||
|
|
||||||
b4_prologue
|
b4_prologue
|
||||||
|
|
||||||
|
/* Enabling traces. */
|
||||||
|
#ifndef YYDEBUG
|
||||||
|
# define YYDEBUG b4_debug
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Enabling verbose error message. */
|
||||||
|
#ifndef YYERROR_VERBOSE
|
||||||
|
# define YYERROR_VERBOSE b4_error_verbose
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Using locations. */
|
||||||
|
#define YYLSP_NEEDED b4_locations_flag
|
||||||
|
|
||||||
// FIXME: This should be defined in traits, not here.
|
// FIXME: This should be defined in traits, not here.
|
||||||
typedef b4_stype yystype;
|
typedef b4_stype yystype;
|
||||||
|
|
||||||
@@ -69,7 +82,6 @@ namespace yy
|
|||||||
|
|
||||||
b4_name (bool debug) : debug_ (debug)
|
b4_name (bool debug) : debug_ (debug)
|
||||||
{
|
{
|
||||||
looka = empty_;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~b4_name ()
|
virtual ~b4_name ()
|
||||||
@@ -80,21 +92,14 @@ namespace yy
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
virtual void lex_ ();
|
||||||
virtual void error_ ();
|
virtual void error_ ();
|
||||||
virtual void print_ ();
|
virtual void print_ ();
|
||||||
|
|
||||||
/* Call to lexical analyser. */
|
|
||||||
virtual
|
|
||||||
void
|
|
||||||
lex ()
|
|
||||||
{
|
|
||||||
looka = yylex (&value, &location);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Stacks. */
|
/* Stacks. */
|
||||||
StateStack state_stack;
|
StateStack state_stack_;
|
||||||
SemanticStack semantic_stack;
|
SemanticStack semantic_stack_;
|
||||||
LocationStack location_stack;
|
LocationStack location_stack_;
|
||||||
|
|
||||||
/* Tables. */
|
/* Tables. */
|
||||||
static const short pact_[[]];
|
static const short pact_[[]];
|
||||||
@@ -105,34 +110,44 @@ namespace yy
|
|||||||
static const short check_[[]];
|
static const short check_[[]];
|
||||||
static const short r1_[[]];
|
static const short r1_[[]];
|
||||||
static const short r2_[[]];
|
static const short r2_[[]];
|
||||||
|
|
||||||
|
#if YYDEBUG || YYERROR_VERBOSE
|
||||||
static const char* const name_[[]];
|
static const char* const name_[[]];
|
||||||
|
#endif
|
||||||
|
|
||||||
/* More tables, for debugging. */
|
/* More tables, for debugging. */
|
||||||
/* FIXME: These tables should not be printed when not in debug
|
#if YYDEBUG
|
||||||
mode. %%ifdef? */
|
|
||||||
static const short rhs_[[]];
|
static const short rhs_[[]];
|
||||||
static const short prhs_[[]];
|
static const short prhs_[[]];
|
||||||
static const short rline_[[]];
|
static const short rline_[[]];
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Even more tables. */
|
/* Even more tables. */
|
||||||
static inline char translate (int token);
|
static inline char translate_ (int token);
|
||||||
|
|
||||||
/* Constants. */
|
/* Constants. */
|
||||||
static const int eof_;
|
static const int eof_;
|
||||||
|
static const int last_;
|
||||||
|
static const int flag_;
|
||||||
|
static const int nnts_;
|
||||||
|
static const int nsym_;
|
||||||
static const int empty_;
|
static const int empty_;
|
||||||
|
static const int final_;
|
||||||
static const int terror_;
|
static const int terror_;
|
||||||
static const int errcode_;
|
static const int errcode_;
|
||||||
static const int ntokens_;
|
static const int ntokens_;
|
||||||
|
static const int initdepth_;
|
||||||
|
static const unsigned maxtok_;
|
||||||
|
|
||||||
/* State. */
|
/* State. */
|
||||||
int n;
|
int n_;
|
||||||
int len;
|
int len_;
|
||||||
int debug_;
|
int debug_;
|
||||||
int state;
|
int state_;
|
||||||
|
|
||||||
/* Lookahead. */
|
/* Lookahead and lookahead in internal form. */
|
||||||
int looka;
|
int looka_;
|
||||||
int ilooka;
|
int ilooka_;
|
||||||
|
|
||||||
/* Message. */
|
/* Message. */
|
||||||
std::string message;
|
std::string message;
|
||||||
@@ -146,27 +161,15 @@ namespace yy
|
|||||||
#output "b4_output_prefix[]b4_output_infix[].cc"
|
#output "b4_output_prefix[]b4_output_infix[].cc"
|
||||||
#include "b4_output_prefix[]b4_output_infix-class.hh"
|
#include "b4_output_prefix[]b4_output_infix-class.hh"
|
||||||
|
|
||||||
/* Enabling traces. */
|
|
||||||
#ifndef YYDEBUG
|
|
||||||
# define YYDEBUG b4_debug
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Enable debugging if requested. */
|
/* Enable debugging if requested. */
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
|
|
||||||
# include <cstdio>
|
# include <cstdio>
|
||||||
# define YYFPRINTF std::fprintf
|
# define YYFPRINTF std::fprintf
|
||||||
|
|
||||||
# define YYDPRINTF(Args) \
|
# define YYDPRINTF(Args) \
|
||||||
do { \
|
do { \
|
||||||
if (debug_) \
|
if (debug_) \
|
||||||
YYFPRINTF Args; \
|
YYFPRINTF Args; \
|
||||||
} while (0)
|
} while (0)
|
||||||
/* Nonzero means print parse trace. [The following comment makes no
|
|
||||||
sense to me. Could someone clarify it? --akim] Since this is
|
|
||||||
uninitialized, it does not stop multiple parsers from coexisting.
|
|
||||||
*/
|
|
||||||
int yydebug;
|
|
||||||
#else /* !YYDEBUG */
|
#else /* !YYDEBUG */
|
||||||
# define YYDPRINTF(Args)
|
# define YYDPRINTF(Args)
|
||||||
#endif /* !YYDEBUG */
|
#endif /* !YYDEBUG */
|
||||||
@@ -181,166 +184,166 @@ yy::b4_name::parse ()
|
|||||||
int errstatus = 0;
|
int errstatus = 0;
|
||||||
|
|
||||||
/* Initialize stack. */
|
/* Initialize stack. */
|
||||||
state_stack = StateStack (0);
|
state_stack_ = StateStack (0);
|
||||||
semantic_stack = SemanticStack (1);
|
semantic_stack_ = SemanticStack (1);
|
||||||
location_stack = LocationStack (1);
|
location_stack_ = LocationStack (1);
|
||||||
|
|
||||||
/* Reserve initial space. The C parser needed that, but is it really
|
/* Reserve initial space. The C parser needed that, but is it really
|
||||||
useful here? */
|
useful here? */
|
||||||
state_stack.reserve (b4_initdepth);
|
state_stack_.reserve (initdepth_);
|
||||||
semantic_stack.reserve (b4_initdepth);
|
semantic_stack_.reserve (initdepth_);
|
||||||
location_stack.reserve (b4_initdepth);
|
location_stack_.reserve (initdepth_);
|
||||||
|
|
||||||
/* Start. */
|
/* Start. */
|
||||||
state = 0;
|
state_ = 0;
|
||||||
|
looka_ = empty_;
|
||||||
YYDPRINTF ((stderr, "Starting parse\n"));
|
YYDPRINTF ((stderr, "Starting parse\n"));
|
||||||
|
|
||||||
/* New state. */
|
/* New state. */
|
||||||
yynewstate:
|
yynewstate:
|
||||||
state_stack.push (state);
|
state_stack_.push (state_);
|
||||||
YYDPRINTF ((stderr, "Entering state %d\n", state));
|
YYDPRINTF ((stderr, "Entering state %d\n", state_));
|
||||||
goto yybackup;
|
goto yybackup;
|
||||||
|
|
||||||
/* Backup. */
|
/* Backup. */
|
||||||
yybackup:
|
yybackup:
|
||||||
|
|
||||||
/* Try to take a decision without lookahead. */
|
/* Try to take a decision without lookahead. */
|
||||||
n = pact_[[state]];
|
n_ = pact_[[state_]];
|
||||||
if (n == b4_flag)
|
if (n_ == flag_)
|
||||||
goto yydefault;
|
goto yydefault;
|
||||||
|
|
||||||
/* Read a lookahead token. */
|
/* Read a lookahead token. */
|
||||||
if (looka == empty_)
|
if (looka_ == empty_)
|
||||||
{
|
{
|
||||||
YYDPRINTF ((stderr, "Reading a token: "));
|
YYDPRINTF ((stderr, "Reading a token: "));
|
||||||
lex ();
|
lex_ ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Convert token to internal form. */
|
/* Convert token to internal form. */
|
||||||
if (looka <= 0)
|
if (looka_ <= 0)
|
||||||
{
|
{
|
||||||
looka = eof_;
|
looka_ = eof_;
|
||||||
ilooka = 0;
|
ilooka_ = 0;
|
||||||
YYDPRINTF ((stderr, "Now at end of input.\n"));
|
YYDPRINTF ((stderr, "Now at end of input.\n"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ilooka = translate (looka);
|
ilooka_ = translate_ (looka_);
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
if (debug_)
|
if (debug_)
|
||||||
{
|
{
|
||||||
YYFPRINTF (stderr, "Next token is %d (%s", looka, name_[[ilooka]]);
|
YYFPRINTF (stderr, "Next token is %d (%s", looka_, name_[[ilooka_]]);
|
||||||
print_ ();
|
print_ ();
|
||||||
YYFPRINTF (stderr, ")\n");
|
YYFPRINTF (stderr, ")\n");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
n += ilooka;
|
n_ += ilooka_;
|
||||||
if (n < 0 || n > b4_last || check_[[n]] != ilooka)
|
if (n_ < 0 || n_ > last_ || check_[[n_]] != ilooka_)
|
||||||
goto yydefault;
|
goto yydefault;
|
||||||
|
|
||||||
/* Reduce or error. */
|
/* Reduce or error. */
|
||||||
n = table_[[n]];
|
n_ = table_[[n_]];
|
||||||
if (n < 0)
|
if (n_ < 0)
|
||||||
{
|
{
|
||||||
if (n == b4_flag)
|
if (n_ == flag_)
|
||||||
goto yyerrlab;
|
goto yyerrlab;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
n = -n;
|
n_ = -n_;
|
||||||
goto yyreduce;
|
goto yyreduce;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (n == 0)
|
else if (n_ == 0)
|
||||||
goto yyerrlab;
|
goto yyerrlab;
|
||||||
|
|
||||||
/* Accept? */
|
/* Accept? */
|
||||||
if (n == b4_final)
|
if (n_ == final_)
|
||||||
goto yyacceptlab;
|
goto yyacceptlab;
|
||||||
|
|
||||||
/* Shift the lookahead token. */
|
/* Shift the lookahead token. */
|
||||||
YYDPRINTF ((stderr, "Shifting token %d (%s), ", looka, name_[[ilooka]]));
|
YYDPRINTF ((stderr, "Shifting token %d (%s), ", looka_, name_[[ilooka_]]));
|
||||||
|
|
||||||
/* Discard the token being shifted unless it is eof. */
|
/* Discard the token being shifted unless it is eof. */
|
||||||
if (looka != eof_)
|
if (looka_ != eof_)
|
||||||
looka = empty_;
|
looka_ = empty_;
|
||||||
|
|
||||||
semantic_stack.push (value);
|
semantic_stack_.push (value);
|
||||||
location_stack.push (location);
|
location_stack_.push (location);
|
||||||
state = n;
|
state_ = n_;
|
||||||
goto yynewstate;
|
goto yynewstate;
|
||||||
|
|
||||||
/* Default action. */
|
/* Default action. */
|
||||||
yydefault:
|
yydefault:
|
||||||
n = defact_[[state]];
|
n_ = defact_[[state_]];
|
||||||
if (n == 0)
|
if (n_ == 0)
|
||||||
goto yyerrlab;
|
goto yyerrlab;
|
||||||
goto yyreduce;
|
goto yyreduce;
|
||||||
|
|
||||||
/* Reduce. */
|
/* Reduce. */
|
||||||
yyreduce:
|
yyreduce:
|
||||||
len = r2_[[n]];
|
len_ = r2_[[n_]];
|
||||||
if (len)
|
if (len_)
|
||||||
{
|
{
|
||||||
value = semantic_stack[[1 - len]];
|
value = semantic_stack_[[1 - len_]];
|
||||||
location = location_stack[[1 - len]];
|
location = location_stack_[[1 - len_]];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// FIXME: This is truly ugly.
|
value = semantic_stack_[[0]];
|
||||||
value = semantic_stack[[0]];
|
location = location_stack_[[0]];
|
||||||
location = location_stack[[0]];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
if (debug_)
|
if (debug_)
|
||||||
{
|
{
|
||||||
YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", n - 1, rline_[[n]]);
|
YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", n_ - 1, rline_[[n_]]);
|
||||||
for (unsigned i = prhs_[[n]];
|
for (unsigned i = prhs_[[n_]];
|
||||||
rhs_[[i]] >= 0; ++i)
|
rhs_[[i]] >= 0; ++i)
|
||||||
YYFPRINTF (stderr, "%s ", name_[[rhs_[i]]]);
|
YYFPRINTF (stderr, "%s ", name_[[rhs_[i]]]);
|
||||||
YYFPRINTF (stderr, "-> %s\n", name_[[r1_[n]]]);
|
YYFPRINTF (stderr, "-> %s\n", name_[[r1_[n_]]]);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
{
|
{
|
||||||
SemanticType& yyval (value);
|
SemanticType& yyval (value);
|
||||||
LocationType& yyloc (location);
|
LocationType& yyloc (location);
|
||||||
SemanticStack& yyvsp (semantic_stack);
|
SemanticStack& yyvsp (semantic_stack_);
|
||||||
LocationStack& yylsp (location_stack);
|
LocationStack& yylsp (location_stack_);
|
||||||
|
|
||||||
switch (n)
|
switch (n_)
|
||||||
{
|
{
|
||||||
b4_actions
|
b4_actions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
state_stack.pop (len);
|
state_stack_.pop (len_);
|
||||||
semantic_stack.pop (len);
|
semantic_stack_.pop (len_);
|
||||||
location_stack.pop (len);
|
location_stack_.pop (len_);
|
||||||
|
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
if (debug_)
|
if (debug_)
|
||||||
{
|
{
|
||||||
YYFPRINTF (stderr, "state stack now");
|
YYFPRINTF (stderr, "state stack now");
|
||||||
for (StateStack::ConstIterator i = state_stack.begin ();
|
for (StateStack::ConstIterator i = state_stack_.begin ();
|
||||||
i != state_stack.end (); ++i)
|
i != state_stack_.end (); ++i)
|
||||||
YYFPRINTF (stderr, " %d", *i);
|
YYFPRINTF (stderr, " %d", *i);
|
||||||
YYFPRINTF (stderr, "\n");
|
YYFPRINTF (stderr, "\n");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
semantic_stack.push (value);
|
semantic_stack_.push (value);
|
||||||
location_stack.push (location);
|
location_stack_.push (location);
|
||||||
|
|
||||||
/* Shift the result of the reduction. */
|
/* Shift the result of the reduction. */
|
||||||
n = r1_[[n]];
|
n_ = r1_[[n_]];
|
||||||
state = pgoto_[[n - ntokens_]] + state_stack[[0]];
|
state_ = pgoto_[[n_ - ntokens_]] + state_stack_[[0]];
|
||||||
if (state >= 0 && state <= b4_last && check_[[state]] == state_stack[[0]])
|
if (state_ >= 0 && state_ <= last_ && check_[[state_]] == state_stack_[[0]])
|
||||||
state = table_[[state]];
|
state_ = table_[[state_]];
|
||||||
else
|
else
|
||||||
state = defgoto_[[n - ntokens_]];
|
state_ = defgoto_[[n_ - ntokens_]];
|
||||||
goto yynewstate;
|
goto yynewstate;
|
||||||
|
|
||||||
/* Report and recover from errors. This is very incomplete. */
|
/* Report and recover from errors. This is very incomplete. */
|
||||||
@@ -350,22 +353,22 @@ yy::b4_name::parse ()
|
|||||||
{
|
{
|
||||||
++nerrs;
|
++nerrs;
|
||||||
|
|
||||||
// FIXME: Should be #if YYERROR_VERBOSE from here...
|
#if YYERROR_VERBOSE
|
||||||
n = pact_[[state]];
|
n_ = pact_[[state_]];
|
||||||
if (n > b4_flag && n < b4_last)
|
if (n_ > flag_ && n_ < last_)
|
||||||
{
|
{
|
||||||
message = "parse error, unexpected ";
|
message = "parse error, unexpected ";
|
||||||
message += name_[[ilooka]];
|
message += name_[[ilooka_]];
|
||||||
{
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
for (int x = (n < 0 ? -n : 0); x < b4_ntokens + b4_nnts; ++x)
|
for (int x = (n_ < 0 ? -n_ : 0); x < ntokens_ + nnts_; ++x)
|
||||||
if (check_[[x + n]] == x)
|
if (check_[[x + n_]] == x)
|
||||||
++count;
|
++count;
|
||||||
if (count < 5)
|
if (count < 5)
|
||||||
{
|
{
|
||||||
count = 0;
|
count = 0;
|
||||||
for (int x = (n < 0 ? -n : 0); x < b4_ntokens + b4_nnts; ++x)
|
for (int x = (n_ < 0 ? -n_ : 0); x < ntokens_ + nnts_; ++x)
|
||||||
if (check_[[x + n]] == x)
|
if (check_[[x + n_]] == x)
|
||||||
{
|
{
|
||||||
message += (!count++) ? ", expecting " : " or ";
|
message += (!count++) ? ", expecting " : " or ";
|
||||||
message += name_[[x]];
|
message += name_[[x]];
|
||||||
@@ -374,7 +377,7 @@ yy::b4_name::parse ()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
// FIXME: to there...
|
#endif
|
||||||
message = "parse error";
|
message = "parse error";
|
||||||
}
|
}
|
||||||
error_ ();
|
error_ ();
|
||||||
@@ -388,10 +391,10 @@ yy::b4_name::parse ()
|
|||||||
error, discard it. */
|
error, discard it. */
|
||||||
|
|
||||||
/* Return failure if at end of input. */
|
/* Return failure if at end of input. */
|
||||||
if (looka == eof_)
|
if (looka_ == eof_)
|
||||||
goto yyabortlab;
|
goto yyabortlab;
|
||||||
YYDPRINTF ((stderr, "Discarding token %d (%s).\n", looka, name_[[ilooka]]));
|
YYDPRINTF ((stderr, "Discarding token %d (%s).\n", looka_, name_[[ilooka_]]));
|
||||||
looka = empty_;
|
looka_ = empty_;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Else will try to reuse lookahead token after shifting the error
|
/* Else will try to reuse lookahead token after shifting the error
|
||||||
@@ -403,52 +406,52 @@ yy::b4_name::parse ()
|
|||||||
/* Pop the current state because it cannot handle the error token. */
|
/* Pop the current state because it cannot handle the error token. */
|
||||||
yyerrdefault:
|
yyerrdefault:
|
||||||
yyerrpop:
|
yyerrpop:
|
||||||
if (!state_stack.height ())
|
if (!state_stack_.height ())
|
||||||
goto yyabortlab;
|
goto yyabortlab;
|
||||||
state = (state_stack.pop (), state_stack[[0]]);
|
state_ = (state_stack_.pop (), state_stack_[[0]]);
|
||||||
semantic_stack.pop ();
|
semantic_stack_.pop ();
|
||||||
location_stack.pop ();;
|
location_stack_.pop ();;
|
||||||
|
|
||||||
#if YYDEBUG
|
#if YYDEBUG
|
||||||
if (debug_)
|
if (debug_)
|
||||||
{
|
{
|
||||||
YYFPRINTF (stderr, "Error: state stack now");
|
YYFPRINTF (stderr, "Error: state stack now");
|
||||||
for (StateStack::ConstIterator i = state_stack.begin ();
|
for (StateStack::ConstIterator i = state_stack_.begin ();
|
||||||
i != state_stack.end (); ++i)
|
i != state_stack_.end (); ++i)
|
||||||
YYFPRINTF (stderr, " %d", *i);
|
YYFPRINTF (stderr, " %d", *i);
|
||||||
YYFPRINTF (stderr, "\n");
|
YYFPRINTF (stderr, "\n");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
yyerrhandle:
|
yyerrhandle:
|
||||||
n = pact_[[state]];
|
n_ = pact_[[state_]];
|
||||||
if (n == b4_flag)
|
if (n_ == flag_)
|
||||||
goto yyerrdefault;
|
goto yyerrdefault;
|
||||||
|
|
||||||
n += terror_;
|
n_ += terror_;
|
||||||
if (n < 0 || n > b4_last || check_[[n]] != terror_)
|
if (n_ < 0 || n_ > last_ || check_[[n_]] != terror_)
|
||||||
goto yyerrdefault;
|
goto yyerrdefault;
|
||||||
|
|
||||||
n = table_[[n]];
|
n_ = table_[[n_]];
|
||||||
if (n < 0)
|
if (n_ < 0)
|
||||||
{
|
{
|
||||||
if (n == b4_flag)
|
if (n_ == flag_)
|
||||||
goto yyerrpop;
|
goto yyerrpop;
|
||||||
n = -n;
|
n_ = -n_;
|
||||||
goto yyreduce;
|
goto yyreduce;
|
||||||
}
|
}
|
||||||
else if (!n)
|
else if (!n_)
|
||||||
goto yyerrpop;
|
goto yyerrpop;
|
||||||
|
|
||||||
if (n == b4_final)
|
if (n_ == final_)
|
||||||
goto yyacceptlab;
|
goto yyacceptlab;
|
||||||
|
|
||||||
YYDPRINTF ((stderr, "Shifting error token, "));
|
YYDPRINTF ((stderr, "Shifting error token, "));
|
||||||
|
|
||||||
semantic_stack.push (value);
|
semantic_stack_.push (value);
|
||||||
location_stack.push (location);
|
location_stack_.push (location);
|
||||||
|
|
||||||
state = n;
|
state_ = n_;
|
||||||
goto yynewstate;
|
goto yynewstate;
|
||||||
|
|
||||||
/* Accept. */
|
/* Accept. */
|
||||||
@@ -460,9 +463,19 @@ yy::b4_name::parse ()
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
yy::b4_name::lex_ ()
|
||||||
|
{
|
||||||
|
#if YYLSP_NEEDED
|
||||||
|
looka_ = yylex (&value, &location);
|
||||||
|
#else
|
||||||
|
looka_ = yylex (&value);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/* YYPACT[[STATE-NUM]] -- Index in YYTABLE of the portion describing
|
/* YYPACT[[STATE-NUM]] -- Index in YYTABLE of the portion describing
|
||||||
STATE-NUM. */
|
STATE-NUM. */
|
||||||
const short
|
const short
|
||||||
yy::b4_name::pact_[[]] =
|
yy::b4_name::pact_[[]] =
|
||||||
{
|
{
|
||||||
b4_pact
|
b4_pact
|
||||||
@@ -471,21 +484,21 @@ yy::b4_name::pact_[[]] =
|
|||||||
/* YYDEFACT[[S]] -- default rule to reduce with in state S when YYTABLE
|
/* 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
|
doesn't specify something else to do. Zero means the default is an
|
||||||
error. */
|
error. */
|
||||||
const short
|
const short
|
||||||
yy::b4_name::defact_[[]] =
|
yy::b4_name::defact_[[]] =
|
||||||
{
|
{
|
||||||
b4_defact
|
b4_defact
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYPGOTO[[NTERM-NUM]]. */
|
/* YYPGOTO[[NTERM-NUM]]. */
|
||||||
const short
|
const short
|
||||||
yy::b4_name::pgoto_[[]] =
|
yy::b4_name::pgoto_[[]] =
|
||||||
{
|
{
|
||||||
b4_pgoto
|
b4_pgoto
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYDEFGOTO[[NTERM-NUM]]. */
|
/* YYDEFGOTO[[NTERM-NUM]]. */
|
||||||
const short
|
const short
|
||||||
yy::b4_name::defgoto_[[]] =
|
yy::b4_name::defgoto_[[]] =
|
||||||
{
|
{
|
||||||
b4_defgoto
|
b4_defgoto
|
||||||
@@ -494,26 +507,19 @@ yy::b4_name::defgoto_[[]] =
|
|||||||
/* YYTABLE[[YYPACT[STATE-NUM]]]. What to do in state STATE-NUM. If
|
/* YYTABLE[[YYPACT[STATE-NUM]]]. What to do in state STATE-NUM. If
|
||||||
positive, shift that token. If negative, reduce the rule which
|
positive, shift that token. If negative, reduce the rule which
|
||||||
number is the opposite. If zero, do what YYDEFACT says. */
|
number is the opposite. If zero, do what YYDEFACT says. */
|
||||||
const short
|
const short
|
||||||
yy::b4_name::table_[[]] =
|
yy::b4_name::table_[[]] =
|
||||||
{
|
{
|
||||||
b4_table
|
b4_table
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYCHECK. */
|
/* YYCHECK. */
|
||||||
const short
|
const short
|
||||||
yy::b4_name::check_[[]] =
|
yy::b4_name::check_[[]] =
|
||||||
{
|
{
|
||||||
b4_check
|
b4_check
|
||||||
};
|
};
|
||||||
|
|
||||||
/* YYRLINE[[YYN]] -- source line where rule number YYN was defined. */
|
|
||||||
const short
|
|
||||||
yy::b4_name::rline_[[]] =
|
|
||||||
{
|
|
||||||
b4_rline
|
|
||||||
};
|
|
||||||
|
|
||||||
/* YYR1[[YYN]] -- Symbol number of symbol that rule YYN derives. */
|
/* YYR1[[YYN]] -- Symbol number of symbol that rule YYN derives. */
|
||||||
const short
|
const short
|
||||||
yy::b4_name::r1_[[]] =
|
yy::b4_name::r1_[[]] =
|
||||||
@@ -528,6 +534,7 @@ yy::b4_name::r2_[[]] =
|
|||||||
b4_r2
|
b4_r2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#if YYDEBUG || YYERROR_VERBOSE
|
||||||
/* YYTNAME[[SYMBOL-NUM]] -- String name of the symbol SYMBOL-NUM.
|
/* YYTNAME[[SYMBOL-NUM]] -- String name of the symbol SYMBOL-NUM.
|
||||||
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
|
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
|
||||||
const char*
|
const char*
|
||||||
@@ -535,7 +542,9 @@ const yy::b4_name::name_[[]] =
|
|||||||
{
|
{
|
||||||
b4_tname
|
b4_tname
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if YYDEBUG
|
||||||
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
|
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
|
||||||
const short
|
const short
|
||||||
yy::b4_name::rhs_[[]] =
|
yy::b4_name::rhs_[[]] =
|
||||||
@@ -545,15 +554,23 @@ yy::b4_name::rhs_[[]] =
|
|||||||
|
|
||||||
/* YYPRHS[[YYN]] -- Index of the first RHS symbol of rule number YYN in
|
/* YYPRHS[[YYN]] -- Index of the first RHS symbol of rule number YYN in
|
||||||
YYRHS. */
|
YYRHS. */
|
||||||
const short
|
const short
|
||||||
yy::b4_name::prhs_[[]] =
|
yy::b4_name::prhs_[[]] =
|
||||||
{
|
{
|
||||||
b4_prhs
|
b4_prhs
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* YYRLINE[[YYN]] -- source line where rule number YYN was defined. */
|
||||||
|
const short
|
||||||
|
yy::b4_name::rline_[[]] =
|
||||||
|
{
|
||||||
|
b4_rline
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
|
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
|
||||||
char
|
char
|
||||||
yy::b4_name::translate (int token)
|
yy::b4_name::translate_ (int token)
|
||||||
{
|
{
|
||||||
static
|
static
|
||||||
const char
|
const char
|
||||||
@@ -561,14 +578,22 @@ yy::b4_name::translate (int token)
|
|||||||
{
|
{
|
||||||
b4_translate
|
b4_translate
|
||||||
};
|
};
|
||||||
return ((unsigned)(token) <= b4_maxtok ? translate_[[token]] : b4_nsym);
|
return ((unsigned)(token) <= maxtok_ ? translate_[[token]] : nsym_);
|
||||||
}
|
}
|
||||||
|
|
||||||
const int yy::b4_name::eof_ = 0;
|
const int yy::b4_name::eof_ = 0;
|
||||||
|
const int yy::b4_name::last_ = b4_last;
|
||||||
|
const int yy::b4_name::flag_ = b4_flag;
|
||||||
|
const int yy::b4_name::nnts_ = b4_nnts;
|
||||||
|
const int yy::b4_name::nsym_ = b4_nsym;
|
||||||
const int yy::b4_name::empty_ = -2;
|
const int yy::b4_name::empty_ = -2;
|
||||||
|
const int yy::b4_name::final_ = b4_final;
|
||||||
const int yy::b4_name::terror_ = 1;
|
const int yy::b4_name::terror_ = 1;
|
||||||
const int yy::b4_name::errcode_ = 256;
|
const int yy::b4_name::errcode_ = 256;
|
||||||
const int yy::b4_name::ntokens_ = b4_ntokens;
|
const int yy::b4_name::ntokens_ = b4_ntokens;
|
||||||
|
const int yy::b4_name::initdepth_ = b4_initdepth;
|
||||||
|
|
||||||
|
const unsigned yy::b4_name::maxtok_ = b4_maxtok;
|
||||||
|
|
||||||
b4_epilogue
|
b4_epilogue
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user