* NEWS: Version 2.0b.

* data/glr.c (ATTRIBUTE_UNUSED): Remove, since it infringes on
the user's name space.  All uses changed to __attribute__
((__unused__)).
(yyFail, yyMemoryExhausted, yyreportAmbiguity):
Add __attribute__ ((__noreturn__)).

* etc/clcommit: Remove.  We weren't using it, and it failed
"make maintainer-distcheck".
* Makefile.maint: Merge from coreutils.
(CVS_LIST, CVS_LIST_EXCEPT): New macros.
(syntax-check-rules): Change list of rules as described below.
(sc_cast_of_alloca_return_value, sc_dd_max_sym_length):
(sc_file_system, sc_obsolete_symbols, sc_prohibit_atoi_atof):
(sc_prohibit_jm_in_m4, sc_root_tests, sc_tight_scope):
(sc_trailing_space): New rules.
(sc_xalloc_h_in_src): Remove.
(sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value):
(sc_space_tab, sc_error_exit_success, sc_changelog):
(sc_system_h_headers, sc_sun_os_names, sc_unmarked_diagnostics):
(makefile-check, po-check, author_mark_check):
(makefile_path_separator_check, copyright-check):
Use grep -n, to make it easier to find violations.
Use CVS_LIST and CVS_LIST_EXCEPT.
(header_regexp, h_re): Remove.
(dd_c): New macro.
(sc_dd_max_sym_length, .re-list, news-date-check): New rules.
(my-distcheck): Use more-modern GCC flags.
(signatures, %.asc): Remove.
(rel-files, announcement): Remove signatures.
Restore old updating code, even though we don't use it, so
that we're the same as coreutils.
(alpha, beta, major): Depend on news-date-check.
Make the upload commands.

* data/c.m4, data/lalr1.cc, data/yacc.c: Normalize white space.
* lib/abitset.h, lib/bbitset.h, lib/bitset.h: Likewise.
* lib/bitset_stats.c, lib/ebitset.h, lib/lbitset.c: Likewise.
* lib/libitset.h, lib/timevar.c, lib/vbitset.h: Likewise.
* src/Makefile.am, src/gram.c, src/muscle_tab.h: Likewise.
* src/parse-gram.y, src/system.h, src/tables.c, src/vcg.c: Likewise.
* src/vcg_defaults.h, tests/cxx-type.at, tests/existing.at: Likewise.
* tests/sets.at: Likewise.

* data/m4sugar/m4sugar.m4: Sync from Autoconf, except that
we comment out the Autoconf version number.
* doc/bison.texinfo (Calc++ Scanner): Don't use atoi, as
it's error-prone and "make maintainer-distcheck" rejects it.

* lib/subpipe.c: Include <fcntl.h> without checking for HAVE_FCNTL_H.
Indent calls to "error" to pacify "make maintainer-distcheck",
when the calls are not intended to be translated.
* m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't check for fcntl.h.

* src/Makefile.am (DEFS): Use +=, to pacify
"make maintainer-distcheck".
(bison_SOURCES): Add scan-skel.h.
(sc_tight_scope): New rule, from coreutils.

* src/files.c (src_extension, header_extension):
Now static, not extern.
* src/getargs.c (short_options): Likewise.
* src/muscle_tab.c (muscle_table): Likewise.
* src/parse-gram.y (current_class, current_type, current_prec):
Likewise.
* src/reader.c (grammar_end, previous_rule_end): Likewise.
* src/getargs.h: Redo comments to pacify "make maintainer-distcheck".
* src/main.c (main): Cast bindtextdomain and textdomain calls to
void, to avoid warning when NLS is disabled.
* src/output.c: Include scan-skel.h.
(scan_skel): Remove decl, since scan-skel.h does this.
(output_skeleton):
Indent calls to "error" to pacify "make maintainer-distcheck".
* src/print_graph.c: Don't include <obstack.h>, as system.h does this.
* src/reader.h (gram_end, gram_lineno): New decls to pacify
"make maintainer-distcheck".
* src/scan-skel.l (skel_lex, skel_get_lineno, skel_get_in):
(skel_get_out, skel_get_leng, skel_get_text, skel_set_lineno):
(skel_set_in, skel_set_out, skel_get_debug, skel_set_debug):
(skel_lex_destroy, scan_skel): Move these decls to...
* src/scan-skel.h: New file.
* src/uniqstr.c (uniqstr_assert):
Indent calls to "error" to pacify "make maintainer-distcheck".

* tests/Makefile.am ($(srcdir)/package.m4): Use $(VAR),
not @VAR@.

* tests/torture.at: Revamp to avoid misuse of atoi that
"make maintainer-distcheck" complained about.
This commit is contained in:
Paul Eggert
2005-07-24 07:24:22 +00:00
parent 135bc829bd
commit 040984073a
46 changed files with 1008 additions and 1026 deletions

View File

@@ -32,11 +32,11 @@ MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
$(srcdir)/package.m4: $(top_srcdir)/configure.ac
{ \
echo '# Signature of the current package.'; \
echo 'm4_define([AT_PACKAGE_NAME], [@PACKAGE_NAME@])'; \
echo 'm4_define([AT_PACKAGE_TARNAME], [@PACKAGE_TARNAME@])'; \
echo 'm4_define([AT_PACKAGE_VERSION], [@PACKAGE_VERSION@])'; \
echo 'm4_define([AT_PACKAGE_STRING], [@PACKAGE_STRING@])'; \
echo 'm4_define([AT_PACKAGE_BUGREPORT], [@PACKAGE_BUGREPORT@])'; \
echo 'm4_define([AT_PACKAGE_NAME], [$(PACKAGE_NAME)])'; \
echo 'm4_define([AT_PACKAGE_TARNAME], [$(PACKAGE_TARNAME)])'; \
echo 'm4_define([AT_PACKAGE_VERSION], [$(PACKAGE_VERSION)])'; \
echo 'm4_define([AT_PACKAGE_STRING], [$(PACKAGE_STRING)])'; \
echo 'm4_define([AT_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])'; \
} >$(srcdir)/package.m4
## ------------ ##

View File

@@ -83,7 +83,7 @@ prog :
stmt : expr ';' $2 { $$ = ]$[1; }
| decl $3
| error ';' { static char error_msg[] = "<error>"; $$ = error_msg; }
| '@' { YYACCEPT; }
| '@' { YYACCEPT; }
;
expr : ID
@@ -145,7 +145,7 @@ yylex (LEX_PARAMETERS)
break;
case ' ': case '\f':
colNum += 1;
break;
break;
case '\n':
lineNum += 1;
colNum = 0;

View File

@@ -408,7 +408,7 @@ AT_DATA([[input.y]],
HBEGPAR HENDPAR
HEQR HNER
HADD HSUB HMUL HDIV HINTDIV HEXP
HDOTDOTDOT
HDOTDOTDOT
%token <ident> HIDENTIFIER
%token <ival> HBOOLEANKONST HINTEGERKONST HCHARACTERKONST
@@ -450,7 +450,7 @@ AT_DATA([[input.y]],
MAIN_MODULE : { categ=CLOCAL; mout(MBLOCK);
beginBlock(KBLOKK);separat_comp=FALSE;}
MODULS { endBlock(NULL,CCNO); mout(MENDBLOCK);}
| error HSTATEMENTSEPARATOR MBEE_DECLSTMS
| error HSTATEMENTSEPARATOR MBEE_DECLSTMS
;
EXT_DECLARATION : HEXTERNAL
MBEE_TYPE
@@ -548,7 +548,7 @@ MBEE_ELSE_PART : /*EMPT*/
/* | HELSE
HIF
EXPRESSION
HTHEN { mout(MELSE);
HTHEN { mout(MELSE);
mout(MIF);
OBSBLOCK();}
BLOCK { MBEEENDBLOCK();}
@@ -588,7 +588,7 @@ WHEN_CLAUSE_LIST: HWHEN
HIDENTIFIER
HDO { beginBlock(KCON); mout(MIDENTIFIER);
OBSBLOCK(); moutId($2);
mout(MWHEN);}
mout(MWHEN);}
BLOCK { endBlock(NULL,CCNO);
MBEEENDBLOCK(); mout(MENDWHEN);}
| WHEN_CLAUSE_LIST
@@ -596,7 +596,7 @@ WHEN_CLAUSE_LIST: HWHEN
HIDENTIFIER
HDO { beginBlock(KCON); mout(MIDENTIFIER);
OBSBLOCK(); moutId($3);
mout(MWHEN);}
mout(MWHEN);}
BLOCK { endBlock(NULL,CCNO);
MBEEENDBLOCK(); mout(MENDWHEN);}
;
@@ -645,8 +645,8 @@ MODULSTATEMENT : HWHILE
HDO { STOPOBSBLOCK(); mout(MWHILE);
OBSBLOCK();}
BLOCK { MBEEENDBLOCK(); mout(MENDWHILE);
$$=STATEMENT;}
| HIF
$$=STATEMENT;}
| HIF
EXPRESSION
HTHEN { STOPOBSBLOCK(); mout(MIF);
OBSBLOCK();}
@@ -709,7 +709,7 @@ MODULSTATEMENT : HWHILE
{ STOPOBSBLOCK(); $$=STATEMENT;
mout(MENDASSIGN);}
| ACTIVATOR EXPRESSION SCHEDULE
{ $$=STATEMENT;
{ $$=STATEMENT;
mout(MENDSEP);
mout(MARGUMENTSEP);
mout(MARGUMENTSEP);
@@ -836,10 +836,10 @@ MBEE_DECLSTMSU : DECLSTATEMENT { $$=$1;}
MODULS : MODULSTATEMENT { if($1==DECLARATION)
{separat_comp=TRUE;gettimestamp();}
$$=$1;}
| MODULS HSTATEMENTSEPARATOR MODULSTATEMENT
| MODULS HSTATEMENTSEPARATOR MODULSTATEMENT
{ if($1>=STATEMENT && $3<=DECLARATION)
yerror (26);else
if($1>=STATEMENT
if($1>=STATEMENT
&& $3!=EMPTYSTATEMENT)yerror (25);
if(separat_comp && $3==STATEMENT)
yerror (25);
@@ -939,7 +939,7 @@ FPP_CATEG : HNAME HLABELSEPARATOR
;
FPP_PROC_DECL_IN_SPEC: MBEE_TYPE HPROCEDURE
HIDENTIFIER
{ $<ival>$=categ;
{ $<ival>$=categ;
regDecl($3, type, KPROC, categ);
beginBlock(KPROC);}
FPP_HEADING
@@ -1008,7 +1008,7 @@ SPECIFIER : TYPE { kind=KSIMPLE;}
;
PROC_DECL_IN_SPEC: MBEE_TYPE HPROCEDURE
HIDENTIFIER
{ $<ival>$=categ;
{ $<ival>$=categ;
regDecl($3, type, KPROC, categ);
beginBlock(KPROC);}
HEADING
@@ -1292,7 +1292,7 @@ AT_DATA([[input.y]],
%token AND
%token HERE
%token DOT_N
%token DOT_E
%token DOT_E
%token DOT_W
%token DOT_S
%token DOT_NE
@@ -1378,7 +1378,7 @@ parses properly. */
%left CHOP SOLID DASHED DOTTED UP DOWN FILL COLORED OUTLINED
%left LABEL
%left VARIABLE NUMBER '(' SIN COS ATAN2 LOG EXP SQRT K_MAX K_MIN INT RAND SRAND LAST
%left VARIABLE NUMBER '(' SIN COS ATAN2 LOG EXP SQRT K_MAX K_MIN INT RAND SRAND LAST
%left ORDINAL HERE '`'
%left BOX CIRCLE ELLIPSE ARC LINE ARROW SPLINE '[' /* ] */
@@ -1518,7 +1518,7 @@ placeless_element:
}
| COPY TEXT THRU
{ delim_flag = 2; }
DELIMITED
DELIMITED
{ delim_flag = 0; }
until
{
@@ -1542,13 +1542,13 @@ placeless_element:
a_delete $6;
}
| FOR VARIABLE '=' expr TO expr optional_by DO
{ delim_flag = 1; }
{ delim_flag = 1; }
DELIMITED
{
{
delim_flag = 0;
if (yychar < 0)
do_lookahead();
do_for($2, $4, $6, $7.is_multiplicative, $7.val, $10);
do_for($2, $4, $6, $7.is_multiplicative, $7.val, $10);
}
| simple_if
{
@@ -1617,7 +1617,7 @@ print_args:
;
print_arg:
expr %prec ','
expr %prec ','
{
$$.str = new char[GDIGITS + 1];
sprintf($$.str, "%g", $1);
@@ -1652,14 +1652,14 @@ until:
| UNTIL TEXT
{ $$ = $2.str; }
;
any_expr:
expr
{ $$ = $1; }
| text_expr
{ $$ = $1; }
;
text_expr:
text EQUALEQUAL text
{
@@ -1831,7 +1831,7 @@ object_spec:
$3.filename, $3.lineno);
a_delete $3.str;
}
| '['
| '['
{
saved_state *p = new saved_state;
$<pstate>$ = p;
@@ -2014,7 +2014,7 @@ object_spec:
$$->segment_pos.y += $3.y;
}
| object_spec THEN
{
{
$$ = $1;
if ($$->flags & HAS_SEGMENT) {
$$->segment_list = new segment($$->segment_pos,
@@ -2088,7 +2088,7 @@ object_spec:
strcpy($$->outlined, $3.str);
}
| object_spec CHOP
{
{
$$ = $1;
// line chop chop means line chop 0 chop 0
if ($$->flags & IS_DEFAULT_CHOPPED) {
@@ -2258,10 +2258,10 @@ sprintf_args:
;
position:
position_not_place
position_not_place
{ $$ = $1; }
| place
{
{
position pos = $1;
$$.x = pos.x;
$$.y = pos.y;
@@ -2377,7 +2377,7 @@ ordinal:
optional_ordinal_last:
LAST
{ $$ = 1; }
| ordinal LAST
| ordinal LAST
{ $$ = $1; }
;
@@ -2416,7 +2416,7 @@ nth_primitive:
object_type:
BOX
{ $$ = BOX_OBJECT; }
{ $$ = BOX_OBJECT; }
| CIRCLE
{ $$ = CIRCLE_OBJECT; }
| ELLIPSE
@@ -2436,7 +2436,7 @@ object_type:
;
label_path:
'.' LABEL
'.' LABEL
{ $$ = new path($2); }
| label_path '.' LABEL
{
@@ -2450,7 +2450,7 @@ relative_path:
{ $$ = new path($1); }
/* give this a lower precedence than LEFT and RIGHT so that
[A: box] with .A left == [A: box] with (.A left) */
| label_path %prec TEXT
| label_path %prec TEXT
{ $$ = $1; }
| label_path corner
{
@@ -2497,7 +2497,7 @@ path:
corner:
DOT_N
{ $$ = &object::north; }
| DOT_E
| DOT_E
{ $$ = &object::east; }
| DOT_W
{ $$ = &object::west; }
@@ -2517,7 +2517,7 @@ corner:
{ $$ = &object::start; }
| DOT_END
{ $$ = &object::end; }
| TOP
| TOP
{ $$ = &object::north; }
| BOTTOM
{ $$ = &object::south; }
@@ -2573,12 +2573,12 @@ expr:
| NUMBER
{ $$ = $1; }
| place DOT_X
{
{
if ($1.obj != 0)
$$ = $1.obj->origin().x;
else
$$ = $1.x;
}
}
| place DOT_Y
{
if ($1.obj != 0)

View File

@@ -1,5 +1,5 @@
# Exercising Bison Grammar Sets. -*- Autotest -*-
# Copyright (C) 2001, 2002 Free Software Foundation, Inc.
# Copyright (C) 2001, 2002, 2005 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
@@ -29,25 +29,25 @@ m4_define([AT_EXTRACT_SETS],
:null
p
n
/^[ ]*$/ !b null
/^[ ]*$/ !b null
}
/^FIRSTS$/ {
:firsts
p
n
/^[ ]*$/ !b firsts
/^[ ]*$/ !b firsts
}
/^FDERIVES$/ {
:fderiv
p
n
/^[ ]*$/ !b fderiv
/^[ ]*$/ !b fderiv
}
/^DERIVES$/ {
:deriv
p
n
/^[ ]*$/ !b deriv
/^[ ]*$/ !b deriv
}
]])
AT_CHECK([sed -f extract.sed $1], 0, [stdout])

View File

@@ -388,6 +388,8 @@ m4_define([AT_DATA_STACK_TORTURE],
# exp:
AT_DATA([input.y],
[[%{
#include <errno.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
]$1[
@@ -406,9 +408,6 @@ yyerror (const char *msg)
fprintf (stderr, "%s\n", msg);
}
/* There are YYLVAL_MAX of WAIT_FOR_EOFs. */
unsigned int yylval_max;
static int
yylex (void)
{
@@ -421,9 +420,14 @@ yylex (void)
int
main (int argc, const char **argv)
{
char *endp;
if (argc != 2)
abort ();
yylval = atoi (argv[1]);
yylval = strtol (argv[1], &endp, 10);
if (! (argv[1] != endp
&& 0 <= yylval && yylval <= INT_MAX
&& errno != ERANGE))
abort ();
yydebug = 1;
return yyparse ();
}