bison-patches
[Top][All Lists]
Advanced

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

[PATCH] Factor b4_assert_if, b4_lex_symbol_if, and b4_variant_if.


From: Akim Demaille
Subject: [PATCH] Factor b4_assert_if, b4_lex_symbol_if, and b4_variant_if.
Date: Mon, 02 Mar 2009 15:24:25 -0000

        * data/bison.m4 (b4_percent_define_if_define): New.
        * data/c++.m4 (b4_variant_if): Move to...
        * data/bison.m4: Here, using b4_percent_define_if_define.
        * data/lalr1.cc (b4_assert_if, b4_lex_symbol_if): Move to...
        * data/bison.m4: Here, using b4_percent_define_if_define.
---
 ChangeLog     |    9 +++++++++
 data/bison.m4 |   29 +++++++++++++++++++++++++++--
 data/c++.m4   |   10 ++--------
 data/lalr1.cc |   12 ------------
 4 files changed, 38 insertions(+), 22 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 2566a19..4a0c7eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2009-03-02  Akim Demaille  <address@hidden>
 
+       Factor b4_assert_if, b4_lex_symbol_if, and b4_variant_if.
+       * data/bison.m4 (b4_percent_define_if_define): New.
+       * data/c++.m4 (b4_variant_if): Move to...
+       * data/bison.m4: Here, using b4_percent_define_if_define.
+       * data/lalr1.cc (b4_assert_if, b4_lex_symbol_if): Move to...
+       * data/bison.m4: Here, using b4_percent_define_if_define.
+
+2009-03-02  Akim Demaille  <address@hidden>
+
        Dub symbol_type_base as a public type.
        * data/c++.m4 (b4_public_types_declare): Now define
        symbol_type_base and symbol_type.
diff --git a/data/bison.m4 b/data/bison.m4
index 5930ca7..6702003 100644
--- a/data/bison.m4
+++ b/data/bison.m4
@@ -1,8 +1,8 @@
                                                             -*- Autoconf -*-
 
 # Language-independent M4 Macros for Bison.
-# Copyright (C) 2002, 2004, 2005, 2006, 2007, 2008 Free Software Foundation,
-# Inc.
+# Copyright (C) 2002, 2004, 2005, 2006, 2007, 2008, 2009
+# Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -618,6 +618,31 @@ m4_define([b4_percent_define_ifdef],
          [m4_define([b4_percent_define_bison_variables(]$1[)])$2],
          [$3])])
 
+
+# b4_percent_define_if_define(VARIABLE)
+# -------------------------------------
+# Define b4_VARIABLE_if that executes its $1 or $2 depending whether VARIABLE
+# was %defined.
+m4_define([b4_percent_define_if_define_],
+[m4_define([b4_$1_if], [b4_percent_define_ifdef([$1], [$2], [$3])])])
+m4_define([b4_percent_define_if_define],
+[b4_percent_define_if_define_([$1], $[1], $[2])])
+
+## --------- ##
+## Options.  ##
+## --------- ##
+
+
+# b4_assert_if([IF-ASSERTIONS-ARE-USED], [IF-NOT])
+# b4_lex_symbol_if([IF-YYLEX-RETURNS-A-COMPLETE-SYMBOL], [IF-NOT])
+# b4_variant_if([IF-VARIANT-ARE-USED], [IF-NOT])
+# ----------------------------------------------
+b4_percent_define_if_define([assert])
+b4_percent_define_if_define([lex_symbol])
+b4_percent_define_if_define([variant])
+
+
+
 # b4_percent_define_flag_if(VARIABLE, IF-TRUE, [IF-FALSE])
 # --------------------------------------------------------
 # Mimic muscle_percent_define_flag_if in ../src/muscle_tab.h exactly.  That is,
diff --git a/data/c++.m4 b/data/c++.m4
index 7048875..7465d76 100644
--- a/data/c++.m4
+++ b/data/c++.m4
@@ -2,8 +2,8 @@
 
 # C++ skeleton for Bison
 
-# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software
-# Foundation, Inc.
+# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+# Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -284,12 +284,6 @@ m4_define([b4_public_types_define],
 ]])])
 
 
-# b4_variant_if([IF-VARIANT-ARE-USED], [IF-NOT])
-# ----------------------------------------------
-m4_define([b4_variant_if],
-[b4_percent_define_ifdef([[variant]], [$1], [$2])])
-
-
 # b4_lhs_value([TYPE])
 # --------------------
 # Expansion of $<TYPE>$.
diff --git a/data/lalr1.cc b/data/lalr1.cc
index 13a7e99..a23cc4f 100644
--- a/data/lalr1.cc
+++ b/data/lalr1.cc
@@ -47,18 +47,6 @@ m4_define([b4_integral_parser_table_define],
 m4_copy([b4_symbol_value], [b4_symbol_value_template])
 
 
-# b4_lex_symbol_if([IF-YYLEX-RETURNS-A-COMPLETE-SYMBOL], [IF-NOT])
-# ----------------------------------------------------------------
-m4_define([b4_lex_symbol_if],
-[b4_percent_define_ifdef([[lex_symbol]], [$1], [$2])])
-
-
-# b4_assert_if([IF-ASSERTIONS-ARE-USED], [IF-NOT])
-# ------------------------------------------------
-m4_define([b4_assert_if],
-[b4_percent_define_ifdef([[assert]], [$1], [$2])])
-
-
 # b4_lhs_value([TYPE])
 # --------------------
 # Expansion of $<TYPE>$.
-- 
1.6.2.rc0.35.g1b53





reply via email to

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