From d27c5e6534e7ee2fc402ae0d0b59d6316a9da2ad Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Mon, 30 Jul 2012 15:30:31 +0200 Subject: [PATCH] glr.cc, lalr1.cc: define b4_shared_declarations * 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 64577425..4f4674f7 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 cbe68eaa..e1826da9 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) -@output(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 #include @@ -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) +@output(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 0a190e9b..f71be3f2 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 -@output(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 ])[ # include # include @@ -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 +@output(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++]) -- 2.45.2