mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 20:33:03 +00:00
* 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:
@@ -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
|
||||
|
||||
## ------------ ##
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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])
|
||||
|
||||
@@ -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 ();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user