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_variant_if([b4_variant_includes])[
]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])[
]b4_percent_code_get([[provides]])[
]])
-# We do want M4 expansion after # for CPP macros.
-m4_changecom()
b4_defines_if(
-[m4_divert_push(0)dnl
-@output(b4_spec_defines_file@)@
+[b4_output_begin([b4_spec_defines_file])
b4_copyright([Skeleton interface for Bison LALR(1) parsers in C++])
[
/**
try
{
]b4_token_ctor_if(
-[ yyla = b4_function_call([yylex], [symbol_type],
- m4_ifdef([b4_lex_param], b4_lex_param));],
-[ yyla.type = yytranslate_ (b4_function_call([yylex], [int],
- [b4_api_PREFIX[STYPE*], [&yyla.value]][]dnl
+[ symbol_type yylookahead = b4_function_call([yylex], [symbol_type],
+ m4_ifdef([b4_lex_param], b4_lex_param));
+ yyla.move(yylookahead);],
+[ yyla.type = yytranslate_ (b4_function_call([yylex], [int],
+ [b4_api_PREFIX[STYPE*], [&yyla.value]][]dnl
b4_locations_if([, [[location*], [&yyla.location]]])dnl
m4_ifdef([b4_lex_param], [, ]b4_lex_param)));])[
}