1998-01-04  J.J. van der Heijden  <J.J.vanderHeijden@student.utwente.nl>

	* src/files.c (openfiles) [_WIN32 && !__CYGWIN32__]: Use TEMP or
	Temp to find a temporary directory, if possible.  Do not unlink
	files while they are open.

1997-08-25  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* src/reader.c (stack_offset;): Change some warni to warns.

	* src/lex.c (literalchar): Use warns, not warni.

1997-06-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* src/bison.simple: Add a Bison version comment.

	* Makefile.in (bison_version): New variable.
	(dist): Use that variable.
	(bison.s1): Substitute the Bison version into bison.simple.

	* src/main.c (fatal, warn, berror): Use program_name.

1997-06-18  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* Makefile.in: new.h renamed to alloc.h.
	* src/*.c: src/new.h renamed to src/alloc.h.

	* src/alloc.h: Renamed from src/new.h.

1997-06-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* src/main.c (fatal, warn, berror): Make error messages standard.
	(toomany): Improve error message text.

1997-05-24  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* src/lex.c (literalchar): Fix the code for escaping \, " and '.

1997-05-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* src/lex.c (lex): Avoid trouble when there are many chars
	to discard in a char literal with just several chars in it.

1997-05-17  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* src/bison.simple: Use malloc, if using alloca is troublesome.
	(YYSTACK_USE_ALLOCA): New flag macro.
	Define it for some systems and compilers.
	(YYSTACK_ALLOC): New macro.
	(yyparse): Use YYSTACK_ALLOC to allocate stack.
	If it was malloc'd, free it.

1997-05-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* src/bison.simple [_AIX]: Don't include malloc.h.

1997-04-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* src/bison.simple (alloca) [__hpux]: Always define as
	__builtin_alloca.

1997-04-22  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* src/bison.simple (__yy_memcpy): Declare arg `count' as unsigned
	int.
	(yyparse): Cast third arg to __yy_memcpy to unsigned int.

	* src/bison.simple (alloca) [__hpux]: Include alloca.h (right for
	HPUX 10) instead of declaring alloca (right for HPUX 9).

1997-01-02  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>

	* src/allocate.c [__STDC__ or _MSC_VER]:
	Declare calloc and realloc to return void *.

	* Makefile.in (dist): Explicitly check for symlinks, and copy them.

1996-12-17  Paul Eggert  <eggert@twinsun.com>

	* src/bison.simple (yyparse): If __GNUC__ and YYPARSE_PARAM are
	both defined, declare yyparse to have a void * argument.

1996-12-17  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* src/system.h [_MSC_VER]: Include stdlib.h and process.h.
	[_MSC_VER] (getpid): Define as macro--translate it to _getpid.

	* src/reduce.c (nbits): Add some casts.

	* src/main.c (main): Return FAILURE as a value.
	(printable_version): Declare arg as int, not char.

	* src/files.c [_MSC_VER] (XPFILE, XPFILE1): Define, if not already
	defined.

1996-12-16  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* src/main.c (printable_version): Use type `int' for the arg.

1996-08-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* src/bison.simple: Test _MSDOS as well as _MSDOS_.

1996-07-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* src/bison.simple [__sun && __i386]: Include alloca.h.

1996-07-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* src/bison.simple: Test _MSDOS_, not MSDOS.

1996-06-01  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>

	* All files: Insert `_' macro around many string constants.

	* src/system.h [HAVE_LOCALE_H]: Include locale.h.
	[! HAVE_LOCALE_H] (setlocale): Define as no-op.
	[ENABLE_NLS]: Include libintl.h.
	[ENABLE_NLS] (gettext): Define.
	[! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
	(N_, PACKAGE, LOCALEDIR): New macros.

	* src/main.c (main): Call setlocale, bindtextdomain and textdomain.

	* POTFILES.in: New file.

	* Makefile.in (allocate.o): Define target explicitly.

1996-06-01  Jim Meyering  <meyering@na-net.ornl.gov>

	* Makefile.in (CFLAGS): Set to @CFLAGS@.
	(LDFLAGS): Set to @LDFLAGS@.
	(configure): Run autoconf only if preceding `cd' succeeds.
	(src/bison.s1): Redirect output to temporary file then move the
	temporary to the target, rather than redirecting directly to
	src/bison.s1.
	(clean): Remove config.status and config.log.
	(distclean): Don't remove config.status here.

1996-05-12  Jim Meyering  <meyering@na-net.ornl.gov>

	* src/bison.simple (__yy_memcpy) [__cplusplus]: Reorder declarations
 	of variables f and t.

1996-05-11  Richard Stallman  <rms@delasyd.gnu.ai.mit.edu>

	* Version 1.25 released.

	* Makefile.in (dist): Don't use $(srcdir).

	* src/bison.simple (__yy_memcpy): Really reorder the args, as was
	supposedly done on Feb 14 1995.
	(yyparse): Calls changed accordingly.

1996-01-24  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/output.c (output_rule_data): Test YYERROR_VERBOSE in the
	conditional around the definition of ttyname.

1995-12-28  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple: Fix line numbers in #line commands.

1995-12-24  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple (YYPARSE_PARAM_DECL): In C++, make it always
	null.
	(YYPARSE_PARAM_ARG): New macro.
	(yyparse): Use YYPARSE_PARAM_ARG.

1995-10-15  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/version.c: Version now 1.25.

	* src/main.c (warn): Set `failure'.

1995-08-01   Wilfred J. Hansen  <wjh+@cmu.edu>

	* src/bison.cld, src/getargs.c, src/vmsgetargs.c: Added -n, -k,
	and -raw switches.
	(noparserflag, toknumflag, rawtoknumflag): New variables.

	* src/conflicts.c (resolve_sr_conflict): Remove use of alloca.

	* src/files.c (openfiles, open_extra_files, done):  Add faction flag
	and actfile file.  Handle noparserflag.  Both for -n switch.

	* src/lex.c: Include getopt.h.  Add some extern decls.
	(safegetc): New function to deal with EOF gracefully.
	(literalchar); new function to deal with reading \ escapes.
	(lex): Use literalchar.
	(lex): Implemented "..." tokens.
	(literalchar, lex, parse_percent_token): Made tokenbuffer
	always contain the token.  This includes growing the token
	buffer while reading an integer.
	(parse_percent_token): Replaced if-else statement with percent_table.
	(parse_percent_token): Added % declarations as another
	way to specify the flags -n, -l, and -r.  Also added hooks for
	-d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
	major changes to src/files.c.
	(lex) Retain in the incoming stream a character following
	an incorrect '/'.
	(skip_white_space, lex):  Revised most error messages
	and changed fatal to warn to avoid aborting.
	(percent_table):  Added %thong declarations.

	* src/lex.h: Added THONG and NOOP for alias processing.
	Added SETOPT for the new code that allows setting options with %flags.

	* src/main.c (main): If reader sees an error, don't process the
	grammar.
	(fatals): Updated to not use VARARGS1.
	(printable_version, int_to_string, warn, warni, warns, warnss)
	(warnsss): New error reporting functions.  Avoid abort for error.

	* src/output.c (output_headers, output_trailers, output, output_gram)
	(output_rule_data): Implement noparserflag variable.
	Implement toknumflag variable.
	(output): Call reader_output_yylsp to output LTYPESTR.

	* src/reader.c (reader_output_yylsp): New function.
	(readgram): Use `#if 0' around code that accepted %command inside
	grammar rules: The documentation doesn't allow it, and it will
	fail since the %command processors scan for the next %.
	(parse_token_decl): Extended the %token declaration to allow a
	multi-character symbol as an alias.
	(parse_thong_decl): New function.
	(read_declarations): Added %thong declarations.
	(read_declarations): Handle NOOP to deal with allowing %
	declarations as another means to specify the flags.
	(readgram): Allow %prec prior to semantics embedded in a rule.
	(skip_to_char, read_declarations, copy_definition)
	(parse_token_decl, parse_start_decl, parse_type_decl)
	(parse_assoc_decl, parse_union_decl, parse_expect_decl)
	(get_type_name, copy_guard, copy_action, readgram)
	(get_type, packsymbols): Revised most error messages.  Changed
	`fatal' to `warnxxx' to avoid aborting for error.  Revised and use
	multiple warnxxx functions to avoid using VARARGS1.
	(read_declarations): Improve the error message for an invalid
	character.  Do not abort.
	(read_declarations, copy_guard, copy_action): Use
	printable_version to avoid unprintable characters in printed
	output.
	(parse_expect_decl): Error if argument to %expect exceeds 10
	digits.
	(parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
	Allow the type of a non-terminal can be given more than once, as
	long as all specifications give the same type.

	* src/reduce.c (reduce_grammar): Revise an error message.
	(print_notices): Remove final `.' from error message.

	* src/symtab.h (SALIAS): New #define for adding aliases to %token.
	(struct bucket): Added `alias' field.

1995-05-03  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple: Change distribution terms.

	* src/version.c: Version now 1.23.  No, 1.24.

1995-02-23  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/files.c: Test __VMS_POSIX as well as VMS.

1995-02-14  Jim Meyering <meyering@comco.com>

	* src/bison.simple (__yy_memcpy): Renamed from __yy_bcopy to avoid
	confusion.  Reverse FROM and TO arguments to be consistent with
	those of memcpy.

1994-11-10  David J. MacKenzie  <djm@duality.gnu.ai.mit.edu>

	* Makefile.in (DISTFILES): Include install-sh, not install.sh.
	Include NEWS.

	* configure.in: Update to Autoconf v2 macro names.

1994-10-04  David J. MacKenzie  <djm@duality.gnu.ai.mit.edu>

	* Makefile.in (prefix, exec_prefix): Let configure set them.

1994-09-28  David J. MacKenzie  <djm@duality.gnu.ai.mit.edu>

	* Makefile.in: Set datadir to $(prefix)/share.

1994-07-12  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/reader.c (reader): Rename undefined-token token to
	`$undefined.'.

1994-05-05  David J. MacKenzie  <djm@nutrimat.gnu.ai.mit.edu>

	* Makefile.in (DISTFILES): Add install.sh.
	(install): Remove chmod commands.

1994-03-26  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple: Fix #line commands.

1994-03-24  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/conflicts.c (print_reductions): Increment both fp1 and fp2
	while printing reductions in multi-rule case.

1994-01-02  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in (LDFLAGS): Make it empty by default.
	(bison): Use CFLAGS.

1993-11-21  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple (YYLEX): Take notice of YYLEX_PARAM.

1993-10-18  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple (YYPARSE_PARAM_DECL): Always define this.

1993-10-14  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple (yyparse): Support YYPARSE_PARAM.

1993-09-13  Noah Friedman  <friedman@nutrimat.gnu.ai.mit.edu>

	* Makefile.in (check): New target.

1993-09-10  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/conflicts.c (alloca): #undef before defining.

	* src/system.h (bcopy): Don't define if already defined.

1993-09-06  Noah Friedman  <friedman@nutrimat.gnu.ai.mit.edu>

	* Version 1.22 released.

	* mkinstalldirs: New file.

	* Makefile.in (dist): Use .gz for extension, not .z.
	(DISTFILES): New variable.
	(dist): Use it instead of explicit file list.
	Try to link each file separately, then copy file if ln fails.
	(installdirs): Use mkinstalldirs script.

1993-07-29  David J. MacKenzie  <djm@wookumz.gnu.ai.mit.edu>

	* Makefile.in (config.status): Run config.status --recheck, not
	configure, to get the right args passed.

1993-07-24  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple (yyparse): Init yychar1 to avoid warning.

1993-07-04  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple (yyparse): Don't set yyval when yylen is 0.

1993-06-26  David J. MacKenzie  <djm@wookumz.gnu.ai.mit.edu>

	* src/getargs.c (getargs): Exit after printing the version number.
	Add --help and -h options.
	(usage): New function.

1993-06-25  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/getargs.c (longopts): Allow `output' as an alternative.

1993-06-16  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple (yyparse): Conditionalize the entire call to
	yyoverflow, not just two arguments in it.

1993-06-03  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple [__hpux] (alloca): Don't specify arg types.

1993-05-07  Noah Friedman  <friedman@nutrimat.gnu.ai.mit.edu>

	* Makefile.in (install): Depend on `uninstall' and `installdirs'.
	(installdirs): New target.

1993-04-28  Noah Friedman  <friedman@nutrimat.gnu.ai.mit.edu>

	* src/reader.c:  Remove declaration of atoi.

1993-04-23  Noah Friedman  <friedman@nutrimat.gnu.ai.mit.edu>

	* src/new.h [!__STDC__] (FREE): Check x != 0.
	Make expr to call `free' evaluate to 0.

1993-04-20  David J. MacKenzie  <djm@kropotkin.gnu.ai.mit.edu>

	* src/files.c [MSDOS]: Use xmalloc, not malloc.
	* src/allocate.c (xmalloc): Renamed from mallocate.  Remove old
	wrapper.
	* src/conflicts.c, src/symtab.c, src/files.c, src/LR0.c,
	src/new.h: Change callers.
	* src/allocate.c (xrealloc): New function.
	* src/new.h: Declare it.
	* src/lex.c, src/reader.c: Use it.

1993-04-18  Noah Friedman  <friedman@nutrimat.gnu.ai.mit.edu>

	* Version 1.21 released.

	* src/reader.c : Don't declare `realloc'.

	* Makefile.in (bison.s1): use `rm -f' since it's quieter.
	(dist): make gzipped tar file.

1993-04-16  Noah Friedman  <friedman@nutrimat.gnu.ai.mit.edu>

	* Makefile.in (Makefile, config.status, configure): New targets.

1993-04-15  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/main.c: Don't declare `abort'.

	* src/files.c: Don't declare `exit'.

1993-04-15  Noah Friedman  <friedman@nutrimat.gnu.ai.mit.edu>

	* configure.in: Add AC_CONST.

1993-04-14  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in (all): Depend on bison.s1.

1993-04-13  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Version 1.20 released.

1993-03-24  Richard Stallman  <rms@wookumz.gnu.ai.mit.edu>

	* src/output.c (output_headers): Rename yynerrs if -p.

1993-03-18  Noah Friedman  <friedman@nutrimat.gnu.ai.mit.edu>

	* src/system.h: Don't try to include stdlib.h unless HAVE_STDLIB_H
	is defined.

	* configure.in: Check for stdlib.h.

1993-03-17  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple [__hpux, not __GNUC__]: Declare alloca.
	(yyparse): When printing the expected token types for an error,
	Avoid negative indexes in yycheck and yytname.

1993-03-13  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in (files.o, .c.o): Put CPPFLAGS and CFLAGS last.

1993-03-01  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple: Test __sgi like __sparc.

1993-02-17  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/conflicts.c (resolve_sr_conflict): Add extra parens in
	alloca call.

	* src/bison.simple [__GNUC__] (yyparse): Declare with prototype.

1993-01-15  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/conflicts.c (print_reduction): Near end, increment fp2 when
	mask recycles.

1993-01-13  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in (bison.s1): New target.  Modifies bison.simple.
	(install): Install bison.s1, without changing it.
	(clean): Delete bison.s1.

1993-01-04  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/reader.c (reader): Put Bison version in comment in output
	file.

1992-12-22  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/files.c (openfiles): Use .output, not .out, for outfile,
	regardless of spec_name_prefix.

1992-12-15  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/output.c (output_gram): Include yyrhs in the same #if as
	yyprhs.

1992-12-15  Noah Friedman  <friedman@nutrimat.gnu.ai.mit.edu>

	* src/output.c (output): output directives checking for
	__cplusplus as well as __STDC__ to determine when to define
	"const" as an empty token.  (Patch from Wolfgang Glunz
	<wogl@sun11a.zfe.siemens.de>)

1992-12-08  David J. MacKenzie  <djm@kropotkin.gnu.ai.mit.edu>

	* src/system.h, src/conflicts.c: Replace USG with HAVE_STRING_H
	and HAVE_MEMORY_H.

1992-11-21  David J. MacKenzie  <djm@goldman.gnu.ai.mit.edu>

	* Makefile.in: Set and use $(MAKEINFO).

1992-11-20  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/files.c (done) [MSDOS]: Delete the tmpdefsfile with the
	rest.

1992-10-08  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in (dist): Put configure.bat in the distribution.

1992-10-01  David J. MacKenzie  <djm@goldman.gnu.ai.mit.edu>

	* Makefile.in (install): cd to $(srcdir) before installing info
	files.

1992-09-30  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in (files.o): Supply $(DEFS), and $(CPPFLAGS).

1992-09-25  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Version 1.19 released.

	* src/reader.c (parse_union_decl): Fix ending of C++ comment;
	don't lose the char after the newline.

	* configure.bat: New file.

1992-09-24  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/conflicts.c: Check for using alloca.h as getopt.c does.

1992-09-06  Karl Berry  <karl@hayley>

	* src/files.c (openfiles): open `fdefines' after we have assigned
	a name to `tmpdefsfile', and only if `definesflag' is set.
	(done): only create the real .tab.h file if `definesflag' is set.
	* src/reader.c (packsymbols): don't close `fdefines' here.

1992-09-05  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/files.c (openfiles): Open fdefines as temp file, like
	ftable.
	(done): Copy temp defines file to real one, like main output file.

1992-08-21  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in (dist): Don't release mergedir.awk
	(install): Use sed, not awk.  Don't depend on mergedir.awk.
	* mergedir.awk: File effectively deleted.

1992-07-29  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple: Test __sparc along with __sparc__.

1992-07-11  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/lex.c (skip_white_space): Count \n just once at end of c++
	comment.

1992-06-26  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple: Comment fix; #line command updated.

1992-06-24  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in (install): Specify full new file name for the
	executable.

1992-06-22  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in (dist): Include bison.rnh in distribution.

Sun Jun 21 22:42:13 1992 Eric Youngdale <youngdale@v6550c.nrl.navy.mil>

	Clean up rough edges in VMS port of bison, add support for
	remaining command line options.

	* src/bison.cld: Add /version, /yacc, /file_prefix, and
	/name_prefix switches.

	* src/build.com: General cleanup: add logic to automatically sense
	which C compiler is present; add code to cwd to the directory that
	contains bison sources; do not define XPFILE, XPFILE1
	(correct defaults are applied in src/file.c).

	* src/files.c: Append _tab, not .tab when using /file_prefix under
	VMS.

	* src/system.h: Include string.h instead of strings.h (a la USG).

	* src/vmsgetargs.c: Add support for all switches added to
	src/bison.cld.

1992-06-21  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in (install): Always specify new file name for install.
	Redirect awk output to temp file and install that.

1992-05-27  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple (yyparse): Make yybackup and yyerrlab1 always
	be used.

1992-05-22  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in (dist): Depend on bison.info
	(bison.info): Delete spurious <.

1992-05-17  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in (.c.o): New rule.  Use $(DEFS) directly.
	(CFLAGS): Use just -g by default.
	(CDEBUG): Variable deleted.

1992-05-07  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/reader.c (copy_guard): Fix typo skipping comment.

1992-05-04  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Version 1.18.

	* src/getargs.c (getargs): Change '0' to 0 in case for long
	options.

1992-04-19  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/reader.c (packsymbols): Handle -p when declaring yylval.

1992-04-18  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/output.c (output_gram): Output #endif properly at end of
	decl.

1992-03-30  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Version 1.17.

	* Makefile.in (clean): Don't delete configuration files or TAGS.
	(distclean): New target; do delete those.

1992-03-28  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/output.c (output_gram): Conditionalize yyprhs on YYDEBUG.

	* src/LR0.c (augment_automaton): If copying sp->shifts to insert
	new shift, handle case of inserting at end.

1992-03-21  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/lex.c (skip_white_space): Handle C++ comments.
	* src/reader.c (copy_definition, parse_union_decl, copy_guard):
	(copy_action): Likewise.

1992-03-08  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple (YYPOPSTACK): Fix typo.

1992-02-29  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in (install): Install bison.info* files one by one.

1992-02-28  David J. MacKenzie  <djm@wookumz.gnu.ai.mit.edu>

	* src/bison.1: Document long options as starting with `--', not
	`+'.

1992-02-01  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/getargs.c (getargs): Accept value 0 from getopt_long.

1992-01-30  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in (mostlyclean): Renamed from `clean'.
	(clean): Renamed from 'distclean'.  Dep on mostlyclean, not
	realclean.
	(realclean): Dep on clean.

1992-01-27  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple: Use malloc, not xmalloc, and handle failure
	explicitly.

1992-01-26  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/conflicts.c (total_conflicts): Delete unused arg to fprintf.

1992-01-21  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Version 1.16.

1992-01-06  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile (distclean): Depend on clean, not realclean.  Don't rm
	TAGS.
	(realclean): rm TAGS here.

	* src/symtab.c (free_symtab): Don't free the type names.

1991-12-29  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/machine.h: MSDOS has 32-bit ints if __GO32__.

1991-12-25  David J. MacKenzie  <djm@wookumz.gnu.ai.mit.edu>

	* src/bison.simple [_AIX]: Indent `#pragma alloca', so old C
	compilers don't choke on it.

1991-12-23  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/getopt.c, src/getopt1.c, src/getopt.h: Link them to standard
	source location.
	* src/alloca.c: Likewise.
	* Makefile.in (dist): Copy those files from current dir.

	* src/getargs.c: Update usage message.

	* src/LR0.c (augment_automaton): Put new shift in proper order.

1991-12-20  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/conflicts.c: Use memcpy if ANSI C library.

	* src/closure.c (set_fderives): Delete redundant assignment to
	vrow.

	* src/closure.c (print_firsts): Fix bounds and offset checking
	tags.

	* src/closure.c (tags): Declare just once at start of file.

	* src/LR0.c (allocate_itemsets): Eliminate unused var max.
	(augment_automaton): Test sp is non-null.

	* src/lalr.c (initialize_LA): Make the vectors at least 1 element
	long.

	* src/reader.c (readgram): Remove separate YYSTYPE default for
	MSDOS.

1991-12-18  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/print.c (print_grammar): Don't print disabled rules.

1991-12-17  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/lex.c (lex): Parse hex escapes properly.
	Handle \v when filling token_buffer.

	* src/lex.c: Include new.h.
	(token_buffer): Change to a pointer.
	(init_lex): Allocate initial buffer.
	(grow_token_buffer): New function.
	(lex, parse_percent_token): Use that.

	* src/reader.c (read_declarations): Call open_extra_files just
	once.
	(parse_token_decl): Don't free previous typename value.  Don't
	increment nvars if symbol is already a nonterminal.
	(parse_union_decl): Catch unmatched close-brace.
	(parse_expect_decl): Null-terminate buffer.
	(copy_guard): Set brace_flag for {, not for }.

	* src/reader.c: Fix %% in calls to fatal.

	* src/reader.c (token_buffer): Just one extern decl, at top level.
	Declare as pointer.

	* src/symtab.c (free_symtab): Free type_name fields.  Free symtab
	itself.

1991-11-25  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple: Handle alloca for AIX.

	* Makefile.in (mandir): Compute default using manext.

1991-11-02  David J. MacKenzie  <djm@wookumz.gnu.ai.mit.edu>

	* Update all files to GPL version 2.

1991-09-06  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple (__yy_bcopy): Use builtin if GCC version 2.

1991-08-26  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/reader.c (parse_assoc_decl): Error if same symbol gets two
	precs.

1991-08-26  David J. MacKenzie  <djm@pogo.gnu.ai.mit.edu>

	* Makefile.in, configure: Only put $< in Makefile if using VPATH,
	because older makes don't understand it.

1991-08-23  David J. MacKenzie  <djm@apple-gunkies>

	* src/conflicts.c [_AIX]: #pragma alloca.
	* src/reduce.c: Don't define TRUE and FALSE if already defined.

1991-08-12  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile.in: Add deps on system.h.
	(install): Add some deps.

1991-08-02  David J. MacKenzie  <djm@apple-gunkies>

	* Makefile.in (dist): Include texinfo.tex.

	* configure: Create config.status.  Remove it and Makefile if
	interrupted while creating them.

1991-08-01  David J. MacKenzie  <djm@apple-gunkies>

	* configure: Check for +srcdir etc. arg and look for
	Makefile.in in that directory.  Set VPATH if srcdir is not `.'.
	* Makefile.in (prefix): Renamed from DESTDIR.

1991-07-31  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/print.c (print_grammar): Make output prettier.  Break lines.

1991-07-30  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/print.c (print_grammar): New function.
	(verbose): Call it instead of printing token names here.

1991-07-22  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/vmsgetargs.c (spec_name_prefix, spec_file_prefix): Define
	variables.

1991-07-10  David J. MacKenzie  <djm@wookumz.gnu.ai.mit.edu>

	* configure, Makefile.in: $(INSTALLPROG) -> $(INSTALL),
	$(INSTALLTEXT) -> $(INSTALLDATA).

1991-07-09  David J. MacKenzie  <djm@wookumz.gnu.ai.mit.edu>

	* src/bison.simple: Don't include malloc.h if __TURBOC__.

1991-07-06  David J. MacKenzie  <djm@geech.gnu.ai.mit.edu>

	* Replace Makefile with configure and Makefile.in.  Update README
	with current compilation instructions.

1991-07-01  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/reader.c (reader): Make the output define YYBISON.

1991-06-20  David J. MacKenzie  <djm@geech.gnu.ai.mit.edu>

	* Makefile (MANDIR, MANEXT): Install man page in
	/usr/local/man/man1/bison.1 by default, instead of
	/usr/man/manl/bison.l, for consistency with other GNU programs.
	* Makefile: Rename BINDIR et al. to lowercase to conform to
	GNU coding standards.
	(install): Make man page non-executable.

1991-05-31  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile (bison.info): New target.
	(realclean): New target.

1991-05-02  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/bison.simple: Use YYPRINT to print a token, if it's defined.

1991-04-29  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/lalr.c (transpose): Rename R to R_arg.
	(initialize_LA): Avoid shadowing variable j.

	* src/reader.c (packsymbols): Avoid shadowing variable i.

	* src/files.c: Declare exit and perror.

	* src/machine.h: Define MAXSHORT and MINSHORT for the eta-10.

1991-04-02  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* src/allocate.c (mallocate): Always allocate at least one byte.

1991-03-19  Richard Stallman  <rms@mole.gnu.ai.mit.edu>

	* Makefile (dist): Put alloca.c into distribution.

1991-03-06  Richard Stallman  <rms@mole.ai.mit.edu>

	* src/print.c (print_actions): Nicer output for final states.

1991-02-21  Richard Stallman  <rms@mole.ai.mit.edu>

	* src/output.c (output_rule_data): Break lines in yytline based on
	hpos.

1991-02-07  Richard Stallman  <rms@mole.ai.mit.edu>

	* src/bison.simple (yyparse): Move decl of yylsa before use.

1991-01-15  Richard Stallman  <rms@mole.ai.mit.edu>

	* Version 1.14.

	* src/output.c (output_rule_data): Handle NULL in tags[i].

1991-01-11  Richard Stallman  <rms@mole.ai.mit.edu>

	* src/bison.simple: On MSDOS, include malloc.h.

1990-12-29  David J. MacKenzie  <djm@wookumz.ai.mit.edu>

	* src/files.c: Use `mallocate' instead of `xmalloc' so no extra
	decl is needed.

1990-12-19  Richard Stallman  <rms@mole.ai.mit.edu>

	* src/reader.c (readgram): Alternate YYSTYPE defn for MSDOS.
	* src/files.c [MSDOS]: Declare xmalloc.

1990-12-13  Richard Stallman  <rms@mole.ai.mit.edu>

	* src/output.c (output_rule_data): Put all symbols in yytname.

	* src/bison.simple (yyparse): Delete extra fprintf arg
	when printing a result of reduction.

1990-12-10  Richard Stallman  <rms@mole.ai.mit.edu>

	* src/reader.c (packsymbols): Don't declare yylval if pure_parser.

1990-10-30  Richard Stallman  <rms@mole.ai.mit.edu>

	* Version 1.12.

	* src/LR0.c (augment_automaton): Fix bugs adding sp2 to chain of
	shifts.

1990-10-23  Richard Stallman  <rms@mole.ai.mit.edu>

	* src/bison.simple: Don't define alloca if already defined.

1990-10-21  Richard Stallman  <rms@mole.ai.mit.edu>

	* src/getopt.c: On VMS, use string.h.

	* src/main.c (main): Return type int.

1990-09-10  Richard Stallman  <rms@mole.ai.mit.edu>

	* src/output.c (output_headers): Output macro defs for -p.

	* src/reader.c (readgram): Handle consecutive actions.

	* src/getargs.c (getargs): Rename -a to -p.
	* src/files.c (openfiles): Change names used for -b.

1990-08-27  Richard Stallman  <rms@mole.ai.mit.edu>

	* src/reduce.c (reduce_grammar_tables): Don't map rlhs of disabled
	rule.

1990-08-26  Richard Stallman  <rms@mole.ai.mit.edu>

	* src/closure.c (print_firsts, print_fderives): Use BITISSET to
	test bits.

1990-08-23  Richard Stallman  <rms@mole.ai.mit.edu>

	* src/closure.c (print_firsts): vrowsize => varsetsize.
	(print_fderives): rrowsize => rulesetsize.

1990-08-10  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/bison.simple (alloca): Don't define if already defined.
	(__yy_bcopy): Alternate definition for C++.

1990-07-11  David J. MacKenzie  <djm@albert.ai.mit.edu>

	* src/getargs.c (getargs): Mention +yacc in usage message.

1990-07-10  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reader.c (parse_token_decl, copy_action): Set
	value_components_used if appropriate.
	(readgram): Inhibit output of YYSTYPE definition in that case.

1990-06-30  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/output.c (output_parser): Define YYPURE if pure, and not
	otherwise.  Don't define YYIMPURE.
	* src/bison.simple: Adjust conditionals accordingly.
	* src/bison.simple (YYLEX): If locations not in use, don't pass
	&yylloc.

1990-06-28  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/getargs.c (longopts): Add `yacc'.

1990-06-28  David J. MacKenzie  <djm@apple-gunkies>

	* src/getargs.c (getargs): Add long options.
	* Makefile: Link with getopt1.o and add getopt1.c and getopt.h to
	dist.

	* Move version number and description back into version.c from
	Makefile and getargs.c.
	* Makefile (dist): Extract version number from version.c.

1990-06-26  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/output.c (output): Always call output_gram.
	* src/bison.simple (yyparse): Print rhs and lhs symbols of
	reduction rule.

1990-06-21  David J. MacKenzie  <djm@albert.ai.mit.edu>

	* src/main.c: New global var `program_name' to hold argv[0] for
	error messages.
	* src/allocate.c, src/files.c, src/getargs.c, src/reader.c: Use
	`program_name' in messages instead of hardcoded "bison".

1990-06-20  David J. MacKenzie  <djm@albert.ai.mit.edu>

	* Makefile: Specify Bison version here.  Add rule to pass it to
	version.c.  Encode it in distribution directory and tar file names.
	* src/version.c: Use version number from Makefile.
	* src/getargs.c (getargs): Print additional text that used to be
	part of version_string in version.c.  Use -V instead of -version
	to print Bison version info.  Print a usage message and exit if
	given an invalid option.

1990-06-19  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/bison.simple: Fix a #line.

	* Makefile (INSTALL): New parameter.
	(install): Use that.
	(CFLAGS): Move definition to top.

1990-06-17  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reader.c (parse_type_decl): Ignore semicolon.
	Remove excess % from error messages.

1990-06-16  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* Version 1.11.

	* Makefile (install): Ensure installed files readable.

Tue Jun 12 12:50:56 EDT 1990 Jay Fenlason <hack@ai.mit.edu>

	* src/getargs.c: Declare spec_file_prefix

	* src/lex.c (lex): \a is '\007' instead of '007'

	* src/reader.c: include machine.h

	* src/files.h: Declare extern spec_name_prefix.

	Trivial patch from Thorsten Ohl <td12@ddagsi3.bitnet>

1990-05-31  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* Version 1.10.

	* src/bison.simple (YYBACKUP, YYRECOVERING): New macros.
	(YYINITDEPTH): This is what used to be YYMAXDEPTH.
	(YYMAXDEPTH): This is what used to be YYMAXLIMIT.
	If the value is 0, use the default instead.
	(yyparse): Return 2 on stack overflow.

1990-05-30  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/bison.simple (YYERROR): Jump to new label; don't print error
	message.
	(yyparse): Define label yyerrlab1.

1990-05-16  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/files.c (openfiles): Support -b.
	* src/getargs.c (getargs): Likewise.

	* src/reader.c (readgram): Error if too many symbols.

	* src/lex.c (lex): Handle \a.  Make error msgs more reliable.
	* src/reader.c (read_declarations): Make error msgs more reliable.

1990-05-13  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* Version 1.09.

	* src/reduce.c (reduce_grammar_tables): Fix backward test.

1990-05-12  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* Makefile (bison-dist.*): Rename targets and files to bison.*.
	(bison.tar): Make tar file to unpack into subdirectory named `bison'.

1990-04-30  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reduce.c (reduce_grammar_tables): Set rlhs to -1 for useless
	rules.
	* src/nullable.c (set_nullable): Ignore those rules.
	* src/derives.c (set_derives): Likewise.

1990-04-23  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/bison.simple (yyparse): Mention rule number as well as line
	number.

1990-03-29  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/bison.simple (__yy_bcopy): New function.
	(yyparse): Use that, not bcopy.

1990-03-28  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/print.c (print_actions): Don't alter i and j spuriously when
	errp==0.

1990-03-12  Jim Kingdon  <kingdon@pogo.ai.mit.edu>

	* src/bison.simple [__GNUC__]: Use builtin_alloca.

1990-03-07  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* Makefile (install): Use mergedir.awk to process bison.simple
	for installation.

	* src/bison.simple (yyparse): New feature to include possible valid
	tokens in parse error message.

1990-03-03  Richard Stallman  <rms@geech>

	* Version 1.08.

1990-02-26  Jim Kingdon  <kingdon@pogo.ai.mit.edu>

	* src/print.c (print_actions)
	* src/conflicts.c (print_reductions): Change "shift %d" to
	"shift, and go to state %d" and "reduce %d" to "reduce using rule %d"
	and "goto %d" to "go to state %d".
	* src/print.c (print_core): Change "(%d)" to "(rule %d)".

1990-02-20  Jay Fenlason  <hack@wookumz.ai.mit.edu>

	* src/bison.simple:  Comment out unused yyresume: label.

1990-02-09  Jay Fenlason <hack@wookumz.ai.mit.edu>

	* src/bison.simple : surround all declarations and (remaining)
	uses of yyls* and yylloc with #ifdef YYLSP_NEEDED This will
	significantly cut down on stack usage, and gets rid of
	unused-variable msgs from GCC.

1990-01-31  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/files.c (done) [VMS]: Don't delete files that weren't used.
	[VMS]: Let user override XPFILE and XPFILE1.

1990-01-03  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* Version 1.07.

1989-12-16  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/gram.c (dummy): New function.

	* src/reader.c (readgram): Detect error if two consec actions.

1989-11-15  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reduce.c (reduce_grammar_tables): Update rline like other
	tables.

	* Makefile (install): Install the man page.

1989-11-11  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/output.c (output_rule_data): Write #if YYDEBUG around yyrline.

1989-10-18  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* Version 1.06.

	* src/vmsgetargs.c (getargs): Downcase specified output file name.

1989-10-13  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reader.c (readgram): Warn if there is no default to use for
	$$ and one is needed.

1989-09-29  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* Version 1.05.

	* src/vmsgetargs.h (getargs): Process outfile option.

1989-09-08  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* Version 1.04.

	* src/reader.c (parse_union_decl): Count newlines even in
	comments.

1989-09-06  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/files.c (openfiles): short_base_length was always ==
	base_length.

1989-08-24  Richard Stallman  <rms@apple-gunkies.ai.mit.edu>

	* Version 1.03.

	* src/files.c (openfiles): Write output into same dir as input, by
	default.

1989-08-23  Jay Fenlason  <hack@gnu>

	* Makefile: Include system.h in bison-dist.tar

1989-08-15  Richard Stallman  <rms@hobbes.ai.mit.edu>

	* version 1.03.

	* src/reader.c (reader): Output LTYPESTR to fdefines
	only after reading the grammar.

1989-08-06  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reader.c (read_declarations): Put space before comment
	to avoid bug in Green Hills C compiler.

1989-06-19  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/allocate.c (xmalloc): New function.

1989-06-16  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/build.com: Compile and link reduce.c.

1989-06-09  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reduce.c (reduce_grammar_tables): Adjust start_symbol when
	#s change.

1989-05-27  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reader.c (copy_definition, copy_guard): Don't object to
	\-newline inside strings.

1989-05-22  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/files.c (openfiles): Alternate file names for MSDOS.
	(open_extra_files): Likewise.
	(done): On MSDOS, unlink temp files here, not in openfiles.

	* src/machine.h (BITS_PER_WORD): 16 on MSDOS.
	(MAXTABLE): Now defined in this file.

	* src/system.h: New file includes system-dependent headers.
	All relevant .c files include it.

1989-04-27  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/version.c: Version 1.01.

1989-04-18  Randall Smith  <randy@apple-gunkies.ai.mit.edu>

	* src/conflicts.c (total_conflicts): Fixed typo in yacc style
	output; mention conflicts if > 0.

1989-04-15  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reader.c (packsymbols): Start new symbols after 256.

1989-04-12  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reader.c (reader): Always assign code 256 to `error' token.
	Always set `translations' to 1 so this code gets handled.
	* src/bison.simple (YYERRCODE): Define it.

1989-04-11  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/conflicts.c: If GNU C, use builtin alloca.

	* Makefile (install): Delete parser files before copying them.

1989-03-30  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/getargs.c (getargs): Turn off checking of name Bison was
	invoked by.

	* Makefile (dist): Include ChangeLog in distrib.

1989-03-23  Jay Fenlason  <hack@apple-gunkies.ai.mit.edu>

	* src/LR0.c src/closure.c src/conflicts.c src/derives.c
	src/files.c src/getargs.c src/lalr.c src/lex.c src/main.c
	src/nullable.c src/output.c src/print.c src/reader.c src/reduce.c
	src/symtab.c src/warshall.c: A first pass at getting gcc -Wall to
	shut up.  Mostly declared functions as void, etc.

	* src/reduce.c moved 'extern int fixed_outfiles;' into print_notices
	where it belongs.

1989-03-01  Randall Smith  <randy@apple-gunkies.ai.mit.edu>

	* src/types.h, src/symtab.h, src/state.h, src/new.h,
	src/machine.h, src/lex.h, src/gram.h, src/files.h, src/closure.c,
	src/vmsgetargs.c, src/warshall.c, src/symtab.c, src/reduce.c,
	src/reader.c, src/print.c, src/output.c, src/nullable.c,
	src/main.c, src/lex.c, src/lalr.c, src/gram.c, src/getargs.c,
	src/files.c, src/derives.c, src/conflicts.c, src/allocate.c,
	src/LR0.c, Makefile, src/bison.simple: Changed copyright notices
	to be in accord with the new General Public License.
	* COPYING: Made a link to the new copying file.

1989-02-22  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/new.h (FREE): Alternate definition for __STDC__ avoids error
	if `free' returns void.

1989-02-21  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reader.c (read_declarations): Double a `%' in a format string.
	(copy_definition, parse_start_decl, parse_token_decl): Likewise.
	(parse_type_decl, parse_union_decl, copy_guard, readgram, get_type).
	(copy_action): change a `fatal' to `fatals'.

	* src/lalr.c (map_goto): Initial high-end of binary search was off
	by 1.

1989-02-18  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/bison.simple [sparc]: Include alloca.h.

1989-02-15  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reader.c (packsymbols): Write decl of yylval into .tab.h file.

1989-01-28  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/bison.simple: Avoid comments on `#line' lines.

	* src/reader.c (LTYPESTR): Rearrange to avoid whitespace after
	\-newline.

1989-01-09  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/conflicts.c (total_conflicts): if -y, use output syntax
	POSIX wants.
	* src/reduce.c (print_notices): likewise.

	* src/lex.c (lex): Handle \v, and \x hex escapes.

	* src/reader.c (reader): Merge output_ltype into here.  Don't
	output YYLTYPE definition to .tab.h file unless the @ construct is
	used.

	* src/bison.simple: Define YYERROR, YYABORT, YYACCEPT here.
	* src/reader.c (output_ltype): Don't output them here.

	* src/bison.simple: YYDEBUG now should be 0 or 1.
	* src/output.c (output): For YYDEBUG, output conditional to define it
	only if not previously defined.

1989-01-02  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/bison.simple (yyparse) [YYPURE]: Add local yynerrs.
	(yydebug): Declare global, but don't initialize, regardless of
	YYPURE.
	(yyparse): Don't declare yydebug here.

1988-12-22  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reduce.c (print_notices): Typo in message.

1988-12-11  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/output.c (pack_table): Free only nonzero the elts of froms &
	tos.

1988-12-08  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/gram.c (rprecsym): New vector indicates the %prec symbol for
	a rule.
	* src/reader.c (packgram): Allocate it and fill it in.
	* src/reduce.c (inaccessable_symbols): Use it to set V1.
	* src/reduce.c (print_results): Don't complain about useless token
	if it's in V1.

1988-12-05  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/machine.h (RESETBIT, BITISSET): New macros.
	(SETBIT, WORDSIZE): Change to use BITS_PER_WORD.

	* src/reduce.c: New file, by David Bakin.  Reduces the grammar.
	* Makefile: Compile it, link it, put it in dist.

	* src/main.c (main): Call reduce_grammar (in reduce.c).

1988-11-17  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/conflicts.c: Don't declare alloca if including alloca.h.

	* src/bison.cld: Define qualifiers `nolines', `debug'.
	* src/vmsgetargs.c (getargs): Handle them.

	* src/output.c (output_program): Notice `nolinesflag'.

	* src/output.c (output_parser): Simplify logic for -l and #line.
	Avoid writing EOF char into output.

1988-10-12  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* Implement `-l' option.
	* src/getopt.c: Set flag `nolinesflag'.
	* src/reader.c (copy_definition, parse_union_decl, copy_guard,
	copy_action) Obey that flag; don't generate #line.
	* src/output.c (output_parser): Discard #line's when copying the
	parser.

1988-09-12  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reader.c (copy_guard): Fix brace-counting for
	brace-surrounded guard.

1988-09-08  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/bison.simple: Correct number in #line command.
	(yyparse): Call YYABORT instead of YYERROR, due to last change in
	output_ltype.

1988-09-05  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* Makefile: New variable LIBS.  Alternatives for USG.
	* src/conflicts.c [USG]: Define bcopy.
	* src/symtab.c [USG]: Include string.h instead of strings.h.

	* src/conflicts.c [sparc]: Include alloca.h.

1988-08-02  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reader.c (parse_token_decl): Ignore commas.

1988-06-25  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/reader.c (output_ltype): Make YYERROR yacc-compatible (like
	YYFAIL).

1988-06-24  Richard Stallman  <rms@sugar-bombs.ai.mit.edu>

	* src/getargs.c (getargs): -t sets debugflag.
	Eliminate upper case duplicate options.
	* src/output.c (output): If debugflag, output `#define YYDEBUG'.

1988-05-26  Richard Stallman  <rms@frosted-flakes.ai.mit.edu>

	* src/allocate.c (mallocate): New name for `allocate' (which loses
	in VMS).  Calls changed in LR0.c, conflicts.c, symtab.c, new.h.

	* src/getargs.c (getargs): If argv[0] is "yacc", set fixed_outfiles.

1988-05-17  Richard Stallman  <rms@frosted-flakes.ai.mit.edu>

	* src/conflicts.c: Declare alloca.
	* src/reader.c: Declare realloc.
	* src/warshall.c (TC): Fix one arithmetic op that was omitted last
	time.

1988-05-05  Richard Stallman  <rms@frosted-flakes.ai.mit.edu>

	* src/bison.simple: Conditionalize most refs to yylsp on
	YYLSP_NEEDED.
	* src/reader.c (copy_guard, copy_action): Notice if `@' is used.
	(reader): If it was, output `#define YYLSP_NEEDED'.

1988-04-18  Richard Stallman  <rms@rice-krispies.ai.mit.edu>

	* src/bison.simple: New variable yynerr counts calls to yyerror.

	* src/lex.c (lex, case '='): Update lineno when skipping a newline.

	* src/reader.c (parse_expect_decl): ungetc the char that ends the
	number; don't read any further.  This handles multi-line comments
	right and avoids incorrect lineno.

	* src/reader.c: Delete duplicate decl of symval.

	* src/warshall.c (RTC, TC): Cast ptrs to char *, not unsigned, for
	arith.
