]> git.saurik.com Git - bison.git/commitdiff
yacc: remove trailing end of line at end of file
authorAkim Demaille <akim@lrde.epita.fr>
Thu, 2 Aug 2012 10:01:54 +0000 (12:01 +0200)
committerAkim Demaille <akim@lrde.epita.fr>
Thu, 2 Aug 2012 11:51:52 +0000 (13:51 +0200)
There are still spurious spaces at the end of some lines.  But this is
addressed in the master branch, and I am reluctant to try to backport
this.

* data/yacc.c, data/glr.c, data/lalr1.cc, data/glr.cc: here.
* tests/calc.at (AT_CHECK_SPACES): New.
Use it.
Be sure not to introduce trailing empty lines in the *.y files.
* NEWS: Doc it.
* cfg.mk (syntax-check): Remove the exception.

NEWS
cfg.mk
data/glr.c
data/glr.cc
data/lalr1.cc
data/yacc.c
src/parse-gram.c
src/parse-gram.h
tests/calc.at

diff --git a/NEWS b/NEWS
index 316abb04dd12b3629d9326a2d466b86706e9f15b..0ce9dd43583018032829db0f1653ebb5d3658ded 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,10 @@ GNU Bison NEWS
   Trailing end-of-lines in %parse-param or %lex-param would result in
   invalid C++.  This is fixed.
 
+** Spurious spaces and end-of-lines
+
+  The generated files no longer end (nor start) with empty lines.
+
 * Noteworthy changes in release 2.6.1 (2012-07-30) [stable]
 
  Bison no longer executes user-specified M4 code when processing a grammar.
diff --git a/cfg.mk b/cfg.mk
index 53855aefc78e01481201ac5bdf9fd04044d14e32..3a70379ceff32ac9cc53b0bd7c977366b4262593 100644 (file)
--- a/cfg.mk
+++ b/cfg.mk
@@ -70,7 +70,6 @@ $(call exclude,                                                               \
   prohibit_always-defined_macros+=?|^src/(parse-gram.c|system.h)$$     \
   prohibit_always-defined_macros+=?|^tests/regression.at$$             \
   prohibit_defined_have_decl_tests=?|^lib/timevar.c$$                  \
-  prohibit_empty_lines_at_EOF=^src/parse-gram.[ch]$$                   \
   prohibit_magic_number_exit=^doc/bison.texi$$                         \
   prohibit_magic_number_exit+=?|^tests/(conflicts|regression).at$$     \
   require_config_h_first=^(lib/yyerror|data/(glr|yacc))\.c$$           \
index 08f6cd8d0db55dd4a6a6208566683b58ecd4e51b..97efe894bc9fc9f976d9e90f8823aefa43d34bec 100644 (file)
@@ -2599,9 +2599,7 @@ yypdumpstack (yyGLRStack* yystackp)
   YYFPRINTF (stderr, "\n");
 }
 #endif
-]
-
-b4_epilogue
+]b4_epilogue[]dnl
 dnl
 dnl glr.cc produces its own header.
 dnl
@@ -2614,5 +2612,5 @@ b4_copyright([Skeleton interface for Bison GLR parsers in C],
 ]b4_cpp_guard_open([b4_spec_defines_file])[
 ]b4_shared_declarations[
 ]b4_cpp_guard_close([b4_spec_defines_file])[
-]])])
+]])])dnl
 m4_divert_pop(0)
index 78a7ae519ad0b902a1a3e67e2fc5b51f83067d1a..826bc80e76b1bbe72811fa534c215cb89ac08d95 100644 (file)
@@ -211,9 +211,7 @@ m4_pushdef([b4_parse_param], m4_defn([b4_parse_param_orig]))dnl
 
 #endif
 ]m4_popdef([b4_parse_param])dnl
-b4_namespace_close[
-
-]])
+b4_namespace_close])
 
 
 # Let glr.c believe that the user arguments include the parser itself.
index c1639033f3fbd5194f92bd2b44f56144637f5406..82e68244c299feda6eed205951fc803ace71ac1c 100644 (file)
@@ -1104,5 +1104,5 @@ b4_error_verbose_if([int yystate, int yytoken],
   const ]b4_parser_class_name[::token_number_type ]b4_parser_class_name[::yyundef_token_ = ]b4_undef_token_number[;
 
 ]b4_namespace_close[
-]b4_epilogue
+]b4_epilogue[]dnl
 m4_divert_pop(0)
index 1cd9ffbb288493297bb57a88b93f4d21c22569f4..01756884a1fa344d385050d9fd7bb5d4f4a12c67 100644 (file)
@@ -2045,7 +2045,7 @@ yypushreturn:]])[
 }
 
 
-]b4_epilogue
+]b4_epilogue[]dnl
 b4_defines_if(
 [@output(b4_spec_defines_file@)@
 b4_copyright([Bison interface for Yacc-like parsers in C],
index 207938dc152468b7fbaf0952bbda5b6dcde78807..a04f2f237be8ba18c1c048a44f832d4ec8eec4ff 100644 (file)
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 2.6.1.6-b045.  */
+/* A Bison parser, made by GNU Bison 2.6.1.12-3153-dirty.  */
 
 /* Bison implementation for Yacc-like parsers in C
    
@@ -44,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.6.1.6-b045"
+#define YYBISON_VERSION "2.6.1.12-3153-dirty"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -3225,4 +3225,3 @@ char_name (char c)
       return quotearg_style (escape_quoting_style, buf);
     }
 }
-
index 50cfe23ebeaa98dc60ea0768f67a2c7137211f90..0cc4d5479031a35e3ba3aaa8e8e1d2136c42c0ef 100644 (file)
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 2.6.1.6-b045.  */
+/* A Bison parser, made by GNU Bison 2.6.1.12-3153-dirty.  */
 
 /* Bison interface for Yacc-like parsers in C
    
index 31ee44e29e19afac266e6d72c914b9b10f8ff62a..3aab86815dbe9da34e4d14d1530010c8a52fcbb3 100644 (file)
@@ -386,11 +386,9 @@ AT_YYERROR_SEES_LOC_IF([
   fprintf (stderr, ": ");])
   fprintf (stderr, "%s\n", s);
 }])[
-
 ]AT_DEFINES_IF([],
 [AT_CALC_LEX
-AT_CALC_MAIN])[
-]])
+AT_CALC_MAIN])])
 
 AT_DEFINES_IF([AT_DATA_SOURCE([[calc-lex.c]AT_SKEL_CC_IF([[c]])],
 [[#include "calc.h]AT_SKEL_CC_IF([[h]])["
@@ -500,6 +498,20 @@ AT_CHECK([cat stderr], 0, [expout])
 ])
 
 
+# AT_CHECK_SPACES([FILE])
+# -----------------------
+# Make sure we did not introduce bad spaces.  Checked here because all
+# the skeletons are (or should be) exercized here.
+m4_define([AT_CHECK_SPACES],
+[# No initial empty lines.
+AT_CHECK([sed -ne '/./q;=;p;' $1])
+# No trailing spaces.
+# FIXME: For 2.7: AT_CHECK([sed -ne '/[ ]$/{=;p;}' $1])
+# No final empty lines.
+AT_CHECK([sed -ne '${/^$/{=;p;};}' $1])
+])
+
+
 # AT_CHECK_CALC([BISON-OPTIONS])
 # ------------------------------
 # Start a testing chunk which compiles `calc' grammar with
@@ -514,6 +526,8 @@ AT_BISON_OPTION_PUSHDEFS([$1])
 
 AT_DATA_CALC_Y([$1])
 AT_FULL_COMPILE([calc], AT_DEFINES_IF([[lex], [main]]))
+AT_CHECK_SPACES([calc.AT_SKEL_CC_IF([cc], [c])])
+AT_DEFINES_IF([AT_CHECK_SPACES([calc.AT_SKEL_CC_IF([hh], [h])])])
 
 # Test the priorities.
 _AT_CHECK_CALC([$1],