From 14da0cdd075600829a4373b97645e75a8b1310ac Mon Sep 17 00:00:00 2001 From: "Joel E. Denny" Date: Tue, 4 Nov 2008 13:26:59 -0500 Subject: [PATCH] Fix user actions without a trailing semicolon. Reported by Sergei Steshenko at . * THANKS (Sergei Steshenko): Add. * src/scan-code.l (SC_RULE_ACTION): Fix it. * tests/regression.at (Fix user actions without a trailing semicolon): New test case. --- ChangeLog | 10 ++++++++++ THANKS | 1 + src/scan-code.l | 4 ++-- tests/regression.at | 26 +++++++++++++++++++++++++- 4 files changed, 38 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index ca2c184f..08c5417b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2008-11-04 Joel E. Denny + + Fix user actions without a trailing semicolon. + Reported by Sergei Steshenko at + . + * THANKS (Sergei Steshenko): Add. + * src/scan-code.l (SC_RULE_ACTION): Fix it. + * tests/regression.at (Fix user actions without a trailing semicolon): + New test case. + 2008-11-02 Joel E. Denny Initiate further development. diff --git a/THANKS b/THANKS index 6785e2a8..5f88c6c2 100644 --- a/THANKS +++ b/THANKS @@ -79,6 +79,7 @@ Robert Anisko anisko_r@epita.fr Satya Kiran Popuri satyakiran@gmail.com Sebastien Fricker sebastien.fricker@gmail.com Sebastian Setzer sebastian.setzer.ext@siemens.com +Sergei Steshenko sergstesh@yahoo.com Shura debil_urod@ngs.ru Steve Murphy murf@parsetree.com Tim Josling tej@melbpc.org.au diff --git a/src/scan-code.l b/src/scan-code.l index 630d45d5..71c90768 100644 --- a/src/scan-code.l +++ b/src/scan-code.l @@ -1,6 +1,6 @@ /* Bison Action Scanner -*- C -*- - Copyright (C) 2006, 2007 Free Software Foundation, Inc. + Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -170,7 +170,7 @@ splice (\\[ \f\t\v]*\n)* "{" STRING_GROW; ++braces_level; "}" { - bool outer_brace = --braces_level < 0; + bool outer_brace = --braces_level == 0; /* As an undocumented Bison extension, append `;' before the last brace in braced code, so that the user code can omit trailing diff --git a/tests/regression.at b/tests/regression.at index 51bf3f30..6bfc8d09 100644 --- a/tests/regression.at +++ b/tests/regression.at @@ -1201,7 +1201,7 @@ AT_CLEANUP ## Token number in precedence declaration. ## ## ---------------------------------------- ## -AT_SETUP([[Token number in precedence declaration.]]) +AT_SETUP([[Token number in precedence declaration]]) # POSIX says token numbers can be declared in %left, %right, and %nonassoc, but # we lost this in Bison 1.50. @@ -1255,3 +1255,27 @@ AT_COMPILE([[input]]) AT_PARSER_CHECK([[./input]]) AT_CLEANUP + + + +## ----------------------------------------------- ## +## Fix user actions without a trailing semicolon. ## +## ----------------------------------------------- ## + +AT_SETUP([[Fix user actions without a trailing semicolon]]) + +# This feature is undocumented, but we accidentally broke it in 2.3a, and there +# was a complaint at: +# . + +AT_DATA([input.y], +[[%% +start: {asdffdsa} ; +]]) + +AT_BISON_CHECK([[-o input.c input.y]]) +AT_CHECK([[sed -n '/asdffdsa/s/^ *//p' input.c]], [[0]], +[[{asdffdsa;} +]]) + +AT_CLEANUP -- 2.45.2