bison-patches
[Top][All Lists]
Advanced

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

[PATCH] Share b4_yytranslate_define.


From: Akim Demaille
Subject: [PATCH] Share b4_yytranslate_define.
Date: Mon, 02 Mar 2009 15:37:31 -0000

        * data/lalr1.cc (b4_yytranslate_define): Move to...
        * data/c++.m4: here.
---
 ChangeLog     |    6 ++++++
 data/c++.m4   |   28 ++++++++++++++++++++++++++++
 data/lalr1.cc |   29 -----------------------------
 3 files changed, 34 insertions(+), 29 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 6f8df1a..f858ada 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2009-03-02  Akim Demaille  <address@hidden>
 
+       Share b4_yytranslate_define.
+       * data/lalr1.cc (b4_yytranslate_define): Move to...
+       * data/c++.m4: here.
+
+2009-03-02  Akim Demaille  <address@hidden>
+
        Use locations in the variant example.
        Yes, this obfuscates the point of this example, variants only.  But 
glr.cc
        cannot work (yet?) without locations.  This change makes it easier to 
use
diff --git a/data/c++.m4 b/data/c++.m4
index 9ec967a..c43a4df 100644
--- a/data/c++.m4
+++ b/data/c++.m4
@@ -294,6 +294,34 @@ m4_define([b4_symbol_constructor_declare], [])
 m4_define([b4_symbol_constructor_define], [])
 
 
+# b4_yytranslate_define
+# ---------------------
+# Define yytranslate_.  Sometimes used in the header file,
+# sometimes in the cc file.
+m4_define([b4_yytranslate_define],
+[[  // Symbol number corresponding to token number t.
+  ]b4_parser_class_name[::token_number_type
+  ]b4_parser_class_name[::yytranslate_ (]b4_lex_symbol_if([token_type],
+                                                          [int])[ t)
+  {
+    static
+    const token_number_type
+    translate_table[] =
+    {
+]b4_translate[
+    };
+    const unsigned int user_token_number_max_ = ]b4_user_token_number_max[;
+    const token_number_type undef_token_ = ]b4_undef_token_number[;
+
+    if (static_cast<int>(t) <= yyeof_)
+      return yyeof_;
+    else if (static_cast<unsigned int> (t) <= user_token_number_max_)
+      return translate_table[t];
+    else
+      return undef_token_;
+  }
+]])
+
 
 # b4_lhs_value([TYPE])
 # --------------------
diff --git a/data/lalr1.cc b/data/lalr1.cc
index 642fd4e..81c2d20 100644
--- a/data/lalr1.cc
+++ b/data/lalr1.cc
@@ -115,35 +115,6 @@ m4_popdef([b4_dollar_dollar])dnl
 ])])
 
 
-# b4_yytranslate_define
-# ---------------------
-# Define yytranslate_.  Sometimes we want it in the header file,
-# sometimes the cc file suffices.
-m4_define([b4_yytranslate_define],
-[[  // Symbol number corresponding to token number t.
-  ]b4_parser_class_name[::token_number_type
-  ]b4_parser_class_name[::yytranslate_ (]b4_lex_symbol_if([token_type],
-                                                          [int])[ t)
-  {
-    static
-    const token_number_type
-    translate_table[] =
-    {
-]b4_translate[
-    };
-    const unsigned int user_token_number_max_ = ]b4_user_token_number_max[;
-    const token_number_type undef_token_ = ]b4_undef_token_number[;
-
-    if (static_cast<int>(t) <= yyeof_)
-      return yyeof_;
-    else if (static_cast<unsigned int> (t) <= user_token_number_max_)
-      return translate_table[t];
-    else
-      return undef_token_;
-  }
-]])
-
-
 m4_pushdef([b4_copyright_years],
            [2002, 2003, 2004, 2005, 2006, 2007, 2008])
 
-- 
1.6.2.rc0.35.g1b53





reply via email to

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