[Top][All Lists]
[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
- [PATCH 0/8] {master} C++: make %locations and %defines optional, Akim Demaille, 2012/07/31
- [PATCH 2/8] glr.cc, lalr1.cc: define b4_shared_declarations,
Akim Demaille <=
- [PATCH 5/8] lalr1.cc: location.hh and position.hh are not generated without %defines, Akim Demaille, 2012/07/31
- [PATCH 3/8] skeletons: style changes, Akim Demaille, 2012/07/31
- [PATCH 8/8] tests: comment changes., Akim Demaille, 2012/07/31
- [PATCH 6/8] lalr1.cc: do not create stack.hh without %defines, Akim Demaille, 2012/07/31
- [PATCH 1/8] glr.cc: no longer require location support., Akim Demaille, 2012/07/31
- [PATCH 4/8] lalr1.cc: no longer require %defines., Akim Demaille, 2012/07/31
- [PATCH 7/8] tests: really check the set of generated files, Akim Demaille, 2012/07/31