X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/1853982561f87a729024577156def20433035946..42a0c7760be7a61729369ba657a3894c9b1d907f:/ChangeLog

diff --git a/ChangeLog b/ChangeLog
index 555795ba..2b91be7b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,420 @@
+2000-10-02  Paul Eggert  <eggert@twinsun.com>
+
+	* bison.s1 (yyparse): Assign the default value
+	unconditionally, to avoid a GCC warning and make the parser a
+	tad smaller.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/getargs.c (getargs): Don't dump `--help' on unrecognized
+	options.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/derives.c, src/print.c, src/reduce.c: To ease the
+	translation, move some `\n' out of the translated strings.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	The location tracking mechanism is precious for parse error
+	messages.  Nevertheless, it is enabled only when `@n' is used in
+	the grammar, which is a different issue (you can use it in error
+	message, but not in the grammar per se).  Therefore, there should
+	be another means to enable it.
+
+	* src/getargs.c (getargs): Support `--locations'.
+	(usage): Report it.
+	* src/getargs.h (locationsflag): Export it.
+	* src/lex.c (percent_table): Support `%locations'.
+	* src/reader.c (yylsp_needed): Remove this variable, now replaced
+	with `locationsflag'.
+	* doc/bison.texinfo: Document `--locations' and `%locations'.
+	Sort the options.
+	* tests/calc.m4: Test it.
+
+	For regularity of the names, replace each
+	(nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
+	(no_lineflag, token_tableflag, rawflag, no_parserflag): this.
+	In addition replace each `flag' with `_flag'.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	Also test parse error messages, including with YYERROR_VERBOSE.
+
+	* tests/calc.m4 (calc.y): Add support for `exp = exp' (non
+	associative).
+	Use it to check the computations.
+	Use it to check `nonassoc' is honored.
+	(AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
+	`--yyerror-verbose'.
+	(_AT_CHECK_CALC): Adjust to this option.
+	(_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	Test also `--verbose', `--defines' and `--name-prefix'.  Testing
+	the latter demonstrates a flaw in the handling of non debugging
+	parsers introduced by myself on 2000-03-16: `#define yydebug 0'
+	was used in order to simplify:
+
+	#if YYDEBUG
+	if (yydebug)
+	{
+	...
+	}
+	#endif
+
+	into
+
+	if (yydebug)
+	{
+	...
+	}
+
+	unfortunately this leads to a CPP conflict when
+	`--name-prefix=foo' is used since it produces `#define yydebug
+	foodebug'.
+
+	* src/bison.s1 [!YYDEBUG]: Do not define yydebug.
+	(YYDPRINTF): New macro.
+	Spread its use.
+	* tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
+	the bison options.
+	Also test `--verbose', `--defines' and `--name-prefix'.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	Improve the readability of the produced parsers.
+
+	* src/bison.s1: Formatting changes.
+	Improve the comment related to the `$' mark.
+	(yydefault): Don't fall through to `yyresume': `goto' there.
+	* src/output.c (output_parser): When the `$' is met, skip the end
+	of its line.
+	New variable, `number_of_dollar_signs', to check there's exactly
+	one `$' in the parser skeleton.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* lib/xstrdup.c: New file, from the fileutils.
+	* src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
+	(parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
+	instead of strlen + xmalloc + strcpy.
+	* src/symtab.c (copys): Remove, use xstrdup instead.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/gram.h (associativity): New enum type which replaces the
+	former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
+	`right_assoc', `left_assoc' and `non_assoc'.
+	Adjust all dependencies.
+	* src/reader.c: Formatting changes.
+	(LTYPESTR): Don't define it, use it as a literal in
+	`reader_output_yylsp'.
+	* src/symtab.h (symbol_class): New enum type which replaces the
+	former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
+	`sunknown', `stoken and `snterm'.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/getargs.c (fixed_outfiles): Rename as...
+	(yaccflag): for consistency and accuracy.
+	Adjust dependencies.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	Use the more standard files `xalloc.h' and `xmalloc.c' instead of
+	Bison's `allocate.c' and `alloc.h'.  This patch was surprisingly
+	difficult and introduced a lot of core dump.  It turns out that
+	Bison used an implementation of `xmalloc' based on `calloc', and
+	at various places it does depend upon the initialization to 0.  I
+	have not tried to isolate the pertinent places, and all the former
+	calls to Bison's `xmalloc' are now using `XCALLOC'.  Someday,
+	someone should address this issue.
+
+	* src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
+	* lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
+	files.
+	Adjust dependencies.
+	* src/warshall.h: New file.
+	Propagate.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	Various anti-`extern in *.c' changes.
+
+	* src/system.h: Include `assert.h'.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/state.h (nstates, final_state, first_state, first_shift)
+	(first_reduction): Move their exportation from here...
+	* src/LR0.h: to here.
+	Adjust dependencies.
+	* src/getargs.c (statisticsflag): New variable.
+	Add support for `--statistics'.
+	Adjust dependencies.
+
+	Remove a lot of now useless `extern' statements in most files.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/LR0.h: New file.
+	Propagate its use.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/print.h: New file.
+	Propagate its use.
+	* src/print.c: Formatting and ordering changes.
+	(verbose, terse): Replace with...
+	(print_results): this new function.
+	Adjust dependencies.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/conflicts.c (conflict_report): New function.
+	(conflict_log, verbose_conflict_log): Replace with...
+	(print_conflicts): this function.
+	Adjust dependencies.
+	* src/conflicts.h: New file.
+	Propagate its inclusion.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/nullable.h: New file.
+	Propagate its inclusion.
+	* src/nullable.c: Formatting changes.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/reduce.h: New file.
+	Propagate its inclusion.
+	* src/reduce.c: Topological sort and other formatting changes.
+	(bool, TRUE, FALSE): Move their definition to...
+	* src/system.h: here.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/files.c: Formatting changes.
+	(tryopen, tryclose, openfiles): Rename as...
+	(xfopen, xfclose, open_files): this.
+	(stringappend): static.
+	* src/files.h: Complete the list of exported symbols.
+	Propagate its use.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/reader.h: New file.
+	Propagate its use instead of tedious list of `extern' and
+	prototypes.
+	* src/reader.c: Formatting changes, topological sort,
+	s/register//.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/lex.h: Prototype `lex.c' exported functions.
+	* src/reader.c: Adjust.
+	* src/lex.c: Formatting changes.
+	(safegetc): Rename as...
+	(xgetc): this.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/lalr.h: New file.
+	Propagate its inclusion instead of prototypes and `extern'.
+	* src/lalr.c: Formatting changes, topological sorting etc.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/output.c (token_actions): Introduce a temporary array,
+	YYDEFACT, that makes it possible for this function to use
+	output_short_table.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	`user_toknums' is output as a `short[]' in `output.c', while it is
+	defined as a `int[]' in `reader.c'.  For consistency with the
+	other output tables, `user_toknums' is now defined as a table of
+	shorts.
+
+	* src/reader.c (user_toknums): Be a short table instead of an int
+	table.
+	Adjust dependencies.
+
+	Factor the short table outputs.
+
+	* src/output.c (output_short_table): New function.
+	* src/output.c (output_gram, output_stos, output_rule_data)
+	(output_base, output_table, output_check):  Use it.
+
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
+	* src/output.c (output): Topological sort of the functions, in
+	order to get rid of the `static' prototypes.
+	No longer use `register'.
+	* src/output.h: New file.
+	Propagate its inclusion in files explicitly prototyping functions
+	from output.c.
+
+2000-09-21  Akim Demaille  <akim@epita.fr>
+
+	* src/atgeneral.m4: Update from Autoconf.
+
+2000-09-21  Akim Demaille  <akim@epita.fr>
+
+	* src/closure.h: New file.
+	* src/closure.c: Formatting changes, topological sort over the
+	functions, use of closure.h.
+	(initialize_closure, finalize_closure):  Rename as...
+	(new_closure, free_closure): these.  Adjust dependencies.
+	* src/LR0.c: Formatting changes, topological sort, use of
+	cloture.h.
+	(initialize_states): Rename as...
+	(new_states): this.
+	* src/Makefile.am (noinst_HEADERS): Adjust.
+
+2000-09-20  Akim Demaille  <akim@epita.fr>
+
+	* src/acconfig.h: Don't protect config.h against multiple
+	inclusion.
+	Don't define PARAMS.
+	* src/system.h: Define PARAMS.
+	Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
+	purpose of config.h.  system.h must not try to fix wrong
+	definitions in config.h.
+
+2000-09-20  Akim Demaille  <akim@epita.fr>
+
+	* src/derives.h: New file.
+	* src/main.c, src/derives.h: Use it.
+	Formatting changes.
+	* src/Makefile.am (noinst_HEADERS): Adjust.
+
+2000-09-20  Akim Demaille  <akim@epita.fr>
+
+	* tests/atgeneral.m4: Update from Autoconf.
+	* tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
+	(AT_CHECK_CALC): New macros.
+	Use these macros to test bison with options `', `--raw',
+	`--debug', `--yacc', `--yacc --debug'.
+
+2000-09-19  Akim Demaille  <akim@epita.fr>
+
+	* src/output.c: Formatting changes.
+	* src/machine.h: Remove, leaving its contents in...
+	* src/system.h: here.
+	Include stdio.h.
+	Adjust all dependencies on stdio.h and machine.h.
+	* src/getargs.h: New file.
+	Let all `extern' declarations about getargs.c be replaced with
+	inclusion of `getargs.h'.
+	* src/Makefile.am (noinst_HEADERS): Adjust.
+
+	* tests/calc.m4 (yyin): Be initialized in main, not on the global
+	scope.
+	(yyerror): Returns void, not int.
+	* doc/bison.texinfo: Formatting changes.
+
+2000-09-19  Akim Demaille  <akim@epita.fr>
+
+	* tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
+	portable.
+
+2000-09-18  Akim Demaille  <akim@epita.fr>
+
+	* configure.in: Append WARNING_CFLAGS to CFLAGS.
+	* src/Makefile.am (INCLUDES): Don't.
+	Be ready to fetch headers in lib/.
+
+2000-09-18  Akim Demaille  <akim@epita.fr>
+
+	* doc/bison.texinfo: Update the copyright.
+	ANSIfy and GNUify the examples.
+	Remove the old menu.
+
+2000-09-18  Akim Demaille  <akim@epita.fr>
+
+	First set of tests: use the `calc' example from the documentation.
+
+	* src/bison.s1 (yyparse): Condition the code using `yytname' which
+	is defined only when YYDEBUG is.
+	* m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
+	* src/files.c (tryopen, tryclose): Formatting changes.
+	Move to the top and be static.
+	* src/reader.c (read_signed_integer): Likewise.
+	* tests/calc.m4: New file.
+	* Makefile.am, suite.m4: Adjust.
+	* m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
+
+2000-09-18  Akim Demaille  <akim@epita.fr>
+
+	Add support for an Autotest test suite for Bison.
+
+	* m4/m4.m4, m4/atconfig.m4: New files.
+	* m4/Makefile.am (EXTRA_DIST): Adjust.
+	* tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
+	files.
+	* src/getargs.c: Display a more standard --version message.
+	* src/reader.c (reader): Formatting changes.
+	No longer depend upon VERSION_STRING.
+	* configure.in: No longer use `dnl'.
+	Set up the test suite and the new directory `tests/.
+	(VERSION_STRING): Remove.
+
+2000-04-14  Akim Demaille  <akim@epita.fr>
+
+	* src/reader.c (copy_comment2): New function, same as former
+	`copy_comment', but outputs into two FILE *.
+	(copy_comment): Use it.
+	(parse_union_decl): Use it.
+	(get_type, parse_start_decl): Use the same `invalid' message.
+	(parse_start_decl, parse_union_decl): Use the same `multiple'
+	message.
+	(parse_union_decl, copy_guard, copy_action): Use the same
+	`unmatched' message.
+	* m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
+
+2000-03-31  Akim Demaille  <akim@epita.fr>
+
+	* src/files.c (tryopen, tryclose): Move to the top.
+	Be static.
+
+2000-03-31  Akim Demaille  <akim@epita.fr>
+
+	* src/main.c (main): Don't call `done', exit does it.
+
+2000-03-31  Akim Demaille  <akim@epita.fr>
+
+	* allocate.c: s/return (foo)/return foo/.
+	* lalr.c: Likewise.
+	* LR0.c: Likewise.
+	* output.c: Likewise.
+	* reader.c: Likewise.
+	* symtab.c: Likewise.
+	* vmsgetargs.c: Likewise.
+
+2000-03-31  Akim Demaille  <akim@epita.fr>
+
+	Clean up the error reporting functions.
+
+	* src/report.c: New file.
+	* src/report.h: Likewise.
+	* src/Makefile.am: Adjust.
+	* m4/error.m4: New file.
+	* m4/Makefile.am: Adjust.
+	* configure.in (jm_PREREQ_ERROR): Call it.
+	* src/main.c (int_to_string, banner, fatal_banner, warn_banner):
+	Remove.
+	(fatal, fatals): Remove.  All callers use complain.c::fatal.
+	(warn, warni, warns, warnss, warnss): Remove.  All callers use
+	complain.c::complain.
+	(toomany): Remove, use fatal instead.
+	* src/files.c (done): No argument, use complain_message_count.
+	* src/main.c (main): Register `done' to `atexit'.
+
+	* src/getargs.c (usage): More `fputs', less `fprintf'.
+
 2000-03-28  Akim Demaille  <akim@epita.fr>
 
 	* lib/: New directory.