X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/34376418e2406162a0a0be177cb4ce0794b42a51..945e396c8a4fcaa24f2445766a7098bf3c60f904:/data/glr.cc?ds=sidebyside diff --git a/data/glr.cc b/data/glr.cc index d07b5a48..d9364902 100644 --- a/data/glr.cc +++ b/data/glr.cc @@ -90,8 +90,7 @@ m4_define([b4_yy_symbol_print_generate], # 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], @@ -102,8 +101,7 @@ b4_c_ansi_function_decl([yyerror], # Define yyerror. m4_append([b4_epilogue], -[/* Line __line__ of glr.cc. */ -b4_syncline([@oline@], [@ofile@])[ +[b4_syncline([@oline@], [@ofile@])[ /*------------------. | Report an error. | `------------------*/ @@ -124,8 +122,12 @@ namespace ]b4_namespace[ ]dnl In this section, the parse param are the original parse_params. m4_pushdef([b4_parse_param], m4_defn([b4_parse_param_orig]))dnl [ /// Build a parser object. - ]b4_parser_class_name::b4_parser_class_name[ (]b4_parse_param_decl[) - : yycdebug_ (&std::cerr)]b4_parse_param_cons[ + ]b4_parser_class_name::b4_parser_class_name[ (]b4_parse_param_decl[)]m4_ifset([b4_parse_param], [ + :])[ +#if YYDEBUG + ]m4_ifset([b4_parse_param], [ ], [ :])[yydebug_ (false), + yycdebug_ (&std::cerr)]m4_ifset([b4_parse_param], [,])[ +#endif]b4_parse_param_cons[ { } @@ -187,16 +189,16 @@ m4_pushdef([b4_parse_param], m4_defn([b4_parse_param_orig]))dnl ]b4_parser_class_name[::debug_level_type ]b4_parser_class_name[::debug_level () const { - return ::yydebug; + return yydebug_; } void ]b4_parser_class_name[::set_debug_level (debug_level_type l) { - ::yydebug = l; + yydebug_ = l; } -#endif /* ! YYDEBUG */ +#endif ]m4_popdef([b4_parse_param])dnl [} // namespace ]b4_namespace[ @@ -214,8 +216,7 @@ m4_defn([b4_parse_param])))], m4_include(b4_pkgdatadir/[glr.c]) m4_popdef([b4_parse_param]) - -@output @output_header_name@ +@output b4_spec_defines_file b4_copyright([Skeleton interface for Bison GLR parsers in C++], [2002, 2003, 2004, 2005, 2006])[ @@ -224,6 +225,10 @@ b4_copyright([Skeleton interface for Bison GLR parsers in C++], #ifndef PARSER_HEADER_H # define PARSER_HEADER_H +]m4_ifdef([b4_requires], +[[/* Copy the %requires blocks. */ +]b4_user_requires])[ + #include #include @@ -236,12 +241,6 @@ namespace ]b4_namespace[ class location; } -/* Copy the first part of user declarations. */ -]b4_pre_prologue[ - -]/* Line __line__ of glr.cc. */ -b4_syncline([@oline@], [@ofile@])[ - #include "location.hh" /* Enabling traces. */ @@ -249,19 +248,6 @@ b4_syncline([@oline@], [@ofile@])[ # define YYDEBUG ]b4_debug_flag[ #endif -/* Enabling verbose error messages. */ -#ifdef YYERROR_VERBOSE -# undef YYERROR_VERBOSE -# define YYERROR_VERBOSE 1 -#else -# define YYERROR_VERBOSE ]b4_error_verbose_flag[ -#endif - -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE ]b4_token_table[ -#endif - /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ @@ -291,11 +277,11 @@ namespace ]b4_namespace[ #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 @@ -355,7 +341,10 @@ b4_syncline([@oline@], [@ofile@]) const semantic_type* yyvaluep, const location_type* yylocationp); private: -#endif /* ! YYDEBUG */ + /* Debugging. */ + int yydebug_; + std::ostream* yycdebug_; +#endif /// \brief Reclaim the memory associated to a symbol. @@ -368,8 +357,6 @@ b4_syncline([@oline@], [@ofile@]) semantic_type* yyvaluep, location_type* yylocationp); - /* Debugging. */ - std::ostream* yycdebug_; ]b4_parse_param_vars[ }; @@ -386,4 +373,8 @@ m4_ifset([b4_global_tokens_and_yystype], } -#endif /* ! defined PARSER_HEADER_H */] +]m4_ifdef([b4_provides], +[[/* Copy the %provides blocks. */ +]b4_user_provides])[]dnl + +[#endif /* ! defined PARSER_HEADER_H */]