# Expansion of $<TYPE>NUM, where the current rule has RULE-LENGTH
# symbols on RHS.
m4_define([b4_rhs_value],
-[semantic_stack_@<:@m4_eval([$1 - $2])@:>@m4_ifval([$3], [.$3])])
+[semantic_stack_@{m4_eval([$1 - $2])@}m4_ifval([$3], [.$3])])
m4_define_default([b4_location_type], [Location])
# Expansion of @NUM, where the current rule has RULE-LENGTH symbols
# on RHS.
m4_define([b4_rhs_location],
-[location_stack_@<:@m4_eval([$1 - $2])@:>@])
+[location_stack_@{m4_eval([$1 - $2])@}])
-m4_define_default([b4_input_suffix], [.y])
-
-m4_define_default([b4_output_parser_suffix],
-[m4_translit(b4_input_suffix, [yY], [cC])])
-
-m4_define_default([b4_output_parser_name],
-[b4_output_prefix[]b4_output_infix[]b4_output_parser_suffix[]])
-
-
-m4_define_default([b4_output_header_suffix],
-[m4_translit(b4_input_suffix, [yY], [hH])])
-
-m4_define_default([b4_output_header_name],
-[b4_output_prefix[]b4_output_infix[]b4_output_header_suffix[]])
-
-m4_define_default([b4_header_guard],
- [m4_bpatsubst(m4_toupper([BISON_]b4_output_header_name),
- [[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]], [_])])
-
m4_define([b4_inherit],
[m4_ifdef([b4_root],
[: public b4_root
[])])
+# We do want M4 expansion after # for CPP macros.
+m4_changecom()
m4_divert(0)dnl
-#output "b4_output_header_name"
+@output @output_header_name@
b4_copyright([C++ Skeleton parser for LALR(1) parsing with Bison],
[2002])
-#ifndef b4_header_guard
-# define b4_header_guard
+#ifndef YYLSP_NEEDED
+# define YYLSP_NEEDED
#include "stack.hh"
#include "location.hh"
b4_pre_prologue
/* Line __line__ of __file__. */
-#line __oline__ "__ofile__"
+b4_syncline([@oline@], [@ofile@])
/* Enabling traces. */
#ifndef YYDEBUG
#ifndef YYSTYPE
m4_ifdef([b4_stype],
-[#line b4_stype_line "b4_filename"
+[b4_syncline([b4_stype_line], [b4_filename])
typedef union b4_stype yystype;
/* Line __line__ of __file__. */
-#line __oline__ "__ofile__"],
+b4_syncline([@oline@], [@ofile@])],
[typedef int yystype;])
# define YYSTYPE yystype
#endif
b4_post_prologue
/* Line __line__ of __file__. */
-#line __oline__ "__ofile__"
+b4_syncline([@oline@], [@ofile@])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
Current.last_line = Rhs[[N]].last_line; \
SemanticType value;
LocationType location;
- /* @$ and $$. */
+ /* @@$ and $$. */
SemanticType yyval;
LocationType yyloc;
};
}
-#endif /* not b4_header_guard */
+#endif /* ! defined YYLSP_NEEDED */
dnl
-#output "b4_output_prefix[]b4_output_infix[].cc"
+@output @output_parser_name@
b4_copyright([C++ Skeleton parser for LALR(1) parsing with Bison],
[2002])
-#include "b4_output_header_name"
+#include @output_header_name@
/* Enable debugging if requested. */
#if YYDEBUG
}
/* Line __line__ of __file__. */
-#line __oline__ "__ofile__"
+b4_syncline([@oline@], [@ofile@])
state_stack_.pop (len_);
semantic_stack_.pop (len_);
n_ = pact_[[state_]];
if (pact_ninf_ < n_ && n_ < last_)
{
- message = "parse error, unexpected ";
+ message = "syntax error, unexpected ";
message += name_[[ilooka_]];
{
int count = 0;
}
else
#endif
- message = "parse error";
+ message = "syntax error";
error_ ();
}
goto yyerrlab1;
b4_epilogue
dnl
-#output "stack.hh"
+@output stack.hh
b4_copyright([2002])
#ifndef BISON_STACK_HH
#endif // not BISON_STACK_HH
dnl
-#output "location.hh"
+@output location.hh
b4_copyright([2002])
#ifndef BISON_LOCATION_HH