bison-patches
[Top][All Lists]
Advanced

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

[PATCH 3/4] skeletons: simplify the handling of default api.location.typ


From: Akim Demaille
Subject: [PATCH 3/4] skeletons: simplify the handling of default api.location.type
Date: Sun, 16 Dec 2012 15:19:40 +0100

* data/bison.m4 (b4_bison_locations_if): New.
* data/glr.cc, data/lalr1.cc: Use it.
---
 data/bison.m4 |  7 +++++++
 data/glr.cc   | 16 ++++++----------
 data/lalr1.cc | 13 +++++--------
 3 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/data/bison.m4 b/data/bison.m4
index bd8af09..6f06266 100644
--- a/data/bison.m4
+++ b/data/bison.m4
@@ -829,6 +829,13 @@ b4_percent_define_if_define([parse.assert])
 b4_percent_define_if_define([parse.trace])
 b4_percent_define_if_define([variant])
 
+# b4_bison_locations_if([IF-TRUE])
+# --------------------------------
+# Expand IF-TRUE if using locations, and using the default location
+# type.
+m4_define([b4_bison_locations_if],
+[b4_locations_if([b4_percent_define_ifdef([[api.location.type]], [], [$1])])])
+
 
 # b4_error_verbose_if([IF-ERRORS-ARE-VERBOSE], [IF-NOT])
 # ------------------------------------------------------
diff --git a/data/glr.cc b/data/glr.cc
index 3cecfd8..9879c30 100644
--- a/data/glr.cc
+++ b/data/glr.cc
@@ -47,8 +47,7 @@
 m4_define([b4_pure_flag],      [1])
 
 m4_include(b4_pkgdatadir/[c++.m4])
-b4_locations_if([b4_percent_define_ifdef([[api.location.type]], [],
-                [m4_include(b4_pkgdatadir/[location.cc])])])
+b4_bison_locations_if([m4_include(b4_pkgdatadir/[location.cc])])
 
 m4_define([b4_parser_class_name],
           [b4_percent_define_get([[parser_class_name]])])
@@ -84,10 +83,9 @@ b4_locations_if([,
 ]])[
 
 # Hijack the initial action to initialize the locations.
-]b4_locations_if([b4_percent_define_ifdef([[api.location.type]], [],
-[m4_define([b4_initial_action],
+]b4_bison_locations_if([m4_define([b4_initial_action],
 [yylloc.initialize ();]m4_ifdef([b4_initial_action], [
-m4_defn([b4_initial_action])]))])])[
+m4_defn([b4_initial_action])]))])[
 
 # Hijack the post prologue to insert early definition of YYLLOC_DEFAULT
 # and declaration of yyerror.
@@ -224,16 +222,14 @@ b4_percent_code_get([[requires]])[
 #include <stdexcept>
 #include <string>
 #include <iostream>]b4_defines_if([
-b4_locations_if([b4_percent_define_ifdef([[api.location.type]], [],
-                                         [[#include "location.hh"]])])])[
+b4_bison_locations_if([[#include "location.hh"]])])[
 
 ]b4_YYDEBUG_define[
 
 ]b4_namespace_open[
 ]b4_defines_if([],
-[b4_locations_if([b4_percent_define_ifdef([[api.location.type]], [],
-                                          [b4_position_define
-b4_location_define])])])[
+[b4_bison_locations_if([b4_position_define
+b4_location_define])])[
 
   /// A Bison parser.
   class ]b4_parser_class_name[
diff --git a/data/lalr1.cc b/data/lalr1.cc
index fa3a48d..37522aa 100644
--- a/data/lalr1.cc
+++ b/data/lalr1.cc
@@ -120,10 +120,9 @@ m4_pushdef([b4_copyright_years],
 m4_define([b4_parser_class_name],
           [b4_percent_define_get([[parser_class_name]])])
 
-b4_locations_if([b4_percent_define_ifdef([[api.location.type]], [],
-  [# Backward compatibility.
+b4_bison_locations_if([# Backward compatibility.
    m4_define([b4_location_constructors])
-   m4_include(b4_pkgdatadir/[location.cc])])])
+   m4_include(b4_pkgdatadir/[location.cc])])
 m4_include(b4_pkgdatadir/[stack.hh])
 b4_variant_if([m4_include(b4_pkgdatadir/[variant.hh])])
 
@@ -139,8 +138,7 @@ m4_define([b4_shared_declarations],
 # include <stdexcept>
 # include <string>]b4_defines_if([[
 # include "stack.hh"
-]b4_locations_if([b4_percent_define_ifdef([[api.location.type]], [],
-                                          [[# include "location.hh"]])])])[
+]b4_bison_locations_if([[# include "location.hh"]])])[
 
 ]b4_YYDEBUG_define[
 
@@ -148,9 +146,8 @@ m4_define([b4_shared_declarations],
 
 ]b4_defines_if([],
 [b4_stack_define
-b4_locations_if([b4_percent_define_ifdef([[api.location.type]], [],
-                                         [b4_position_define
-b4_location_define])])])[
+b4_bison_locations_if([b4_position_define
+b4_location_define])])[
 
 ]b4_variant_if([b4_variant_define])[
 
-- 
1.8.0.2




reply via email to

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