* data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.

(YYDSYMPRINTF): Rename as...
(YY_SYMBOL_PRINT): this.
* data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
two.
Use it instead of direct symprint_ calls.
(yybackup): Tweak the "Now at end of input" case to match yacc.c's
one.
This commit is contained in:
Akim Demaille
2004-09-02 14:27:02 +00:00
parent b7c72fe1c4
commit 284acc8ba7
4 changed files with 69 additions and 79 deletions

View File

@@ -1,3 +1,14 @@
2004-09-02 Akim Demaille <akim@epita.fr>
* data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
(YYDSYMPRINTF): Rename as...
(YY_SYMBOL_PRINT): this.
* data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
two.
Use it instead of direct symprint_ calls.
(yybackup): Tweak the "Now at end of input" case to match yacc.c's
one.
2004-09-02 Akim Demaille <akim@epita.fr>
* data/lalr1.cc (b4_yysymprint_generate): New.

View File

@@ -479,19 +479,13 @@ do { \
]b4_yysymprint_generate([b4_c_ansi_function_def])[
# define YYDSYMPRINT(Args) \
do { \
if (yydebug) \
yysymprint Args; \
} while (0)
# define YYDSYMPRINTF(Title, Token, Value, Location) \
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yysymprint (stderr, \
Token, Value]b4_location_if([, Location])[); \
Type, Value]b4_location_if([, Location])[); \
YYFPRINTF (stderr, "\n"); \
} \
} while (0)
@@ -502,10 +496,8 @@ int yydebug;
#else /* !YYDEBUG */
/* Avoid empty `if' bodies. */
# define YYDPRINTF(Args)
# define YYDSYMPRINT(Args)
# define YYDSYMPRINTF(Title, Token, Value, Location)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
#endif /* !YYDEBUG */
@@ -1568,7 +1560,7 @@ yyprocessOneStack (yyGLRStack* yystack, int yyk,
YYDPRINTF ((stderr, "Reading a token: "));
yychar = YYLEX;
*yytokenp = YYTRANSLATE (yychar);
YYDSYMPRINTF ("Next token is", *yytokenp, yylvalp, yyllocp);
YY_SYMBOL_PRINT ("Next token is", *yytokenp, yylvalp, yyllocp);
}
yygetLRActions (yystate, *yytokenp, &yyaction, &yyconflicts);
@@ -1706,7 +1698,7 @@ yyrecoverSyntaxError (yyGLRStack* yystack,
while (yystack->yytops.yystates[0] != NULL)
{
yyGLRState *yys = yystack->yytops.yystates[0];
YYDSYMPRINTF ("Error: popping",
YY_SYMBOL_PRINT ("Error: popping",
yystos[yys->yylrState],
&yys->yysemantics.yysval, &yys->yyloc);
yydestruct (yystos[yys->yylrState],
@@ -1719,13 +1711,13 @@ yyrecoverSyntaxError (yyGLRStack* yystack,
}
if (*yytokenp != YYEMPTY)
{
YYDSYMPRINTF ("Error: discarding", *yytokenp, yylvalp, yyllocp);
YY_SYMBOL_PRINT ("Error: discarding", *yytokenp, yylvalp, yyllocp);
yydestruct (*yytokenp, yylvalp]b4_location_if([, yyllocp])[);
}
YYDPRINTF ((stderr, "Reading a token: "));
yychar = YYLEX;
*yytokenp = YYTRANSLATE (yychar);
YYDSYMPRINTF ("Next token is", *yytokenp, yylvalp, yyllocp);
YY_SYMBOL_PRINT ("Next token is", *yytokenp, yylvalp, yyllocp);
yyj = yypact[yystack->yytops.yystates[0]->yylrState];
if (yyis_pact_ninf (yyj))
return;
@@ -1768,7 +1760,7 @@ yyrecoverSyntaxError (yyGLRStack* yystack,
break;
}
}
YYDSYMPRINTF ("Error: popping",
YY_SYMBOL_PRINT ("Error: popping",
yystos[yys->yylrState],
&yys->yysemantics.yysval, &yys->yyloc);
yydestruct (yystos[yys->yylrState],
@@ -1863,7 +1855,7 @@ yyrecoverSyntaxError (yyGLRStack* yystack,
YYDPRINTF ((stderr, "Reading a token: "));
yychar = YYLEX;
yytoken = YYTRANSLATE (yychar);
YYDSYMPRINTF ("Next token is", yytoken, yylvalp, yyllocp);
YY_SYMBOL_PRINT ("Next token is", yytoken, yylvalp, yyllocp);
}
yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
if (*yyconflicts != 0)

View File

@@ -316,7 +316,7 @@ namespace yy
/* Even more tables. */
static inline TokenNumberType translate_ (int token);
static inline void destruct_ (int yytype, SemanticType *yyvaluep,
inline void destruct_ (int yytype, SemanticType *yyvaluep,
LocationType *yylocationp);
/* Constants. */
@@ -378,21 +378,40 @@ m4_if(b4_defines_flag, 0, [], [#include @output_header_name@])[
/* Enable debugging if requested. */
#if YYDEBUG
# define YYCDEBUG if (debug_) cdebug_
# define YYCDEBUG \
if (debug_) \
cdebug_
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (debug_) \
{ \
cdebug_ << (Title) << ' '; \
symprint_ ((Type), (Value), (Location)); \
cdebug_ << std::endl; \
} \
} while (0)
# define YY_REDUCE_PRINT(Rule) \
do { \
if (debug_) \
reduce_print_ (Rule); \
} while (0)
# define YY_STACK_PRINT() \
do { \
if (debug_) \
stack_print_ (); \
} while (0)
#else /* !YYDEBUG */
# define YYCDEBUG if (0) cdebug_
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_REDUCE_PRINT(Rule)
# define YY_STACK_PRINT()
#endif /* !YYDEBUG */
#define YYACCEPT goto yyacceptlab
@@ -448,23 +467,15 @@ yy::]b4_parser_class_name[::parse ()
}
/* Convert token to internal form. */
if (looka_ <= 0)
if (looka_ <= eof_)
{
looka_ = eof_;
ilooka_ = 0;
looka_ = ilooka_ = eof_;
YYCDEBUG << "Now at end of input." << std::endl;
}
else
{
ilooka_ = translate_ (looka_);
#if YYDEBUG
if (debug_)
{
cdebug_ << "Next token is ";
symprint_ (ilooka_, &value, &location);
cdebug_ << std::endl;
}
#endif
YY_SYMBOL_PRINT ("Next token is", ilooka_, &value, &location);
}
/* If the proper action on seeing token ILOOKA_ is to reduce or to
@@ -603,16 +614,10 @@ b4_syncline([@oline@], [@ofile@])[
location_stack_.pop ();
if (state_stack_.height () == 1)
YYABORT;
#if YYDEBUG
if (debug_)
{
cdebug_ << "Error: popping ";
symprint_ (stos_[state_stack_[0]],
YY_SYMBOL_PRINT ("Error: popping",
stos_[state_stack_[0]],
&semantic_stack_[0],
&location_stack_[0]);
cdebug_ << std::endl;
}
#endif // YYDEBUG
destruct_ (stos_[state_stack_[0]],
&semantic_stack_[0],
&location_stack_[0]);
@@ -620,14 +625,7 @@ b4_syncline([@oline@], [@ofile@])[
}
else
{
#if YYDEBUG
if (debug_)
{
cdebug_ << "Error: discarding ";
symprint_ (ilooka_, &value, &location);
cdebug_ << std::endl;
}
#endif
YY_SYMBOL_PRINT ("Error: discarding", ilooka_, &value, &location);
destruct_ (ilooka_, &value, &location);
looka_ = empty_;
}
@@ -681,14 +679,9 @@ yyerrlab1:
if (state_stack_.height () == 1)
YYABORT;
#if YYDEBUG
if (debug_)
{
cdebug_ << "Error: popping ";
symprint_ (stos_[state_], &semantic_stack_[0], &location_stack_[0]);
cdebug_ << std::endl;
}
#endif
YY_SYMBOL_PRINT ("Error: popping",
stos_[state_],
&semantic_stack_[0], &location_stack_[0]);
destruct_ (stos_[state_], &semantic_stack_[0], &location_stack_[0]);
error_start_ = location_stack_[0].begin;

View File

@@ -537,19 +537,13 @@ do { \
YYFPRINTF Args; \
} while (0)
# define YYDSYMPRINT(Args) \
do { \
if (yydebug) \
yysymprint Args; \
} while (0)
# define YYDSYMPRINTF(Title, Token, Value, Location) \
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yysymprint (stderr, \
Token, Value]b4_location_if([, Location])[); \
Type, Value]b4_location_if([, Location])[); \
YYFPRINTF (stderr, "\n"); \
} \
} while (0)
@@ -604,8 +598,7 @@ do { \
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
# define YYDSYMPRINT(Args)
# define YYDSYMPRINTF(Title, Token, Value, Location)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */
@@ -932,7 +925,7 @@ yybackup:
else
{
yytoken = YYTRANSLATE (yychar);
YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
}
/* If the proper action on seeing token YYTOKEN is to reduce or to
@@ -1121,13 +1114,14 @@ yyerrlab:
YYPOPSTACK;
if (yyssp == yyss)
YYABORT;
YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
YY_SYMBOL_PRINT ("Error: popping",
yystos[*yyssp], yyvsp, yylsp);
yydestruct (yystos[*yyssp], yyvsp]b4_location_if([, yylsp])[);
}
}
else
{
YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
YY_SYMBOL_PRINT ("Error: discarding", yytoken, &yylval, &yylloc);
yydestruct (yytoken, &yylval]b4_location_if([, &yylloc])[);
yychar = YYEMPTY;
]b4_location_if([ *++yylerrsp = yylloc;])[
@@ -1184,7 +1178,7 @@ yyerrlab1:
if (yyssp == yyss)
YYABORT;
YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
YY_SYMBOL_PRINT ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
yydestruct (yystos[yystate], yyvsp]b4_location_if([, yylsp])[);
YYPOPSTACK;
yystate = *yyssp;