bison-patches
[Top][All Lists]
Advanced

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

[PATCH 2/8] glr.cc, lalr1.cc: define b4_shared_declarations


From: Akim Demaille
Subject: [PATCH 2/8] glr.cc, lalr1.cc: define b4_shared_declarations
Date: Tue, 31 Jul 2012 11:17:25 +0200

* data/glr.cc, data/lalr1.cc: here.
The name is no longer right, but at least it is consistent with
the other skeletons.
---
 TODO          |  4 ++++
 data/glr.cc   | 26 +++++++++++++++++---------
 data/lalr1.cc | 38 +++++++++++++++++++++++---------------
 3 files changed, 44 insertions(+), 24 deletions(-)

diff --git a/TODO b/TODO
index 6457742..4f4674f 100644
--- a/TODO
+++ b/TODO
@@ -3,6 +3,10 @@
 Avoid variables for format strings, as then GCC cannot check them.
 show_sub_messages should call show_sub_message.
 
+** m4 names
+b4_shared_declarations is no longer what it is.  Make it
+b4_parser_declaration for instance.
+
 ** Variable names.
 What should we name `variant' and `lex_symbol'?
 
diff --git a/data/glr.cc b/data/glr.cc
index cbe68ea..e1826da 100644
--- a/data/glr.cc
+++ b/data/glr.cc
@@ -223,16 +223,13 @@ m4_defn([b4_parse_param]))],
 m4_include(b4_pkgdatadir/[glr.c])
 m4_popdef([b4_parse_param])
 
-m4_divert_push(0)
address@hidden(b4_spec_defines_file@)@
-b4_copyright([Skeleton interface for Bison GLR parsers in C++],
-             [2002-2012])[
 
-/* C++ GLR parser skeleton written by Akim Demaille.  */
-
-]b4_cpp_guard_open([b4_spec_defines_file])[
-
-]b4_percent_code_get([[requires]])[
+# b4_shared_declarations
+# ----------------------
+# Declaration that might either go into the header (if --defines)
+# or open coded in the parser body.
+m4_define([b4_shared_declarations],
+[b4_percent_code_get([[requires]])[
 
 #include <stdexcept>
 #include <string>
@@ -312,5 +309,16 @@ b4_percent_define_flag_if([[global_tokens_and_yystype]],
 
 ]b4_namespace_close[
 ]b4_percent_code_get([[provides]])[
+]])
+
+m4_divert_push(0)
address@hidden(b4_spec_defines_file@)@
+b4_copyright([Skeleton interface for Bison GLR parsers in C++],
+             [2002-2012])[
+
+/* C++ GLR parser skeleton written by Akim Demaille.  */
+
+]b4_cpp_guard_open([b4_spec_defines_file])[
+]b4_shared_declarations[
 ]b4_cpp_guard_close([b4_spec_defines_file])[
 ]m4_divert_pop(0)
diff --git a/data/lalr1.cc b/data/lalr1.cc
index 0a190e9..f71be3f 100644
--- a/data/lalr1.cc
+++ b/data/lalr1.cc
@@ -131,21 +131,12 @@ 
b4_locations_if([b4_percent_define_ifdef([[location_type]], [],
 m4_include(b4_pkgdatadir/[stack.hh])
 b4_variant_if([m4_include(b4_pkgdatadir/[variant.hh])])
 
-# We do want M4 expansion after # for CPP macros.
-m4_changecom()
-m4_divert_push(0)dnl
address@hidden(b4_spec_defines_file@)@
-b4_copyright([Skeleton interface for Bison LALR(1) parsers in C++])
-[
-/**
- ** \file ]b4_spec_defines_file[
- ** Define the ]b4_namespace_ref[::parser class.
- */
-
-/* C++ LALR(1) parser skeleton written by Akim Demaille.  */
-
-]b4_cpp_guard_open([b4_spec_defines_file])[
-]b4_percent_code_get([[requires]])[
+# b4_shared_declarations
+# ----------------------
+# Declaration that might either go into the header (if --defines)
+# or open coded in the parser body.
+m4_define([b4_shared_declarations],
+[b4_percent_code_get([[requires]])[
 ]b4_parse_assert_if([# include <cassert>])[
 # include <stdexcept>
 # include <string>
@@ -341,6 +332,23 @@ b4_public_types_define])[
 #endif
 ])[
 ]b4_percent_code_get([[provides]])[
+]])
+
+# We do want M4 expansion after # for CPP macros.
+m4_changecom()
+m4_divert_push(0)dnl
address@hidden(b4_spec_defines_file@)@
+b4_copyright([Skeleton interface for Bison LALR(1) parsers in C++])
+[
+/**
+ ** \file ]b4_spec_defines_file[
+ ** Define the ]b4_namespace_ref[::parser class.
+ */
+
+/* C++ LALR(1) parser skeleton written by Akim Demaille.  */
+
+]b4_cpp_guard_open([b4_spec_defines_file])[
+]b4_shared_declarations[
 ]b4_cpp_guard_close([b4_spec_defines_file])
 @output(b4_parser_file_name@)@
 b4_copyright([Skeleton implementation for Bison LALR(1) parsers in C++])
-- 
1.7.11.3




reply via email to

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