[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH] Share b4_yytranslate_define.,
Akim Demaille <=