From 284acc8ba709220740d9208e748eb686cacc1474 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Thu, 2 Sep 2004 14:27:02 +0000 Subject: [PATCH] * 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. --- ChangeLog | 11 ++++++++ data/glr.c | 34 ++++++++++--------------- data/lalr1.cc | 81 +++++++++++++++++++++++++++-------------------------------- data/yacc.c | 22 ++++++---------- 4 files changed, 69 insertions(+), 79 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5e3699f..2c84e58 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,16 @@ 2004-09-02 Akim Demaille + * 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 + * data/lalr1.cc (b4_yysymprint_generate): New. (symprint_): New member function, defined when YYDEBUG. Use it consistently instead of token/nterm debugging output by diff --git a/data/glr.c b/data/glr.c index e82282d..883c248 100644 --- a/data/glr.c +++ b/data/glr.c @@ -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,9 +1698,9 @@ yyrecoverSyntaxError (yyGLRStack* yystack, 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; @@ -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,9 +1760,9 @@ yyrecoverSyntaxError (yyGLRStack* yystack, 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; @@ -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) diff --git a/data/lalr1.cc b/data/lalr1.cc index b07cb19..3ab08b2 100644 --- a/data/lalr1.cc +++ b/data/lalr1.cc @@ -316,8 +316,8 @@ namespace yy /* 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_; @@ -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 @@ -579,7 +590,7 @@ b4_syncline([@oline@], [@ofile@])[ /*------------------------------------. | yyerrlab -- here on detecting error | `------------------------------------*/ - yyerrlab: +yyerrlab: /* If not already recovering from an error, report this error. */ report_syntax_error_ (); @@ -603,31 +614,18 @@ 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]], - &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_; } @@ -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; @@ -716,11 +709,11 @@ yyerrlab1: goto yynewstate; /* Accept. */ - yyacceptlab: +yyacceptlab: return 0; /* Abort. */ - yyabortlab: +yyabortlab: return 1; } diff --git a/data/yacc.c b/data/yacc.c index c7415e2..78fae04 100644 --- a/data/yacc.c +++ b/data/yacc.c @@ -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; -- 2.7.4