bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

all: avoid useless comments and #lines


From: Akim Demaille
Subject: all: avoid useless comments and #lines
Date: Sun, 21 Oct 2018 10:00:52 +0200

I was looking for a place where to issue a warning about
Bison’s private macros, and noticed too many confusing
comments and useless #lines.

commit 81a9580622fc69375f8062f66a7ee0d0ef525397
Author: Akim Demaille <address@hidden>
Date:   Sun Oct 21 09:40:16 2018 +0200

    all: avoid useless comments and #lines
    
    Currently we emit useless code for places where we might issue user
    content, but there is none.  This commit avoids this.  Besides, some
    of the comments looked like implementation details ("Copy the first
    part of user declarations"), rather than made for the reader of the
    result ("First part of user prologue").
    
    On Bison's parse-gram.c we get:
    
        @@ -76,10 +76,6 @@
         #define yynerrs         gram_nerrs
    
        -/* Copy the first part of user declarations.  */
        -
        -#line 82 "src/parse-gram.c" /* yacc.c:339  */
        -
    
    * data/bison.m4 (b4_define_user_code): Accept a comment to document
    the section.
    Do not emit any code if the content is empty.
    Adjust callers to not emit the comment.
    Do not
    * data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java, data/yacc.c:
    Adjust.

diff --git a/data/bison.m4 b/data/bison.m4
index cb777d07..f727a04d 100644
--- a/data/bison.m4
+++ b/data/bison.m4
@@ -613,13 +613,15 @@ m4_define([b4_user_code],
 b4_syncline(address@hidden@], address@hidden@])])
 
 
-# b4_define_user_code(MACRO)
-# --------------------------
-# From b4_MACRO, build b4_user_MACRO that includes the synclines.
+# b4_define_user_code(MACRO, COMMENT)
+# -----------------------------------
+# From b4_MACRO, if defined, build b4_user_MACRO that includes the synclines.
 m4_define([b4_define_user_code],
 [m4_define([b4_user_$1],
-[b4_user_code([b4_$1])])])
-
+           [m4_ifdef([b4_$1],
+                     [m4_ifval([$2],
+                               [b4_comment([$2])
+])b4_user_code([b4_$1])])])])
 
 # b4_user_actions
 # b4_user_initial_action
@@ -629,9 +631,9 @@ m4_define([b4_define_user_code],
 # ----------------------
 # Macros that issue user code, ending with synclines.
 b4_define_user_code([actions])
-b4_define_user_code([initial_action])
-b4_define_user_code([post_prologue])
-b4_define_user_code([pre_prologue])
+b4_define_user_code([initial_action], [User initialization code.])
+b4_define_user_code([post_prologue], [Second part of user prologue.])
+b4_define_user_code([pre_prologue], [First part of user prologue.])
 b4_define_user_code([union_members])
 
 
@@ -1056,8 +1058,6 @@ b4_check_user_names_wrap([[code]], [[qualifier]])
 ## ---------------- ##
 
 # m4_define_default([b4_lex_param], [])   dnl breaks other skeletons
-m4_define_default([b4_pre_prologue], [])
-m4_define_default([b4_post_prologue], [])
 m4_define_default([b4_epilogue], [])
 m4_define_default([b4_parse_param], [])
 
diff --git a/data/glr.c b/data/glr.c
index 8247af5b..6da6d45f 100644
--- a/data/glr.c
+++ b/data/glr.c
@@ -236,7 +236,6 @@ b4_copyright([Skeleton implementation for Bison GLR parsers 
in C],
 #define yynerrs ]b4_prefix[nerrs]b4_locations_if([[
 #define yylloc  ]b4_prefix[lloc]])]))[
 
-/* First part of user declarations.  */
 ]b4_user_pre_prologue[
 
 ]b4_null_define[
@@ -259,9 +258,8 @@ b4_copyright([Skeleton implementation for Bison GLR parsers 
in C],
 static YYSTYPE yyval_default;]b4_locations_if([[
 static YYLTYPE yyloc_default][]b4_yyloc_default;])[
 
-/* Copy the second part of user declarations.  */
-]b4_user_post_prologue
-b4_percent_code_get[]dnl
+]b4_user_post_prologue[
+]b4_percent_code_get[]dnl
 
 [#include <stdio.h>
 #include <stdlib.h>
@@ -820,7 +818,7 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, 
yyGLRStackItem* yyvsp,
 ]])[
   switch (yyn)
     {
-      ]b4_user_actions[
+]b4_user_actions[
       default: break;
     }
 
@@ -2266,7 +2264,6 @@ yyrecoverSyntaxError (yyGLRStack* 
yystackp]b4_user_formals[)
   yylloc = yyloc_default;])[
 ]m4_ifdef([b4_initial_action], [
 b4_dollar_pushdef([yylval], [], [yylloc])dnl
-  /* User initialization code.  */
   b4_user_initial_action
 b4_dollar_popdef])[]dnl
 [
diff --git a/data/glr.cc b/data/glr.cc
index f6632c9b..b6139da7 100644
--- a/data/glr.cc
+++ b/data/glr.cc
@@ -44,7 +44,7 @@
 #   filename member).
 
 # We require a pure interface.
-m4_define([b4_pure_flag],      [1])
+m4_define([b4_pure_flag], [1])
 
 m4_include(b4_pkgdatadir/[c++.m4])
 b4_bison_locations_if([m4_include(b4_pkgdatadir/[location.cc])])
diff --git a/data/lalr1.cc b/data/lalr1.cc
index 6633cbd2..6b6d1584 100644
--- a/data/lalr1.cc
+++ b/data/lalr1.cc
@@ -418,13 +418,11 @@ m4_if(b4_prefix, [yy], [],
 // Take the name prefix into account.
 [#]define yylex   b4_prefix[]lex])[
 
-// First part of user declarations.
 ]b4_user_pre_prologue[
 
 ]b4_defines_if([[#include "@basename(]b4_spec_defines_file[@)"]],
                [b4_shared_declarations([cc])])[
 
-// User implementation prologue.
 ]b4_user_post_prologue[
 ]b4_percent_code_get[
 
@@ -768,7 +766,6 @@ m4_if(b4_prefix, [yy], [],
 
 ]m4_ifdef([b4_initial_action], [
 b4_dollar_pushdef([yyla.value], [], [yyla.location])dnl
-    // User initialization code.
     b4_user_initial_action
 b4_dollar_popdef])[]dnl
 
diff --git a/data/lalr1.java b/data/lalr1.java
index 86798dc0..d270850b 100644
--- a/data/lalr1.java
+++ b/data/lalr1.java
@@ -87,10 +87,10 @@ b4_copyright([Skeleton implementation for Bison LALR(1) 
parsers in Java],
              [2007-2015, 2018])
 
 b4_percent_define_ifdef([package], [package b4_percent_define_get([package]);
-])[/* First part of user declarations.  */
-]b4_user_pre_prologue
-b4_user_post_prologue
-b4_percent_code_get([[imports]])
+])[
+]b4_user_pre_prologue[
+]b4_user_post_prologue[
+]b4_percent_code_get([[imports]])
 [/**
  * A Bison parser, automatically generated from 
<tt>]m4_bpatsubst(b4_file_name, [^"\(.*\)"$], [\1])[</tt>.
  *
@@ -586,7 +586,6 @@ b4_define_state])[
     yystack.push (yystate, yylval ]b4_locations_if([, yylloc])[);
 ]m4_ifdef([b4_initial_action], [
 b4_dollar_pushdef([yylval], [], [yylloc])dnl
-    /* User initialization code.  */
     b4_user_initial_action
 b4_dollar_popdef[]dnl
 ])[
@@ -597,7 +596,6 @@ b4_dollar_popdef[]dnl
         push_parse_initialize ();
 ]m4_ifdef([b4_initial_action], [
 b4_dollar_pushdef([yylval], [], [yylloc])dnl
-    /* User initialization code.  */
     b4_user_initial_action
 b4_dollar_popdef[]dnl
 ])[
diff --git a/data/yacc.c b/data/yacc.c
index 34d719b0..880379ba 100644
--- a/data/yacc.c
+++ b/data/yacc.c
@@ -335,9 +335,7 @@ m4_if(b4_api_prefix, [yy], [],
 #define yychar          ]b4_prefix[char]b4_locations_if([[
 #define yylloc          ]b4_prefix[lloc]])]))[
 
-/* Copy the first part of user declarations.  */
 ]b4_user_pre_prologue[
-
 ]b4_null_define[
 
 /* Enabling verbose error messages.  */
@@ -354,9 +352,8 @@ m4_if(b4_api_prefix, [yy], [],
 ]])dnl
 b4_shared_declarations[
 
-/* Copy the second part of user declarations.  */
-]b4_user_post_prologue
-b4_percent_code_get[]dnl
+]b4_user_post_prologue[
+]b4_percent_code_get[]dnl
 
 [#ifdef short
 # undef short
@@ -1433,7 +1430,6 @@ b4_function_define([[yyparse]], [[int]], b4_parse_param)[
 ]m4_ifdef([b4_initial_action], [
 b4_dollar_pushdef([m4_define([b4_dollar_dollar_used])yylval], [],
                   [b4_push_if([b4_pure_if([*])yypushed_loc], [yylloc])])dnl
-/* User initialization code.  */
 b4_user_initial_action
 b4_dollar_popdef[]dnl
 m4_ifdef([b4_dollar_dollar_used],[[  yyvsp[0] = yylval;
@@ -1653,7 +1649,7 @@ yyreduce:
     int yychar_backup = yychar;
     switch (yyn)
       {
-        ]b4_user_actions[
+]b4_user_actions[
         default: break;
       }
     if (yychar_backup != yychar)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]