* data/bison.m4 (b4_bison_locations_if): New.
* data/glr.cc, data/lalr1.cc: Use it.
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])
# ------------------------------------------------------
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]])])
]])[
# 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.
#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[
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])])
# 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[
]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])[