# --------------------------------------------------------------
# Declare "parser::yy<TABLE-NAME>_" which contents is CONTENT.
m4_define([b4_integral_parser_table_declare],
-[m4_ifval([$3], [b4_c_comment([$3], [ ])
+[m4_ifval([$3], [b4_comment([$3], [ ])
])dnl
static const b4_int_type_for([$2]) yy$1_[[]];dnl
])
m4_define([b4_shared_declarations],
[b4_percent_code_get([[requires]])[
]b4_parse_assert_if([# include <cassert>])[
-# include <stdexcept>
-# include <string>
+# include <deque>
# include <iostream>
-
-]b4_YYDEBUG_define[
-
+# include <stdexcept>
+# include <string>]b4_defines_if([[
# include "stack.hh"
]b4_locations_if([b4_percent_define_ifdef([[location_type]], [],
- [b4_defines_if([[# include "location.hh"]])])])[
+ [[# include "location.hh"]])])])[
+
+]b4_YYDEBUG_define[
]b4_namespace_open[
-]b4_locations_if([b4_percent_define_ifdef([[location_type]], [],
- [b4_defines_if([], [b4_position_define
+]b4_defines_if([],
+[b4_stack_define
+b4_locations_if([b4_percent_define_ifdef([[location_type]], [],
+ [b4_position_define
b4_location_define])])])[
]b4_variant_if([b4_variant_define])[
inline stack_symbol_type ();
/// Constructor.
- inline stack_symbol_type (]b4_args([state_type s],
+ inline stack_symbol_type (]b4_join([state_type s],
[const semantic_type& v],
b4_locations_if([const location_type& l]))[);
{
}
- ]b4_parser_class_name[::stack_symbol_type::stack_symbol_type (]b4_args(
+ ]b4_parser_class_name[::stack_symbol_type::stack_symbol_type (]b4_join(
[state_type s],
[const semantic_type& v],
b4_locations_if([const location_type& l]))[)
if (m)
YY_SYMBOL_PRINT (m, sym);
]b4_variant_if(
-[[ yystack_.push (stack_symbol_type (]b4_args(
+[[ yystack_.push (stack_symbol_type (]b4_join(
[s],
[semantic_type()],
b4_locations_if([sym.location]))[));
]b4_symbol_variant([[yystos_[s]]], [[yystack_[0].value]],
[build], [sym.value])],
-[[ yystack_.push (stack_symbol_type (]b4_args(
+[[ yystack_.push (stack_symbol_type (]b4_join(
[s],
[sym.value],
b4_locations_if([sym.location]))[));]])[
if (m)
YY_SYMBOL_PRINT (m, s);
]b4_variant_if(
-[[ yystack_.push (stack_symbol_type (]b4_args(
+[[ yystack_.push (stack_symbol_type (]b4_join(
[s.state],
[semantic_type()],
b4_locations_if([s.location]))[));
{
YYCDEBUG << "Reading a token: ";
try
- {
+ {
]b4_lex_symbol_if(
-[ yyla = b4_c_function_call([yylex], [symbol_type],
+[ yyla = b4_function_call([yylex], [symbol_type],
m4_ifdef([b4_lex_param], b4_lex_param));],
-[ yyla.type = yytranslate_ (b4_c_function_call([yylex], [int],
+[ 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)));])[
- }
+ }
catch (const syntax_error& yyexc)
- {
- error (yyexc);
- goto yyerrlab1;
- }
+ {
+ error (yyexc);
+ goto yyerrlab1;
+ }
yyempty = false;
}
YY_SYMBOL_PRINT ("Next token is", yyla);
// Perform the reduction.
YY_REDUCE_PRINT (yyn);
try
- {
- switch (yyn)
{
+ switch (yyn)
+ {
]b4_user_actions[
- default:
- break;
+ default:
+ break;
+ }
}
- }
catch (const syntax_error& yyexc)
- {
- error (yyexc);
- YYERROR;
- }
+ {
+ error (yyexc);
+ YYERROR;
+ }
YY_SYMBOL_PRINT ("-> $$ =", yylhs);
]b4_variant_if([[
// Destroy the rhs symbols.
if (!yyerrstatus_)
{
++yynerrs_;
- error (]b4_args(b4_locations_if([yyla.location]),
+ error (]b4_join(b4_locations_if([yyla.location]),
[[yysyntax_error_ (yystack_[0].state,
yyempty ? yyempty_ : yyla.type)]])[);
}
void
]b4_parser_class_name[::error (const syntax_error& yyexc)
{
- error (]b4_args(b4_locations_if([yyexc.location]),
+ error (]b4_join(b4_locations_if([yyexc.location]),
[[yyexc.what()]])[);
}