# user must initialize the first positions (in particular the
# filename member).
-
# We require a pure interface using locations.
-m4_define([b4_location_flag], [1])
-m4_define([b4_pure], [1])
+m4_define([b4_locations_flag], [1])
+m4_define([b4_pure_flag], [1])
+
+# The header is mandatory.
+b4_defines_if([],
+ [m4_fatal(b4_skeleton[: using %defines is mandatory])])
m4_include(b4_pkgdatadir/[c++.m4])
m4_include(b4_pkgdatadir/[location.cc])
b4_parse_param)[
{
]b4_parse_param_use[]dnl
-[ yyparser.yy_symbol_print_ (yytype, yyvaluep]b4_location_if([, yylocationp])[);
+[ yyparser.yy_symbol_print_ (yytype, yyvaluep]b4_locations_if([, yylocationp])[);
}
]])
# Declare yyerror.
m4_append([b4_post_prologue],
-[/* Line __line__ of glr.cc. */
-b4_syncline([@oline@], [@ofile@])
+[b4_syncline([@oline@], [@ofile@])
b4_c_ansi_function_decl([yyerror],
[static void],
# Define yyerror.
m4_append([b4_epilogue],
-[/* Line __line__ of glr.cc. */
-b4_syncline([@oline@], [@ofile@])[
+[b4_syncline([@oline@], [@ofile@])[
/*------------------.
| Report an error. |
`------------------*/
m4_include(b4_pkgdatadir/[glr.c])
m4_popdef([b4_parse_param])
-
@output @output_header_name@
b4_copyright([Skeleton interface for Bison GLR parsers in C++],
- [2002, 2003, 2004, 2005, 2006])
-[
-/* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
+ [2002, 2003, 2004, 2005, 2006])[
/* C++ GLR parser skeleton written by Akim Demaille. */
class location;
}
-/* Copy the first part of user declarations. */
-]b4_pre_prologue[
-
-]/* Line __line__ of glr.cc. */
-b4_syncline([@oline@], [@ofile@])[
+]m4_ifdef([b4_start_header],
+[[/* Copy the %start-header blocks. */
+]b4_user_start_header])[
#include "location.hh"
/* Enabling traces. */
#ifndef YYDEBUG
-# define YYDEBUG ]b4_debug[
+# define YYDEBUG ]b4_debug_flag[
#endif
/* Enabling verbose error messages. */
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
-# define YYERROR_VERBOSE ]b4_error_verbose[
+# define YYERROR_VERBOSE ]b4_error_verbose_flag[
#endif
/* Enabling the token table. */
#ifndef YYSTYPE
]m4_ifdef([b4_stype],
[ union semantic_type
-b4_stype
-/* Line __line__ of lalr1.cc. */
-b4_syncline([@oline@], [@ofile@])
+b4_user_stype
;],
-[ typedef int semantic_type;])[
+[m4_if(b4_tag_seen_flag, 0,
+[[ typedef int semantic_type;]],
+[[ typedef YYSTYPE semantic_type;]])])[
#else
typedef YYSTYPE semantic_type;
#endif
}
-#endif /* ! defined PARSER_HEADER_H */]
+]m4_ifdef([b4_end_header],
+[[/* Copy the %end-header blocks. */
+]b4_end_header])[]dnl
+
+[#endif /* ! defined PARSER_HEADER_H */]