From: Joel E. Denny Date: Sun, 31 Oct 2010 22:56:34 +0000 (-0400) Subject: yysyntax_error: improve invocation readability. X-Git-Tag: v2.5_rc1~57 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/0e0f066b764d688a307e89d2bffa28e28319711c yysyntax_error: improve invocation readability. * data/yacc.c (yyparse, yypush_parse): For yysyntax_error invocation, get rid of the while loop, which is misleading because there are really at most two iterations. (cherry picked from commit 34db451c379888fa593268b65518ad191bef21f5) --- diff --git a/ChangeLog b/ChangeLog index 61998e63..26815fff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2010-10-31 Joel E. Denny + + yysyntax_error: improve invocation readability. + * data/yacc.c (yyparse, yypush_parse): For yysyntax_error + invocation, get rid of the while loop, which is misleading + because there are really at most two iterations. + 2010-10-31 Joel E. Denny * ChangeLog: Correct some errors in previous entries. diff --git a/data/yacc.c b/data/yacc.c index fa3612cf..7aa548b0 100644 --- a/data/yacc.c +++ b/data/yacc.c @@ -1543,28 +1543,34 @@ yyerrlab: #if ! YYERROR_VERBOSE yyerror (]b4_yyerror_args[YY_("syntax error")); #else - while (1) - { - int yysyntax_error_status = - yysyntax_error (&yymsg_alloc, &yymsg, yystate, yytoken); - if (yysyntax_error_status == 2 && 0 < yymsg_alloc) - { - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); - if (yymsg) - continue; - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - if (yysyntax_error_status == 0) - yyerror (]b4_yyerror_args[yymsg); - else - yyerror (]b4_yyerror_args[YY_("syntax error")); - if (yysyntax_error_status == 2) - goto yyexhaustedlab; - break; - } +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, yystate, \ + yytoken) + { + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 2 && 0 < yymsg_alloc) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (]b4_yyerror_args[yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; + } +# undef YYSYNTAX_ERROR #endif }