fix C90 compliance

* data/glr.c, src/graphviz.h, src/ielr.c, src/scan-gram.l,
* src/system.h, tests/actions.at, tests/glr-regression.at: Do not
use // comments.
Do not introduce variables after statements.
Provide "main" with a return value.
This commit is contained in:
Akim Demaille
2012-12-12 11:37:02 +01:00
parent fc28638e1c
commit 1127a75a72
8 changed files with 49 additions and 32 deletions

2
NEWS
View File

@@ -6,6 +6,8 @@ GNU Bison NEWS
Warnings about uninitialized yylloc in yyparse have been fixed. Warnings about uninitialized yylloc in yyparse have been fixed.
Restored C90 compliance (yet no report was ever made).
** Diagnostics are improved ** Diagnostics are improved
*** Changes in the format of error messages *** Changes in the format of error messages

View File

@@ -287,7 +287,7 @@ b4_percent_code_get[]dnl
# include <setjmp.h> # include <setjmp.h>
# define YYJMP_BUF jmp_buf # define YYJMP_BUF jmp_buf
# define YYSETJMP(Env) setjmp (Env) # define YYSETJMP(Env) setjmp (Env)
// Pacify clang. /* Pacify clang. */
# define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0)) # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
#endif #endif
@@ -2013,6 +2013,7 @@ yyreportSyntaxError (yyGLRStack* yystackp]b4_user_formals[)
#if ! YYERROR_VERBOSE #if ! YYERROR_VERBOSE
yyerror (]b4_lyyerror_args[YY_("syntax error")); yyerror (]b4_lyyerror_args[YY_("syntax error"));
#else #else
{
yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
size_t yysize0 = yytnamerr (YY_NULL, yytokenName (yytoken)); size_t yysize0 = yytnamerr (YY_NULL, yytokenName (yytoken));
size_t yysize = yysize0; size_t yysize = yysize0;
@@ -2133,6 +2134,7 @@ yyreportSyntaxError (yyGLRStack* yystackp]b4_user_formals[)
yyerror (]b4_lyyerror_args[YY_("syntax error")); yyerror (]b4_lyyerror_args[YY_("syntax error"));
yyMemoryExhausted (yystackp); yyMemoryExhausted (yystackp);
} }
}
#endif /* YYERROR_VERBOSE */ #endif /* YYERROR_VERBOSE */
yynerrs += 1; yynerrs += 1;
} }

View File

@@ -24,38 +24,48 @@
#include "state.h" #include "state.h"
/// Begin a Dot graph. /** Begin a Dot graph.
/// \param fout output stream. *
* \param fout output stream.
*/
void start_graph (FILE *fout); void start_graph (FILE *fout);
/// Output a Dot node. /** Output a Dot node.
/// \param id identifier of the node *
/// \param label human readable label of the node (no Dot escaping needed). * \param id identifier of the node
/// \param fout output stream. * \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); void output_node (int id, char const *label, FILE *fout);
/// Output a Dot edge. /** Output a Dot edge.
/// \param source id of the source node * \param source id of the source node
/// \param destination id of the target node * \param destination id of the target node
/// \param label human readable label of the edge * \param label human readable label of the edge
/// (no Dot escaping needed). Can be 0. * (no Dot escaping needed). Can be 0.
/// \param style Dot style of the edge (e.g., "dotted" or "solid"). * \param style Dot style of the edge (e.g., "dotted" or "solid").
/// \param fout output stream. * \param fout output stream.
*/
void output_edge (int source, int destination, char const *label, void output_edge (int source, int destination, char const *label,
char const *style, FILE *fout); char const *style, FILE *fout);
/// Output a reduction. /** Output a reduction.
/// \param s current state * \param s current state
/// \param reds the set of reductions * \param reds the set of reductions
/// \param fout output stream. * \param fout output stream.
*/
void output_red (state const *s, reductions const *reds, FILE *fout); void output_red (state const *s, reductions const *reds, FILE *fout);
/// End a Dot graph. /** End a Dot graph.
/// \param fout output stream. *
* \param fout output stream.
*/
void finish_graph (FILE *fout); void finish_graph (FILE *fout);
/// Escape a lookahead token. /** Escape a lookahead token.
/// \param name the token. *
* \param name the token.
*/
char const *escape (char const *name); char const *escape (char const *name);
#endif /* ! GRAPHVIZ_H_ */ #endif /* ! GRAPHVIZ_H_ */

View File

@@ -758,8 +758,8 @@ ielr_compute_state (bitsetv follow_kernel_items, bitsetv always_follows,
if (!bitset_empty_p (lookaheads[i])) if (!bitset_empty_p (lookaheads[i]))
break; break;
} }
// bitset_equal_p uses the size of the first argument, so /* bitset_equal_p uses the size of the first argument,
// lookaheads[i] must be the second argument. so lookaheads[i] must be the second argument. */
else if (!bitset_equal_p ((*this_isocorep)->lookaheads[i], else if (!bitset_equal_p ((*this_isocorep)->lookaheads[i],
lookaheads[i])) lookaheads[i]))
break; break;
@@ -1187,8 +1187,8 @@ ielr (void)
free (to_state); free (to_state);
if (lr_type == LR_TYPE__CANONICAL_LR) if (lr_type == LR_TYPE__CANONICAL_LR)
{ {
// Reduction lookaheads are computed in ielr_split_states above but are /* Reduction lookaheads are computed in ielr_split_states above
// timed as part of phase 4. but are timed as part of phase 4. */
set_goto_map (); set_goto_map ();
} }
else else

View File

@@ -883,7 +883,7 @@ unexpected_end (boundary start, char const *msgid, char const *token_end)
loc.start = start; loc.start = start;
loc.end = scanner_cursor; loc.end = scanner_cursor;
token_end = quote (token_end); token_end = quote (token_end);
// Instead of '\'', display "'". /* Instead of '\'', display "'". */
if (!strcmp (token_end, "'\\''")) if (!strcmp (token_end, "'\\''"))
token_end = "\"'\""; token_end = "\"'\"";
complain_at (loc, _(msgid), token_end); complain_at (loc, _(msgid), token_end);

View File

@@ -51,7 +51,7 @@
typedef size_t uintptr_t; typedef size_t uintptr_t;
# endif # endif
// Version mismatch. /* Version mismatch. */
# define EX_MISMATCH 63 # define EX_MISMATCH 63
/*---------. /*---------.

View File

@@ -90,7 +90,7 @@ AT_DATA_GRAMMAR([[input.y]],
%code %code
{ {
# include <stdio.h> # include <stdio.h>
# include <stdlib.h> // getenv # include <stdlib.h> /* getenv */
]AT_YYERROR_DECLARE[ ]AT_YYERROR_DECLARE[
]AT_YYLEX_DECLARE[ ]AT_YYLEX_DECLARE[
} }
@@ -195,7 +195,7 @@ AT_DATA_GRAMMAR([[input.y]],
%code %code
{ {
# include <stdio.h> # include <stdio.h>
# include <stdlib.h> // getenv # include <stdlib.h> /* getenv */
]AT_YYERROR_DECLARE[ ]AT_YYERROR_DECLARE[
]AT_YYLEX_DECLARE[ ]AT_YYLEX_DECLARE[
} }
@@ -223,6 +223,7 @@ main (void)
TEST(7, 2, 0, 2); TEST(7, 2, 0, 2);
TEST(8, 0, 8, 0); TEST(8, 0, 8, 0);
return 0;
} }
]]) ]])

View File

@@ -195,10 +195,11 @@ yylex (void)
int int
main (int argc, char **argv) main (int argc, char **argv)
{ {
int res;
input = stdin; input = stdin;
if (argc == 2 && !(input = fopen (argv[1], "r"))) if (argc == 2 && !(input = fopen (argv[1], "r")))
return 3; return 3;
int res = yyparse (); res = yyparse ();
if (argc == 2 && fclose (input)) if (argc == 2 && fclose (input))
return 4; return 4;
return res; return res;
@@ -327,10 +328,11 @@ int yylex (void)
int int
main(int argc, char* argv[]) main(int argc, char* argv[])
{ {
int res;
input = stdin; input = stdin;
if (argc == 2 && !(input = fopen (argv[1], "r"))) if (argc == 2 && !(input = fopen (argv[1], "r")))
return 3; return 3;
int res = yyparse (); res = yyparse ();
if (argc == 2 && fclose (input)) if (argc == 2 && fclose (input))
return 4; return 4;
return res; return res;