X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/aef3da86899c5f2cd4eed728b63bd82413106a43..f6857bbf8c40df05d7c7324cf41ced6d1961ca89:/data/lalr1.cc diff --git a/data/lalr1.cc b/data/lalr1.cc index 73734281..c76a1a10 100644 --- a/data/lalr1.cc +++ b/data/lalr1.cc @@ -33,7 +33,7 @@ m4_include(b4_pkgdatadir/[location.cc]) m4_changecom() m4_divert(0)dnl b4_defines_if( -[@output @output_header_name@ +[@output b4_spec_defines_file b4_copyright([Skeleton interface for Bison LALR(1) parsers in C++], [2002, 2003, 2004, 2005, 2006]) dnl FIXME: This is wrong, we want computed header guards. @@ -43,9 +43,9 @@ dnl FIXME: This is wrong, we want computed header guards. #ifndef PARSER_HEADER_H # define PARSER_HEADER_H -]m4_ifdef([b4_start_header], -[[/* Copy the %start-header blocks. */ -]b4_user_start_header])[ +]m4_ifdef([b4_requires], +[[/* Copy the %requires blocks. */ +]b4_user_requires])[ #include #include @@ -172,7 +172,7 @@ b4_error_verbose_if([, int tok])[); virtual void yy_symbol_print_ (int yytype, const semantic_type* yyvaluep, const location_type* yylocationp); -#endif /* ! YYDEBUG */ +#endif /// State numbers. @@ -249,6 +249,10 @@ b4_error_verbose_if([, int tok])[); virtual void yy_reduce_print_ (int r); /// Print the state stack on the debug stream. virtual void yystack_print_ (); + + /* Debugging. */ + int yydebug_; + std::ostream* yycdebug_; #endif /// Convert a scanner token number \a t to a symbol number. @@ -279,11 +283,6 @@ b4_error_verbose_if([, int tok])[); static const int yyntokens_; static const unsigned int yyuser_token_number_max_; static const token_number_type yyundef_token_; - - /* Debugging. */ - int yydebug_; - std::ostream* yycdebug_; - ]b4_parse_param_vars[ }; } @@ -296,13 +295,13 @@ b4_error_verbose_if([, int tok])[); # define YYSTYPE b4_namespace::b4_parser_class_name::semantic_type #endif ]) -m4_ifdef([b4_end_header], -[[/* Copy the %end-header blocks. */ -]b4_end_header])[]dnl +m4_ifdef([b4_provides], +[[/* Copy the %provides blocks. */ +]b4_user_provides])[]dnl [#endif /* ! defined PARSER_HEADER_H */] ])dnl -@output @output_parser_name@ +@output b4_parser_file_name b4_copyright([Skeleton implementation for Bison LALR(1) parsers in C++], [2002, 2003, 2004, 2005, 2006]) m4_if(b4_prefix, [yy], [], @@ -311,10 +310,10 @@ m4_if(b4_prefix, [yy], [], #define yylex b4_prefix[]lex])[ /* First part of user declarations. */ -]b4_pre_prologue +]b4_user_pre_prologue -b4_defines_if([ -#include @output_header_name@])[ +b4_defines_if([[ +#include "@basename(]b4_spec_defines_file[@)"]])[ /* User implementation prologue. */ ]b4_user_post_prologue[ @@ -334,12 +333,12 @@ b4_defines_if([ /* Suppress unused-variable warnings by "using" E. */ #define YYUSE(e) ((void) (e)) -/* A pseudo ostream that takes yydebug_ into account. */ -# define YYCDEBUG if (yydebug_) (*yycdebug_) - /* Enable debugging if requested. */ #if YYDEBUG +/* A pseudo ostream that takes yydebug_ into account. */ +# define YYCDEBUG if (yydebug_) (*yycdebug_) + # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug_) \ @@ -364,6 +363,7 @@ do { \ #else /* !YYDEBUG */ +# define YYCDEBUG if (false) std::cerr # define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_REDUCE_PRINT(Rule) # define YY_STACK_PRINT() @@ -418,9 +418,12 @@ namespace ]b4_namespace[ #endif /// Build a parser object. - ]b4_parser_class_name::b4_parser_class_name[ (]b4_parse_param_decl[) - : yydebug_ (false), - 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[ { } @@ -458,7 +461,7 @@ namespace ]b4_namespace[ yy_symbol_value_print_ (yytype, yyvaluep, yylocationp); *yycdebug_ << ')'; } -#endif /* ! YYDEBUG */ +#endif void ]b4_parser_class_name[::yydestruct_ (const char* yymsg, @@ -486,6 +489,7 @@ namespace ]b4_namespace[ yylocation_stack_.pop (n); } +#if YYDEBUG std::ostream& ]b4_parser_class_name[::debug_stream () const { @@ -510,7 +514,7 @@ namespace ]b4_namespace[ { yydebug_ = l; } - +#endif int ]b4_parser_class_name[::parse ()