]> git.saurik.com Git - bison.git/commitdiff
Don't add a semicolon to actions for %skeleton or %language.
authorJoel E. Denny <jdenny@ces.clemson.edu>
Fri, 7 Nov 2008 21:48:57 +0000 (16:48 -0500)
committerJoel E. Denny <jdenny@ces.clemson.edu>
Fri, 7 Nov 2008 21:48:57 +0000 (16:48 -0500)
It breaks Java test cases as reported by Akim Demaille.
* src/scan-code.l: Implement.

ChangeLog
src/scan-code.l

index 4d3011f15bfbdd35c59a355041cbc30cfff9c3ec..86aa3e5d0e17141a1496b29258cc37f55e6fafdc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-07  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Don't add a semicolon to actions for %skeleton or %language.
+       It breaks Java test cases as reported by Akim Demaille.
+       * src/scan-code.l: Implement.
+
 2008-11-07  Joel E. Denny  <jdenny@ces.clemson.edu>
 
        Clean up %skeleton and %language priority implementation.
index 71c90768efb4700f2d52d888b4e3a9d604a075bc..13a78c27fb00c8a00dff6d11f5e315d8016b4fce 100644 (file)
@@ -175,7 +175,9 @@ splice       (\\[ \f\t\v]*\n)*
     /* As an undocumented Bison extension, append `;' before the last
        brace in braced code, so that the user code can omit trailing
        `;'.  But do not append `;' if emulating Yacc, since Yacc does
-       not append one.
+       not append one.  Also, some output languages (like Java) do not
+       accept an extra semicolon, so don't append if the user specified
+       a skeleton or language.
 
        FIXME: Bison should warn if a semicolon seems to be necessary
        here, and should omit the semicolon if it seems unnecessary
@@ -186,7 +188,8 @@ splice       (\\[ \f\t\v]*\n)*
        should also diagnose other Bison extensions like %yacc.
        Perhaps there should also be a GCC-style --pedantic-errors
        option, so that such warnings are diagnosed as errors.  */
-    if (outer_brace && ! yacc_flag)
+    if (outer_brace && !yacc_flag && language_prio == default_prio
+        && skeleton_prio == default_prio)
       obstack_1grow (&obstack_for_string, ';');
 
     STRING_GROW;