X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/a85284cfbd1334c940e65b59c44ada379029e074..62a9592d3d3149aae90533a685f9a8a35cd630f5:/data/lalr1.cc diff --git a/data/lalr1.cc b/data/lalr1.cc index d9d9af9d..25b9160c 100644 --- a/data/lalr1.cc +++ b/data/lalr1.cc @@ -2,7 +2,7 @@ m4_divert(-1) # C++ skeleton for Bison -# Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -20,6 +20,11 @@ m4_divert(-1) # 02110-1301 USA m4_include(b4_pkgdatadir/[c++.m4]) + +# The header is mandatory. +b4_defines_if([], + [m4_fatal(b4_skeleton[: using %defines is mandatory])]) + # Backward compatibility. m4_define([b4_location_constructors]) m4_include(b4_pkgdatadir/[location.cc]) @@ -27,17 +32,12 @@ m4_include(b4_pkgdatadir/[location.cc]) # We do want M4 expansion after # for CPP macros. m4_changecom() m4_divert(0)dnl -m4_if(b4_defines_flag, 0, [], +b4_defines_if( [@output @output_header_name@ -b4_copyright([C++ Skeleton parser for LALR(1) parsing with Bison], - [2002, 2003, 2004, 2005]) +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. -[/* As a special exception, when this parser skeleton is copied by - Bison into a Bison output file, you may use that output file - without restriction. This special exception was added by the Free - Software Foundation for C++ LALR(1) parsers in version 2.2 of - Bison. */ - +[ /* C++ LALR(1) parser skeleton written by Akim Demaille. */ #ifndef PARSER_HEADER_H @@ -47,24 +47,22 @@ dnl FIXME: This is wrong, we want computed header guards. #include #include "stack.hh" -namespace yy +namespace ]b4_namespace[ { class position; class location; } -/* First part of user declarations. */ -]b4_pre_prologue[ - -]/* Line __line__ of lalr1.cc. */ -b4_syncline([@oline@], [@ofile@])[ +]m4_ifdef([b4_start_header], +[[/* Copy the %start-header blocks. */ +]b4_user_start_header])[ ]dnl Include location.hh here: it might depend on headers included above. [#include "location.hh" /* Enabling traces. */ #ifndef YYDEBUG -# define YYDEBUG ]b4_debug[ +# define YYDEBUG ]b4_debug_flag[ #endif /* Enabling verbose error messages. */ @@ -72,7 +70,7 @@ b4_syncline([@oline@], [@ofile@])[ # 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. */ @@ -99,7 +97,7 @@ do { \ } while (false) #endif -namespace yy +namespace ]b4_namespace[ { /// A Bison parser. @@ -107,13 +105,14 @@ namespace yy { public: /// Symbol semantic values. -#if ! defined (YYSTYPE) +#ifndef YYSTYPE ]m4_ifdef([b4_stype], -[b4_syncline([b4_stype_line], [b4_file_name]) - union semantic_type b4_stype; -/* Line __line__ of lalr1.cc. */ -b4_syncline([@oline@], [@ofile@])], -[ typedef int semantic_type;])[ +[ union semantic_type +b4_user_stype + ;], +[m4_if(b4_tag_seen_flag, 0, +[[ typedef int semantic_type;]], +[[ typedef YYSTYPE semantic_type;]])])[ #else typedef YYSTYPE semantic_type; #endif @@ -124,6 +123,8 @@ b4_syncline([@oline@], [@ofile@])], { ]b4_token_enums(b4_tokens)[ }; + /// Token type. + typedef token::yytokentype token_type; /// Build a parser object. ]b4_parser_class_name[ (]b4_parse_param_decl[); @@ -153,18 +154,25 @@ b4_syncline([@oline@], [@ofile@])], /// Generate an error message. /// \param state the state where the error occurred. - /// \param tok the look-ahead token. + /// \param tok the lookahead token. virtual std::string yysyntax_error_ (int yystate]dnl b4_error_verbose_if([, int tok])[); #if YYDEBUG + /// \brief Report a symbol value on the debug stream. + /// \param yytype The token type. + /// \param yyvaluep Its semantic value. + /// \param yylocationp Its location. + virtual void yy_symbol_value_print_ (int yytype, + const semantic_type* yyvaluep, + const location_type* yylocationp); /// \brief Report a symbol on the debug stream. /// \param yytype The token type. /// \param yyvaluep Its semantic value. /// \param yylocationp Its location. - virtual void yysymprint_ (int yytype, - const semantic_type* yyvaluep, - const location_type* yylocationp); + virtual void yy_symbol_print_ (int yytype, + const semantic_type* yyvaluep, + const location_type* yylocationp); #endif /* ! YYDEBUG */ @@ -244,8 +252,8 @@ b4_error_verbose_if([, int tok])[); virtual void yystack_print_ (); #endif - /// Convert a scanner token number to a symbol number. - inline token_number_type yytranslate_ (int token); + /// Convert a scanner token number \a t to a symbol number. + token_number_type yytranslate_ (int t); /// \brief Reclaim the memory associated to a symbol. /// \param yymsg Why this token is reclaimed. @@ -253,9 +261,9 @@ b4_error_verbose_if([, int tok])[); /// \param yyvaluep Its semantic value. /// \param yylocationp Its location. inline void yydestruct_ (const char* yymsg, - int yytype, - semantic_type* yyvaluep, - location_type* yylocationp); + int yytype, + semantic_type* yyvaluep, + location_type* yylocationp); /// Pop \a n symbols the three stacks. inline void yypop_ (unsigned int n = 1); @@ -285,28 +293,32 @@ b4_error_verbose_if([, int tok])[); [b4_token_defines(b4_tokens) #ifndef YYSTYPE - /* Redirection for backward compatibility. */ -# define YYSTYPE yy::b4_parser_class_name::semantic_type + /* Redirection for backward compatibility. */ +# define YYSTYPE b4_namespace::b4_parser_class_name::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 */] ])dnl @output @output_parser_name@ -b4_copyright([C++ Skeleton parser for LALR(1) parsing with Bison], - [2002, 2003, 2004, 2005]) -m4_if(b4_prefix[], [yy], [], +b4_copyright([Skeleton implementation for Bison LALR(1) parsers in C++], + [2002, 2003, 2004, 2005, 2006]) +m4_if(b4_prefix, [yy], [], [ // Take the name prefix into account. -#define yylex b4_prefix[]lex]) -m4_if(b4_defines_flag, 0, [], -[ +#define yylex b4_prefix[]lex])[ + +/* First part of user declarations. */ +]b4_pre_prologue + +b4_defines_if([ #include @output_header_name@])[ /* User implementation prologue. */ -]b4_post_prologue[ - -]/* Line __line__ of lalr1.cc. */ -b4_syncline([@oline@], [@ofile@])[ +]b4_user_post_prologue[ #ifndef YY_ # if YYENABLE_NLS @@ -323,10 +335,8 @@ b4_syncline([@oline@], [@ofile@])[ /* Suppress unused-variable warnings by "using" E. */ #define YYUSE(e) ((void) (e)) -/* A pseudo ostream that takes yydebug_ into account. */ -# define YYCDEBUG \ - for (bool yydebugcond_ = yydebug_; yydebugcond_; yydebugcond_ = false) \ - (*yycdebug_) +/* A pseudo ostream that takes yydebug_ into account. */ +# define YYCDEBUG if (yydebug_) (*yycdebug_) /* Enable debugging if requested. */ #if YYDEBUG @@ -336,7 +346,7 @@ do { \ if (yydebug_) \ { \ *yycdebug_ << Title << ' '; \ - yysymprint_ ((Type), (Value), (Location)); \ + yy_symbol_print_ ((Type), (Value), (Location)); \ *yycdebug_ << std::endl; \ } \ } while (false) @@ -365,49 +375,49 @@ do { \ #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab -#if YYERROR_VERBOSE - -/* Return YYSTR after stripping away unnecessary quotes and - backslashes, so that it's suitable for yyerror. The heuristic is - that double-quoting is unnecessary unless the string contains an - apostrophe, a comma, or backslash (other than backslash-backslash). - YYSTR is taken from yytname. */ -std::string -yy::]b4_parser_class_name[::yytnamerr_ (const char *yystr) +namespace ]b4_namespace[ { - if (*yystr == '"') - { - std::string yyr = ""; - char const *yyp = yystr; +#if YYERROR_VERBOSE - for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - yyr += *yyp; - break; - - case '"': - return yyr; - } - do_not_strip_quotes: ; - } + /* Return YYSTR after stripping away unnecessary quotes and + backslashes, so that it's suitable for yyerror. The heuristic is + that double-quoting is unnecessary unless the string contains an + apostrophe, a comma, or backslash (other than backslash-backslash). + YYSTR is taken from yytname. */ + std::string + ]b4_parser_class_name[::yytnamerr_ (const char *yystr) + { + if (*yystr == '"') + { + std::string yyr = ""; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + yyr += *yyp; + break; + + case '"': + return yyr; + } + do_not_strip_quotes: ; + } - return yystr; -} + return yystr; + } #endif -namespace yy -{ /// Build a parser object. ]b4_parser_class_name::b4_parser_class_name[ (]b4_parse_param_decl[) : yydebug_ (false), @@ -424,33 +434,36 @@ namespace yy | Print this symbol on YYOUTPUT. | `--------------------------------*/ - void - ]b4_parser_class_name[::yysymprint_ (int yytype, - const semantic_type* yyvaluep, const location_type* yylocationp) + inline void + ]b4_parser_class_name[::yy_symbol_value_print_ (int yytype, + const semantic_type* yyvaluep, const location_type* yylocationp) { - /* Backward compatibility, but should be removed eventually. */ - std::ostream& cdebug_ = *yycdebug_; - - YYUSE (!&cdebug_); YYUSE (yylocationp); YYUSE (yyvaluep); - - *yycdebug_ << (yytype < yyntokens_ ? "token" : "nterm") - << ' ' << yytname_[yytype] << " (" - << *yylocationp << ": "; switch (yytype) { ]m4_map([b4_symbol_actions], m4_defn([b4_symbol_printers]))dnl [ default: - break; + break; } + } + + + void + ]b4_parser_class_name[::yy_symbol_print_ (int yytype, + const semantic_type* yyvaluep, const location_type* yylocationp) + { + *yycdebug_ << (yytype < yyntokens_ ? "token" : "nterm") + << ' ' << yytname_[yytype] << " (" + << *yylocationp << ": "; + yy_symbol_value_print_ (yytype, yyvaluep, yylocationp); *yycdebug_ << ')'; } #endif /* ! YYDEBUG */ void ]b4_parser_class_name[::yydestruct_ (const char* yymsg, - int yytype, semantic_type* yyvaluep, location_type* yylocationp) + int yytype, semantic_type* yyvaluep, location_type* yylocationp) { YYUSE (yylocationp); YYUSE (yymsg); @@ -461,8 +474,8 @@ namespace yy switch (yytype) { ]m4_map([b4_symbol_actions], m4_defn([b4_symbol_destructors]))[ - default: - break; + default: + break; } } @@ -503,7 +516,7 @@ namespace yy int ]b4_parser_class_name[::parse () { - /// Look-ahead and look-ahead in internal form. + /// Lookahead and lookahead in internal form. int yychar = yyempty_; int yytoken = 0; @@ -512,13 +525,13 @@ namespace yy int yylen = 0; int yystate = 0; - /* Error handling. */ + /* Error handling. */ int yynerrs_ = 0; int yyerrstatus_ = 0; - /// Semantic value of the look-ahead. + /// Semantic value of the lookahead. semantic_type yylval; - /// Location of the look-ahead. + /// Location of the lookahead. location_type yylloc; /// The locations where the error started and ended. location yyerror_range[2]; @@ -535,12 +548,10 @@ namespace yy ]m4_ifdef([b4_initial_action], [ m4_pushdef([b4_at_dollar], [yylloc])dnl m4_pushdef([b4_dollar_dollar], [yylval])dnl - /* User initialization code. */ - b4_initial_action + /* User initialization code. */ + b4_user_initial_action m4_popdef([b4_dollar_dollar])dnl -m4_popdef([b4_at_dollar])dnl - /* Line __line__ of yacc.c. */ -b4_syncline([@oline@], [@ofile@])])dnl +m4_popdef([b4_at_dollar])])dnl [ /* Initialize the stacks. The initial state will be pushed in yynewstate, since the latter expects the semantical and the @@ -561,18 +572,18 @@ b4_syncline([@oline@], [@ofile@])])dnl /* Backup. */ yybackup: - /* Try to take a decision without look-ahead. */ + /* Try to take a decision without lookahead. */ yyn = yypact_[yystate]; if (yyn == yypact_ninf_) goto yydefault; - /* Read a look-ahead token. */ + /* Read a lookahead token. */ if (yychar == yyempty_) { - YYCDEBUG << "Reading a token: "; - yychar = ]b4_c_function_call([yylex], [int], - [[YYSTYPE*], [&yylval]][]dnl -b4_location_if([, [[location*], [&yylloc]]])dnl + YYCDEBUG << "Reading a token: "; + yychar = ]b4_c_function_call([yylex], [int], + [[YYSTYPE*], [&yylval]][]dnl +b4_locations_if([, [[location*], [&yylloc]]])dnl m4_ifdef([b4_lex_param], [, ]b4_lex_param))[; } @@ -580,13 +591,13 @@ m4_ifdef([b4_lex_param], [, ]b4_lex_param))[; /* Convert token to internal form. */ if (yychar <= yyeof_) { - yychar = yytoken = yyeof_; - YYCDEBUG << "Now at end of input." << std::endl; + yychar = yytoken = yyeof_; + YYCDEBUG << "Now at end of input." << std::endl; } else { - yytoken = yytranslate_ (yychar); - YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + yytoken = yytranslate_ (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to @@ -599,17 +610,17 @@ m4_ifdef([b4_lex_param], [, ]b4_lex_param))[; yyn = yytable_[yyn]; if (yyn <= 0) { - if (yyn == 0 || yyn == yytable_ninf_) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; + if (yyn == 0 || yyn == yytable_ninf_) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; } /* Accept? */ if (yyn == yyfinal_) goto yyacceptlab; - /* Shift the look-ahead token. */ + /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the token being shifted unless it is eof. */ @@ -659,10 +670,8 @@ m4_ifdef([b4_lex_param], [, ]b4_lex_param))[; YY_REDUCE_PRINT (yyn); switch (yyn) { - ]b4_actions - /* Line __line__ of lalr1.cc. */ -b4_syncline([@oline@], [@ofile@])[ - default: break; + ]b4_user_actions[ + default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1_[yyn], &yyval, &yyloc); @@ -677,7 +686,7 @@ b4_syncline([@oline@], [@ofile@])[ yyn = yyr1_[yyn]; yystate = yypgoto_[yyn - yyntokens_] + yystate_stack_[0]; if (0 <= yystate && yystate <= yylast_ - && yycheck_[yystate] == yystate_stack_[0]) + && yycheck_[yystate] == yystate_stack_[0]) yystate = yytable_[yystate]; else yystate = yydefgoto_[yyn - yyntokens_]; @@ -690,31 +699,31 @@ b4_syncline([@oline@], [@ofile@])[ /* If not already recovering from an error, report this error. */ if (!yyerrstatus_) { - ++yynerrs_; - error (yylloc, yysyntax_error_ (yystate]dnl + ++yynerrs_; + error (yylloc, yysyntax_error_ (yystate]dnl b4_error_verbose_if([, yytoken])[)); } yyerror_range[0] = yylloc; if (yyerrstatus_ == 3) { - /* If just tried and failed to reuse look-ahead token after an - error, discard it. */ - - if (yychar <= yyeof_) - { - /* Return failure if at end of input. */ - if (yychar == yyeof_) - YYABORT; - } - else - { - yydestruct_ ("Error: discarding", yytoken, &yylval, &yylloc); - yychar = yyempty_; - } + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= yyeof_) + { + /* Return failure if at end of input. */ + if (yychar == yyeof_) + YYABORT; + } + else + { + yydestruct_ ("Error: discarding", yytoken, &yylval, &yylloc); + yychar = yyempty_; + } } - /* Else will try to reuse look-ahead token after shifting the error + /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; @@ -732,7 +741,7 @@ b4_error_verbose_if([, yytoken])[)); yyerror_range[0] = yylocation_stack_[yylen - 1]; /* Do not reclaim the symbols of the rule which action triggered - this YYERROR. */ + this YYERROR. */ yypop_ (yylen); yylen = 0; yystate = yystate_stack_[0]; @@ -746,29 +755,29 @@ b4_error_verbose_if([, yytoken])[)); for (;;) { - yyn = yypact_[yystate]; - if (yyn != yypact_ninf_) - { - yyn += yyterror_; - if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_) - { - yyn = yytable_[yyn]; - if (0 < yyn) - break; - } - } - - /* Pop the current state because it cannot handle the error token. */ - if (yystate_stack_.height () == 1) - YYABORT; - - yyerror_range[0] = yylocation_stack_[0]; - yydestruct_ ("Error: popping", - yystos_[yystate], - &yysemantic_stack_[0], &yylocation_stack_[0]); - yypop_ (); - yystate = yystate_stack_[0]; - YY_STACK_PRINT (); + yyn = yypact_[yystate]; + if (yyn != yypact_ninf_) + { + yyn += yyterror_; + if (0 <= yyn && yyn <= yylast_ && yycheck_[yyn] == yyterror_) + { + yyn = yytable_[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yystate_stack_.height () == 1) + YYABORT; + + yyerror_range[0] = yylocation_stack_[0]; + yydestruct_ ("Error: popping", + yystos_[yystate], + &yysemantic_stack_[0], &yylocation_stack_[0]); + yypop_ (); + yystate = yystate_stack_[0]; + YY_STACK_PRINT (); } if (yyn == yyfinal_) @@ -776,14 +785,14 @@ b4_error_verbose_if([, yytoken])[)); yyerror_range[1] = yylloc; // Using YYLLOC is tempting, but would change the location of - // the look-ahead. YYLOC is available though. - YYLLOC_DEFAULT (yyloc, yyerror_range - 1, 2); + // the lookahead. YYLOC is available though. + YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2); yysemantic_stack_.push (yylval); yylocation_stack_.push (yyloc); - /* Shift the error token. */ + /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos_[yyn], - &yysemantic_stack_[0], &yylocation_stack_[0]); + &yysemantic_stack_[0], &yylocation_stack_[0]); yystate = yyn; goto yynewstate; @@ -803,15 +812,15 @@ b4_error_verbose_if([, yytoken])[)); yydestruct_ ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc); /* Do not reclaim the symbols of the rule which action triggered - this YYABORT or YYACCEPT. */ + this YYABORT or YYACCEPT. */ yypop_ (yylen); while (yystate_stack_.height () != 1) { - yydestruct_ ("Cleanup: popping", - yystos_[yystate_stack_[0]], - &yysemantic_stack_[0], - &yylocation_stack_[0]); - yypop_ (); + yydestruct_ ("Cleanup: popping", + yystos_[yystate_stack_[0]], + &yysemantic_stack_[0], + &yylocation_stack_[0]); + yypop_ (); } return yyresult; @@ -823,42 +832,43 @@ b4_error_verbose_if([, yytoken])[)); b4_error_verbose_if([, int tok])[) { std::string res; + YYUSE (yystate); #if YYERROR_VERBOSE int yyn = yypact_[yystate]; - if (yypact_ninf_ < yyn && yyn < yylast_) + if (yypact_ninf_ < yyn && yyn <= yylast_) { - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = yylast_ - yyn; - int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_; - int count = 0; - for (int x = yyxbegin; x < yyxend; ++x) - if (yycheck_[x + yyn] == x && x != yyterror_) - ++count; - - // FIXME: This method of building the message is not compatible - // with internationalization. It should work like yacc.c does it. - // That is, first build a string that looks like this: - // "syntax error, unexpected %s or %s or %s" - // Then, invoke YY_ on this string. - // Finally, use the string as a format to output - // yytname_[tok], etc. - // Until this gets fixed, this message appears in English only. - res = "syntax error, unexpected "; - res += yytnamerr_ (yytname_[tok]); - if (count < 5) - { - count = 0; - for (int x = yyxbegin; x < yyxend; ++x) - if (yycheck_[x + yyn] == x && x != yyterror_) - { - res += (!count++) ? ", expecting " : " or "; - res += yytnamerr_ (yytname_[x]); - } - } + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = yylast_ - yyn + 1; + int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_; + int count = 0; + for (int x = yyxbegin; x < yyxend; ++x) + if (yycheck_[x + yyn] == x && x != yyterror_) + ++count; + + // FIXME: This method of building the message is not compatible + // with internationalization. It should work like yacc.c does it. + // That is, first build a string that looks like this: + // "syntax error, unexpected %s or %s or %s" + // Then, invoke YY_ on this string. + // Finally, use the string as a format to output + // yytname_[tok], etc. + // Until this gets fixed, this message appears in English only. + res = "syntax error, unexpected "; + res += yytnamerr_ (yytname_[tok]); + if (count < 5) + { + count = 0; + for (int x = yyxbegin; x < yyxend; ++x) + if (yycheck_[x + yyn] == x && x != yyterror_) + { + res += (!count++) ? ", expecting " : " or "; + res += yytnamerr_ (yytname_[x]); + } + } } else #endif @@ -950,7 +960,7 @@ b4_error_verbose_if([, int tok])[) #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at \a yyntokens_, nonterminals. */ + First, the terminals, then, starting at \a yyntokens_, nonterminals. */ const char* const ]b4_parser_class_name[::yytname_[] = { @@ -959,7 +969,7 @@ b4_error_verbose_if([, int tok])[) #endif #if YYDEBUG - /* YYRHS -- A `-1'-separated list of the rules' RHS. */ + /* YYRHS -- A `-1'-separated list of the rules' RHS. */ const ]b4_parser_class_name[::rhs_number_type ]b4_parser_class_name[::yyrhs_[] = { @@ -987,7 +997,7 @@ b4_error_verbose_if([, int tok])[) { *yycdebug_ << "Stack now"; for (state_stack_type::const_iterator i = yystate_stack_.begin (); - i != yystate_stack_.end (); ++i) + i != yystate_stack_.end (); ++i) *yycdebug_ << ' ' << *i; *yycdebug_ << std::endl; } @@ -1000,19 +1010,19 @@ b4_error_verbose_if([, int tok])[) int yynrhs = yyr2_[yyrule]; /* Print the symbols being reduced, and their result. */ *yycdebug_ << "Reducing stack by rule " << yyrule - 1 - << " (line " << yylno << "), "; + << " (line " << yylno << "), "; /* The symbols being reduced. */ for (int yyi = 0; yyi < yynrhs; yyi++) YY_SYMBOL_PRINT (" $" << yyi + 1 << " =", - yyrhs_[yyprhs_[yyrule] + yyi], - &]b4_rhs_value(yynrhs, yyi + 1)[, - &]b4_rhs_location(yynrhs, yyi + 1)[); + yyrhs_[yyprhs_[yyrule] + yyi], + &]b4_rhs_value(yynrhs, yyi + 1)[, + &]b4_rhs_location(yynrhs, yyi + 1)[); } #endif // YYDEBUG /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ ]b4_parser_class_name[::token_number_type - ]b4_parser_class_name[::yytranslate_ (int token) + ]b4_parser_class_name[::yytranslate_ (int t) { static const token_number_type @@ -1020,8 +1030,8 @@ b4_error_verbose_if([, int tok])[) { ]b4_translate[ }; - if ((unsigned int) token <= yyuser_token_number_max_) - return translate_table[token]; + if ((unsigned int) t <= yyuser_token_number_max_) + return translate_table[t]; else return yyundef_token_; } @@ -1038,19 +1048,20 @@ b4_error_verbose_if([, int tok])[) const unsigned int ]b4_parser_class_name[::yyuser_token_number_max_ = ]b4_user_token_number_max[; const ]b4_parser_class_name[::token_number_type ]b4_parser_class_name[::yyundef_token_ = ]b4_undef_token_number[; -} // namespace yy +} // namespace ]b4_namespace[ ]b4_epilogue dnl @output b4_dir_prefix[]stack.hh -b4_copyright([stack handling for Bison C++ parsers], [2002, 2003, 2004, 2005])[ +b4_copyright([Stack handling for Bison parsers in C++], + [2002, 2003, 2004, 2005, 2006])[ #ifndef BISON_STACK_HH # define BISON_STACK_HH #include -namespace yy +namespace ]b4_namespace[ { template > class stack