Commit Graph

2556 Commits

Author SHA1 Message Date
Paul Eggert
f9315de5a4 * data/glr.c (yyresolveValue): Fix redundant parse tree problem
reported by Joel E. Denny in
<http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00004.html>
(trivial change).
* tests/glr-regression.at (Duplicate representation of merged trees):
New test, from Joel E. Denny in:
<http://lists.gnu.org/archive/html/help-bison/2005-07/msg00013.html>.
* THANKS: Add Joel E. Denny.
2005-08-21 23:43:56 +00:00
Paul Eggert
1fb38e78c2 (AC_INIT): Bump to 2.0c. 2005-08-21 22:39:21 +00:00
Paul Eggert
ca5d201376 * Makefile.am (SUBDIRS): Put examples before tests, so that
"make check" doesn't finish with "All 1 tests passed".
2005-07-25 06:45:32 +00:00
Paul Eggert
3d54b57635 * tests/regression.at (Token definitions): Don't rely on
AT_PARSER_CHECK for data that contains backslashes.  It currently
uses 'echo', and 'echo' isn't portable if its argument contains
backslashes.  Problem found on OpenBSD 3.4.  Also, do not assume
that the byte '\0xff' is not printable in the C locale; it is,
under OpenBSD 3.4 (!).  Luckily, '\0x80' through '\0x9e' are
not printable, so use '\0x81' to test.
2005-07-25 06:36:13 +00:00
Paul Eggert
d53ae497dc * data/glr.c (YYOPTIONAL_LOC): Define even if it's not a recent
version of GCC, since the macro is used with non-GCC compilers.
2005-07-25 04:20:55 +00:00
Paul Eggert
3bc00d6c4b (YYOPTIONAL_LOC): Define even if it's not a recent
version of GCC, since the macro is used with non-GCC compilers.
2005-07-25 04:20:39 +00:00
Paul Eggert
e0045d49b6 Regenerate. 2005-07-25 03:41:34 +00:00
Paul Eggert
fc01665ea5 Fix core dump reported by Pablo De Napoli in
<http://lists.gnu.org/archive/html/bug-bison/2005-07/msg00053.html>.
* tests/regression.at (Invalid inputs with {}): New test.
* src/parse-gram.y (token_name): Translate type before using
it as an index.
2005-07-25 03:38:42 +00:00
Paul Eggert
57beea5776 Update copyright. 2005-07-25 03:12:53 +00:00
Paul Eggert
5f3df3960e Regenerate. 2005-07-24 07:26:45 +00:00
Paul Eggert
040984073a * 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.
2005-07-24 07:24:22 +00:00
Paul Eggert
135bc829bd (ATTRIBUTE_UNUSED): Remove, since it infringes on
the user's name space.  All uses changed to __attribute__
((__unused__)).
(yyFail, yyMemoryExhausted, yyreportAmbiguity):
Add __attribute__ ((__noreturn__)).
2005-07-24 07:17:06 +00:00
Paul Eggert
f938a7e7b8 (message): Don't print a message more than once,
and omit line-number decoration that makes Emacs compile think
that informative messages are worth worrying about.
2005-07-23 17:06:41 +00:00
Paul Eggert
f38b17c9bf (SUBDIRS): Add examples; somehow this got removed accidentally. 2005-07-22 23:02:50 +00:00
Paul Eggert
aacbb77a75 Update copyright. 2005-07-22 22:32:03 +00:00
Paul Eggert
89519adfbe * lib/bitset.c (bitset_alloc): Don't cast xcalloc result.
* lib/bitset_stats.c (bitset_stats_init): Likewise.
* lib/bitsetv.c (bitsetv_alloc): Likewise.
2005-07-22 22:30:13 +00:00
Paul Eggert
26a69b31fa (relation_transpose): Rewrite to avoid bogus complaint
from maintainer-distcheck about casting the argument of 'free'.
2005-07-22 21:56:20 +00:00
Paul Eggert
a9401edbf5 Add *.yy. 2005-07-22 21:46:02 +00:00
Paul Eggert
b3d0c7a208 Mention lib/xalloc-die.c, not lib/xmalloc.c. 2005-07-22 21:44:03 +00:00
Paul Eggert
1d0737fa58 Version 2.0b. 2005-07-22 21:26:26 +00:00
Paul Eggert
1eeda0abd5 Add Anthony Heading, twlevo@xs4all.nl. 2005-07-22 21:20:58 +00:00
Paul Eggert
4ff8b7f7c9 For translations that have not yet been upgraded to
the new runtime-po domain, prime the pump by extracting the
relevant strings from the obsolete translations.  This code can be
removed once the bison-runtime domain has been translated by each
team.
2005-07-22 18:35:27 +00:00
Paul Eggert
6d07bacfc0 (<SC_PRE_CODE>.): Don't double-quote token names,
now that token names are already quoted.
2005-07-22 17:58:51 +00:00
Paul Eggert
141f57937b * data/glr.c (YYTOKEN_TABLE): New macro.
(yytname): Define if YYTOKEN_TABLE.
* data/yacc.c (YYTOKEN_TABLE, yytname): Likewise.
* data/lalr1.cc (YYTOKEN_TABLE, yytname_): Likewise.
(YYERROR_VERBOSE): Define the same way the other skeletons do.
* src/output.c (prepare_symbols): Output token_table_flag.
2005-07-22 17:07:31 +00:00
Paul Eggert
0ffda36340 Catch up to last couple of days' checkins. 2005-07-22 04:56:35 +00:00
Paul Eggert
3922956abd (yyinitGLRStack, yyreturn): Don't call malloc again if the first call
fails.
2005-07-22 04:56:14 +00:00
Paul Eggert
9cbfdc9e01 Regenerate. 2005-07-21 20:55:33 +00:00
Paul Eggert
9e0876fb0c * data/glr.c (yytnamerr): New function.
(yyreportSyntaxError): Use it to dequote most string literals.
* data/lalr1.c (yytname_): Renamed from yyname_, for compatibility
with other skeletons.  All uses changed.
(yytnameerr_): New function.
(yyreport_syntax_error): Use it to dequote most string literals.
* data/yacc.c (yytnamerr): New function.
(yyerrlab): Use it to decode most string literals.
* doc/bison.texinfo (Decl Summary, Calling Convention):
Clarify quoting convention of yytname.
* src/output.c (prepare_symbols): Quote all names.  This undoes
the 2005-04-17 change, which is now accomplished (mostly) via
changes in the parsers as described above.
* tests/regression.at (Token definitions, Web2c Actions):
Undo most 2005-04-17 change here, too.
2005-07-21 20:53:03 +00:00
Paul Eggert
49b1cf794d Don't pipe output of ./types through sed to
remove trailing spaces.  This loses the exit status of ./types,
and isn't needed since ./types shouldn't be emitting trailing
spaces.
2005-07-20 22:01:47 +00:00
Paul Eggert
6fdb09caac (yyreturn): Don't pop stack if yyinitStateSet failed,
as the stack isn't valid in that case.
2005-07-20 21:43:32 +00:00
Paul Eggert
dc9701e848 * src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
(gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
(gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
Add declarations to pacify "gcc -Wmissing-prototypes" when flex 2.5.31
is used.
* src/scan-skel.l (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):
Likewise.
2005-07-20 21:23:35 +00:00
Paul Eggert
802b9687d0 (_AT_TEST_GLR_CXXTYPES): Work even with
overly-picky compilers that reject 'char *foo = "bar";'.
2005-07-20 21:19:40 +00:00
Paul Eggert
ab703f2c9b (SYMBOL_ATTR_PRINT, symbol_print): Direct output
to FILE * parameter, not to stderr.
2005-07-20 21:17:04 +00:00
Paul Eggert
0fab8d7b36 (create_subpipe): Rewrite slightly to avoid warnings from GCC 4. 2005-07-20 21:12:54 +00:00
Paul Eggert
df9a1ba4de (yyexpandGLRStack, yyaddDeferredAction, yyexpandGLRStack):
(yyglrShiftDefer, yysplitStack):
Remove unused parameters b4_pure_formals.  All uses changed.
(yyglrShift): Remove unused parameters b4_user_formals.
All uses changed.
(yyglrReduce): Removed unused parameter yylocp.  All uses changed.
2005-07-20 21:06:26 +00:00
Paul Eggert
d11e0cfa89 Regenerate. 2005-07-19 07:10:32 +00:00
Paul Eggert
258b75caaa Destructor cleanups and regularization among the three skeletons.
* NEWS: Document the behavior changes.
* data/glr.c (yyrecoverSyntaxError): Don't bother to pop the
stack before failing, as the cleanup code will do it for us now.
* data/lalr1.cc (yyerrlab): Likewise.
* data/glr.c (yyparse): Pop everything off the stack before
freeing it, so that destructors get called properly.
* data/lalr1.cc (yyreturn): Likewise.
* data/yacc.c (yyreturn): Pop and destroy the start symbol, too.
This is more consistent.
* doc/bison.texinfo (Destructor Decl): Mention more reasons
why destructors might be called.  1.875 -> 2.1.
(Destructor Decl, Decl Summary, Table of Symbols):
Some English-language cleanups for %destructor.
* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
Add output line for destructor of start symbol.
* tests/calc.at (AT_CHECK_CALC): Add one to line counts,
because of that same extra output line.
2005-07-19 06:56:44 +00:00
Paul Eggert
6088a2a04d Regenerate. 2005-07-19 03:38:13 +00:00
Paul Eggert
4cf31ef8e7 (_AT_TEST_GLR_CXXTYPES): Don't try to have yyerror return 0, now that
it returns void.
2005-07-19 03:32:40 +00:00
Paul Eggert
1a05945136 * NEWS: Document minor wording changes in diagnostics of
Bison-generated parsers.
* data/glr.c (yyMemoryExhausted): Renamed from yyStackOverflow.
Remove unused formals.  All uses changed.
(yyreportAmbiguity): "ambiguity detected" -> "syntax is ambiguous".
(yyparse): Rename yyoverflowlab to yyexhaustedlab.
* data/yacc.c (yyparse): "parser stack overflow" -> "memory exhausted".
Rename yyoverflowab to yyexhaustedlab.
When memory exhaustion occurs during syntax-error reporting,
report it separately rather than in a single diagnostic; this
eases translation.
* doc/bison.texinfo (Memory Management): Renamed from Stack Overflow.
(Memory Exhausted): Renamed from Parser Stack Overflow.
Revamp wording slightly to prefer "memory exhaustion".
* tests/actions.at: "parser stack overflow" -> "memory exhausted".
2005-07-19 00:05:57 +00:00
Paul Eggert
a778f668a1 Add bison-runtime.pot; remove bison-runtime.old.pot. 2005-07-18 22:25:54 +00:00
Paul Eggert
8c27717915 Add Makefile.in.in. 2005-07-18 22:22:49 +00:00
Paul Eggert
97460c7864 * data/c.m4 (b4_yysymprint_generate): Use YYFPRINTF, not fprintf. 2005-07-18 22:16:44 +00:00
Paul Eggert
9662b51284 Update copyright. 2005-07-18 22:14:15 +00:00
Paul Eggert
30757c8c93 Add i18n support to the GLR skeleton. Partially fix the C++
skeleton; a C++ expert needs to finish this.  Remove debugging
msgids; there's little point to having them translated, since they
can be understood only by someone who can read the
(English-language) source code.

Generate runtime-po/bison-runtime.pot automatically, so that we
don't have to worry about garbage getting in that file.  We'll
make sure after the next official release that old msgids don't
get lost.  See
<http://lists.gnu.org/archive/html/bison-patches/2005-07/msg00119.html>.

* runtime-po/Makefile.in.in, runtime-po/bison-runtime.pot: Remove.
Now auto-generated.
* PACKAGING: Don't claim that Gawk, GCC, Perl use this method yet.
Fix typos in explanations of the runtime file.
* bootstrap: Change gettext keyword from YYI18N to YY_.
Use standard Makefile.in.in in runtime-po, since we'll arrange
for backward-compatible bison-runtime.po files in a different way.
* data/glr.c (YY_): New macro, from yacc.c.
(yyuserAction, yyreportAmbiguity, yyreportSyntaxError, yyparse):
Translate messages intended for users.
(yyreportSyntaxError): Change "virtual memory" to "memory" to match
the wording in the other skeletons.  We don't know that the memory
is virtual.
* data/lalr1.cc (YY_): Renamed from _.  All uses changed.
Use same method that yacc.c uses.
Don't translate debugging messages.
(yy::yyreport_syntax_error): Put in a FIXME for the i18n stuff;
it doesn't work (yet), and requires C++ expertise to fix.
* data/yacc.c (YY_): Renamed from YY18N.  All uses changed.
Move defn to a more logical place, to be consistent with other
skeletons.
Don't translate debugging messages.
Don't assume line numbers fit in unsigned int; use unsigned long fmts.
* doc/bison.texinfo: Mention <libintl.h>.  Change glibc cross reference
to gettext cross reference.  Add indexing terms.  Mention YYENABLE_NLS.
* runtime-po/POTFILES.in: Add data/glr.c, data/lalr1.cc.
2005-07-18 22:10:15 +00:00
Paul Eggert
ac8c5689f8 Fix yyerror / yylex test glitches noted by twlevo@xs4all.nl.
* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Have yyerror return
void, not int.
* tests/glr-regression.at (Badly Collapsed GLR States):
Likewise.
(Improper handling of embedded actions and dollar(-N) in GLR parsers):
yylex should return 0 at EOF rather than aborting.
2005-07-18 18:39:01 +00:00
Paul Eggert
6100a9aa2e Improve tests for stack overflow in GLR parser.
Problem reported by twlevo@xs4all.nl.
* data/glr.c (struct yyGLRStack): Remove yyerrflag member.
All uses removed.
(yyStackOverflow): Just longjmp, but with value 2 so that caller
can handle the problem.
(YYCHK1): Use goto (a la yacc.c) rather than setting a flag.
(yyparse): New local variable yyresult to record the result.
Use result of setjmp to set it, rather than storing itinto
struct.
(yyDone): Remove label.
(yyacceptlab, yyabortlab, yyoverflowlab, yyreturn): New labels,
to mimic yacc.c.  Do not discard lookahead if it's EOF (possible
if YYABORT is used).
* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Exit with
yyparse status; put status > 1 into diagnostic.
Check that status==2 works.
* tests/calc.at, tests/cxx-type.at, tests/glr-regression.at:
Use exit status 3 for failure to open (which shouldn't happen).
2005-07-18 18:09:40 +00:00
Paul Eggert
67fd79c427 * tests/conflicts.at (%nonassoc and eof): Don't exit with status
1 on syntax error; just let yyparse do its thing.
* tests/glr-regression.at (Badly Collapsed GLR States): Likewise.
* tests/torture.at (AT_DATA_STACK_TORTURE): Likewise.
(Exploding the Stack Size with Alloca):
(Exploding the Stack Size with Malloc):
Expect exit status 2, not 1, since the parser is supposed to blow
its stack.  Problem reported by twlevo@xs4all.nl.
2005-07-18 06:14:16 +00:00
Paul Eggert
15f40952f7 * data/glr.c (yyparse): Don't assume that the initial calls
to YYMALLOC succeed; in that case, yyparse incorrectly returned 0.
Print a stack-overflow message and fail instead.
Initialize the line-number information before creating the stack,
so that the stack-overflow message can report line zero safely.
2005-07-17 07:30:38 +00:00
Paul Eggert
c70fdfcd20 More changes to pacify C++ compilers. 2005-07-14 23:57:45 +00:00