diff options
author | Akim Demaille <akim@lrde.epita.fr> | 2012-12-14 13:56:11 +0100 |
---|---|---|
committer | Akim Demaille <akim@lrde.epita.fr> | 2012-12-14 13:58:04 +0100 |
commit | b9278c7d174c1be5d7482343c5e433f428657ed0 (patch) | |
tree | 90b6cb9385cd4cb10505f4e0b799ee3a2c7448a2 | |
parent | e96b1b2c452d62d0fe9cef4338c882db0b7d0691 (diff) | |
parent | 2bd435c36c0dfdefb07cef05dec851ec75bab20b (diff) | |
download | bison-b9278c7d174c1be5d7482343c5e433f428657ed0.tar.gz |
Merge branch 'origin/maint'
* origin/maint:
maint: credit Wojciech Polak
maint: post-release administrivia
version 2.7
yacc.c: scope reduction
tests: C90 compliance
fix C90 compliance
glr.c: scope reduction
gnulib: update
Conflicts:
NEWS
gnulib
src/scan-gram.l
src/system.h
-rw-r--r-- | .prev-version | 2 | ||||
-rw-r--r-- | NEWS | 12 | ||||
-rw-r--r-- | THANKS | 1 | ||||
-rw-r--r-- | data/glr.c | 21 | ||||
-rw-r--r-- | data/yacc.c | 23 | ||||
m--------- | gnulib | 0 | ||||
-rw-r--r-- | src/graphviz.h | 52 | ||||
-rw-r--r-- | src/ielr.c | 8 | ||||
-rw-r--r-- | src/scan-gram.l | 2 | ||||
-rw-r--r-- | src/system.h | 2 | ||||
-rw-r--r-- | tests/actions.at | 5 | ||||
-rw-r--r-- | tests/glr-regression.at | 6 | ||||
-rw-r--r-- | tests/synclines.at | 2 |
13 files changed, 79 insertions, 57 deletions
diff --git a/.prev-version b/.prev-version index 7d99c602..1effb003 100644 --- a/.prev-version +++ b/.prev-version @@ -1 +1 @@ -2.6.90 +2.7 @@ -240,17 +240,14 @@ GNU Bison NEWS It used to be an error only if used in non GLR mode, _and_ if there are reduce/reduce conflicts. -* Noteworthy changes in release ?.? (????-??-??) [?] - -** %language is no longer an experimental feature. - - The introduction of this feature, in 2.4, was four years ago. The --language - option and the %language directive are no longer experimental. +* Noteworthy changes in release 2.7 (2012-12-12) [stable] ** Bug fixes Warnings about uninitialized yylloc in yyparse have been fixed. + Restored C90 compliance (yet no report was ever made). + ** Diagnostics are improved *** Changes in the format of error messages @@ -748,6 +745,7 @@ GNU Bison NEWS These features are experimental in this version. More user feedback will help to stabilize them. + Contributed by Alex Rozenman. ** IELR(1) and canonical LR(1): @@ -1264,6 +1262,7 @@ GNU Bison NEWS The current Java interface is experimental and may evolve. More user feedback will help to stabilize it. + Contributed by Paolo Bonzini. ** %language @@ -1277,6 +1276,7 @@ GNU Bison NEWS Bison can now generate an XML report of the LALR(1) automaton using the new "--xml" option. The current XML schema is experimental and may evolve. More user feedback will help to stabilize it. + Contributed by Wojciech Polak. ** The grammar file may now specify the name of the parser header file using %defines. For example: @@ -127,6 +127,7 @@ Vin Shelton acs@alumni.princeton.edu W.C.A. Wijngaards wouter@NLnetLabs.nl Wayne Green wayne@infosavvy.com Wei Song wsong83@gmail.com +Wojciech Polak polak@gnu.org Wolfgang S. Kechel wolfgang.kechel@prs.de Wolfram Wagner ww@mpi-sb.mpg.de Wwp subscript@free.fr @@ -286,7 +286,7 @@ b4_percent_code_get[]dnl # include <setjmp.h> # define YYJMP_BUF jmp_buf # define YYSETJMP(Env) setjmp (Env) -// Pacify clang. +/* Pacify clang. */ # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0)) #endif @@ -1997,10 +1997,10 @@ yyreportSyntaxError (yyGLRStack* yystackp]b4_user_formals[) #if ! YYERROR_VERBOSE yyerror (]b4_lyyerror_args[YY_("syntax error")); #else + { yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); size_t yysize0 = yytnamerr (YY_NULL, yytokenName (yytoken)); size_t yysize = yysize0; - size_t yysize1; yybool yysize_overflow = yyfalse; char* yymsg = YY_NULL; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; @@ -2060,9 +2060,11 @@ yyreportSyntaxError (yyGLRStack* yystackp]b4_user_formals[) break; } yyarg[yycount++] = yytokenName (yyx); - yysize1 = yysize + yytnamerr (YY_NULL, yytokenName (yyx)); - yysize_overflow |= yysize1 < yysize; - yysize = yysize1; + { + size_t yysz = yysize + yytnamerr (YY_NULL, yytokenName (yyx)); + yysize_overflow |= yysz < yysize; + yysize = yysz; + } } } } @@ -2082,9 +2084,11 @@ yyreportSyntaxError (yyGLRStack* yystackp]b4_user_formals[) #undef YYCASE_ } - yysize1 = yysize + strlen (yyformat); - yysize_overflow |= yysize1 < yysize; - yysize = yysize1; + { + size_t yysz = yysize + strlen (yyformat); + yysize_overflow |= yysz < yysize; + yysize = yysz; + } if (!yysize_overflow) yymsg = (char *) YYMALLOC (yysize); @@ -2114,6 +2118,7 @@ yyreportSyntaxError (yyGLRStack* yystackp]b4_user_formals[) yyerror (]b4_lyyerror_args[YY_("syntax error")); yyMemoryExhausted (yystackp); } + } #endif /* YYERROR_VERBOSE */ yynerrs += 1; } diff --git a/data/yacc.c b/data/yacc.c index 9bd80280..7a2587ab 100644 --- a/data/yacc.c +++ b/data/yacc.c @@ -1147,7 +1147,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, { YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ const char *yyformat = YY_NULL; @@ -1224,11 +1223,13 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, break; } yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } } }]b4_lac_if([[ # if ]b4_api_PREFIX[DEBUG @@ -1252,10 +1253,12 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, # undef YYCASE_ } - yysize1 = yysize + yystrlen (yyformat); - if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) - return 2; - yysize = yysize1; + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } if (*yymsg_alloc < yysize) { diff --git a/gnulib b/gnulib -Subproject daf7f8c02242c535d596231e2f655109b97fa2b +Subproject 4a8c422f3139a9b4fb2c7ffae5aef3bea28bdc6 diff --git a/src/graphviz.h b/src/graphviz.h index 371b15c5..239cdd21 100644 --- a/src/graphviz.h +++ b/src/graphviz.h @@ -24,38 +24,48 @@ #include "state.h" -/// Begin a Dot graph. -/// \param fout output stream. +/** Begin a Dot graph. + * + * \param fout output stream. + */ void start_graph (FILE *fout); -/// Output a Dot node. -/// \param id identifier of the node -/// \param label human readable label of the node (no Dot escaping needed). -/// \param fout output stream. +/** Output a Dot node. + * + * \param id identifier of the node + * \param label human readable label of the node (no Dot escaping needed). + * \param fout output stream. + */ void output_node (int id, char const *label, FILE *fout); -/// Output a Dot edge. -/// \param source id of the source node -/// \param destination id of the target node -/// \param label human readable label of the edge -/// (no Dot escaping needed). Can be 0. -/// \param style Dot style of the edge (e.g., "dotted" or "solid"). -/// \param fout output stream. +/** Output a Dot edge. + * \param source id of the source node + * \param destination id of the target node + * \param label human readable label of the edge + * (no Dot escaping needed). Can be 0. + * \param style Dot style of the edge (e.g., "dotted" or "solid"). + * \param fout output stream. + */ void output_edge (int source, int destination, char const *label, char const *style, FILE *fout); -/// Output a reduction. -/// \param s current state -/// \param reds the set of reductions -/// \param fout output stream. +/** Output a reduction. + * \param s current state + * \param reds the set of reductions + * \param fout output stream. + */ void output_red (state const *s, reductions const *reds, FILE *fout); -/// End a Dot graph. -/// \param fout output stream. +/** End a Dot graph. + * + * \param fout output stream. + */ void finish_graph (FILE *fout); -/// Escape a lookahead token. -/// \param name the token. +/** Escape a lookahead token. + * + * \param name the token. + */ char const *escape (char const *name); #endif /* ! GRAPHVIZ_H_ */ @@ -758,8 +758,8 @@ ielr_compute_state (bitsetv follow_kernel_items, bitsetv always_follows, if (!bitset_empty_p (lookaheads[i])) break; } - // bitset_equal_p uses the size of the first argument, so - // lookaheads[i] must be the second argument. + /* bitset_equal_p uses the size of the first argument, + so lookaheads[i] must be the second argument. */ else if (!bitset_equal_p ((*this_isocorep)->lookaheads[i], lookaheads[i])) break; @@ -1187,8 +1187,8 @@ ielr (void) free (to_state); if (lr_type == LR_TYPE__CANONICAL_LR) { - // Reduction lookaheads are computed in ielr_split_states above but are - // timed as part of phase 4. + /* Reduction lookaheads are computed in ielr_split_states above + but are timed as part of phase 4. */ set_goto_map (); } else diff --git a/src/scan-gram.l b/src/scan-gram.l index e6f42ea9..d02b26bb 100644 --- a/src/scan-gram.l +++ b/src/scan-gram.l @@ -1012,7 +1012,7 @@ unexpected_end (boundary start, char const *msgid, char const *token_end) loc.start = start; loc.end = scanner_cursor; token_end = quote (token_end); - // Instead of '\'', display "'". + /* Instead of '\'', display "'". */ if (STREQ (token_end, "'\\''")) token_end = "\"'\""; complain (&loc, complaint, _(msgid), token_end); diff --git a/src/system.h b/src/system.h index 987ebe2a..01cce6dc 100644 --- a/src/system.h +++ b/src/system.h @@ -65,7 +65,7 @@ typedef size_t uintptr_t; #endif -// Version mismatch. +/* Version mismatch. */ #define EX_MISMATCH 63 /*---------. diff --git a/tests/actions.at b/tests/actions.at index f62c43dd..84e840fa 100644 --- a/tests/actions.at +++ b/tests/actions.at @@ -90,7 +90,7 @@ AT_DATA_GRAMMAR([[input.y]], %code { # include <stdio.h> -# include <stdlib.h> // getenv +# include <stdlib.h> /* getenv */ ]AT_YYERROR_DECLARE[ ]AT_YYLEX_DECLARE[ } @@ -195,7 +195,7 @@ AT_DATA_GRAMMAR([[input.y]], %code { # include <stdio.h> -# include <stdlib.h> // getenv +# include <stdlib.h> /* getenv */ ]AT_YYERROR_DECLARE[ ]AT_YYLEX_DECLARE[ } @@ -223,6 +223,7 @@ main (void) TEST(7, 2, 0, 2); TEST(8, 0, 8, 0); + return 0; } ]]) diff --git a/tests/glr-regression.at b/tests/glr-regression.at index 1ab92238..41fc7bc7 100644 --- a/tests/glr-regression.at +++ b/tests/glr-regression.at @@ -195,10 +195,11 @@ yylex (void) int main (int argc, char **argv) { + int res; input = stdin; if (argc == 2 && !(input = fopen (argv[1], "r"))) return 3; - int res = yyparse (); + res = yyparse (); if (argc == 2 && fclose (input)) return 4; return res; @@ -327,10 +328,11 @@ int yylex (void) int main(int argc, char* argv[]) { + int res; input = stdin; if (argc == 2 && !(input = fopen (argv[1], "r"))) return 3; - int res = yyparse (); + res = yyparse (); if (argc == 2 && fclose (input)) return 4; return res; diff --git a/tests/synclines.at b/tests/synclines.at index 2fc74fe0..6b847195 100644 --- a/tests/synclines.at +++ b/tests/synclines.at @@ -127,7 +127,7 @@ AT_BISON_OPTION_PUSHDEFS AT_DATA([syncline.c], [[#error "1" -int i; // avoids -pedantic warning about an empty translation unit +int i; /* avoids -pedantic warning about an empty translation unit. */ ]]) AT_SYNCLINES_COMPILE([syncline.c]) |