(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/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.
(symprint_): New member function, defined when YYDEBUG.
Use it consistently instead of token/nterm debugging output by
]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)
#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 */
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);
while (yystack->yytops.yystates[0] != NULL)
{
yyGLRState *yys = yystack->yytops.yystates[0];
- YYDSYMPRINTF ("Error: popping",
- yystos[yys->yylrState],
- &yys->yysemantics.yysval, &yys->yyloc);
+ YY_SYMBOL_PRINT ("Error: popping",
+ yystos[yys->yylrState],
+ &yys->yysemantics.yysval, &yys->yyloc);
yydestruct (yystos[yys->yylrState],
&yys->yysemantics.yysval]b4_location_if([, &yys->yyloc])[);
yystack->yytops.yystates[0] = yys->yypred;
}
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;
break;
}
}
- YYDSYMPRINTF ("Error: popping",
- yystos[yys->yylrState],
- &yys->yysemantics.yysval, &yys->yyloc);
+ YY_SYMBOL_PRINT ("Error: popping",
+ yystos[yys->yylrState],
+ &yys->yysemantics.yysval, &yys->yyloc);
yydestruct (yystos[yys->yylrState],
&yys->yysemantics.yysval]b4_location_if([, &yys->yyloc])[);
yystack->yytops.yystates[0] = yys->yypred;
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)
/* Even more tables. */
static inline TokenNumberType translate_ (int token);
- static inline void destruct_ (int yytype, SemanticType *yyvaluep,
- LocationType *yylocationp);
+ inline void destruct_ (int yytype, SemanticType *yyvaluep,
+ LocationType *yylocationp);
/* Constants. */
static const int eof_;
/* 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
}
/* 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
/*------------------------------------.
| yyerrlab -- here on detecting error |
`------------------------------------*/
- yyerrlab:
+yyerrlab:
/* If not already recovering from an error, report this error. */
report_syntax_error_ ();
location_stack_.pop ();
if (state_stack_.height () == 1)
YYABORT;
-#if YYDEBUG
- if (debug_)
- {
- cdebug_ << "Error: popping ";
- symprint_ (stos_[state_stack_[0]],
- &semantic_stack_[0],
- &location_stack_[0]);
- cdebug_ << std::endl;
- }
-#endif // YYDEBUG
- destruct_ (stos_[state_stack_[0]],
+ YY_SYMBOL_PRINT ("Error: popping",
+ stos_[state_stack_[0]],
+ &semantic_stack_[0],
+ &location_stack_[0]);
+ destruct_ (stos_[state_stack_[0]],
&semantic_stack_[0],
&location_stack_[0]);
}
}
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_;
}
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;
goto yynewstate;
/* Accept. */
- yyacceptlab:
+yyacceptlab:
return 0;
/* Abort. */
- yyabortlab:
+yyabortlab:
return 1;
}
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)
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 */
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
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;])[
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;