2020-08-02  Akim Demaille  <akim.demaille@gmail.com>

	version 3.7.1
	* NEWS: Record release date.

2020-08-02  Akim Demaille  <akim.demaille@gmail.com>

	portability: we use termios.h and sys/ioctl.h
	Reported by Maarten De Braekeleer.
	https://lists.gnu.org/r/bison-patches/2020-07/msg00079.html

	* bootstrap.conf (gnulib_modules): Add termios and sys_ioctl.

2020-08-02  Maarten De Braekeleer  <maarten.debraekeleer@gmail.com>

	portability: rename accept to acceptsymbol because of MSVC
	MSVC already defines this symbol.

	* src/symtab.h, src/symtab.c (accept): Rename as...
	(acceptsymbol): this.
	Adjust dependencies.

2020-08-02  Akim Demaille  <akim.demaille@gmail.com>

	regen

2020-08-02  Maarten De Braekeleer  <maarten.debraekeleer@gmail.com>

	portability: use CHAR_LITERAL instead of CHAR because MSVC defines CHAR
	* src/parse-gram.y, src/scan-gram.l: here.

2020-08-02  Maarten De Braekeleer  <maarten.debraekeleer@gmail.com>

	portability: use INT_LITERAL instead of INT because MSVC defines INT
	It is defined as a typedef, not a macro.
	https://lists.gnu.org/r/bison-patches/2020-08/msg00001.html

	* src/parse-gram.y, src/scan-gram.l: here.

2020-08-02  Akim Demaille  <akim.demaille@gmail.com>

	portability: beware of max () with MSVC
	Reported by Maarten De Braekeleer.
	https://lists.gnu.org/r/bison-patches/2020-07/msg00080.html

	We don't want to use gnulib's min and max macros, since we use
	function calls in min/max arguments.

	* src/location.c (max_int, min_int): Move to...
	* src/system.h: here.
	* src/counterexample.c, src/derivation.c: Use max_int instead of max.

2020-08-02  Akim Demaille  <akim.demaille@gmail.com>

	libtextstyle: be sure to have ostream_printf and hyperlink support
	Older versions of libtextstyle do not support them, rule them out.

	Reported by Lars Wendler
	https://lists.gnu.org/r/bug-bison/2020-07/msg00030.html

	and by Arnold Robbins
	https://lists.gnu.org/r/bug-bison/2020-07/msg00041.html and
	https://lists.gnu.org/mailman/private/gawk-devel/2020-July/003988.html

	and by Nelson H. F. Beebe
	https://lists.gnu.org/mailman/private/gawk-devel/2020-July/003993.html

	With support from Bruno Haible in gnulib
	https://lists.gnu.org/r/bug-gnulib/2020-08/msg00000.html
	thread starting at
	https://lists.gnu.org/r/bug-gnulib/2020-07/msg00148.html

	* configure.ac: Require libtextstyle 0.20.5.
	* gnulib: Update.

2020-08-01  Akim Demaille  <akim.demaille@gmail.com>

	CI: comment changes

2020-08-01  Akim Demaille  <akim.demaille@gmail.com>

	regen

2020-08-01  Akim Demaille  <akim.demaille@gmail.com>

	diagnostics: better location for type redeclarations
	From

	    foo.y:1.7-11: error: %type redeclaration for bar
	        1 | %type <foo> bar bar
	          |       ^~~~~
	    foo.y:1.7-11: note: previous declaration
	        1 | %type <foo> bar bar
	          |       ^~~~~

	to

	    foo.y:1.17-19: error: %type redeclaration for bar
	        1 | %type <foo> bar bar
	          |                 ^~~
	    foo.y:1.13-15: note: previous declaration
	        1 | %type <foo> bar bar
	          |             ^~~

	* src/symlist.h, src/symlist.c (symbol_list_type_set): There's no need
	for the tag's location, use that of the symbol.
	* src/parse-gram.y: Adjust.
	* tests/input.at: Adjust.

2020-07-30  Akim Demaille  <akim.demaille@gmail.com>

	todo: updates for D

2020-07-29  Akim Demaille  <akim.demaille@gmail.com>

	cex: style: comment changes
	* src/parse-simulation.c: here.

2020-07-29  Akim Demaille  <akim.demaille@gmail.com>

	cex: style: prefer "res" for the returned value
	* src/derivation.c (derivation_new): here.

2020-07-29  Akim Demaille  <akim.demaille@gmail.com>

	cex: style: prefer FOO_print to print_FOO
	* src/state-item.h, src/state-item.c (print_state_item): Rename as...
	(state_item_print): this.
	* src/counterexample.c (print_counterexample): Rename as...
	(counterexample_print): this.

2020-07-28  Akim Demaille  <akim.demaille@gmail.com>

	scanner: don't crash on strings containing a NUL byte
	We crash if the input contains a string containing a NUL byte.
	Reported by Suhwan Song.
	https://lists.gnu.org/r/bug-bison/2020-07/msg00051.html

	* src/flex-scanner.h (STRING_FREE): Avoid accidental use of
	last_string.
	* src/scan-gram.l: Don't call STRING_FREE without calling
	STRING_FINISH first.
	* tests/input.at (Invalid inputs): Check that case.

2020-07-28  Akim Demaille  <akim.demaille@gmail.com>

	doc: refer to cex from sections dealing with conflicts
	The documentation about -Wcex should be put forward.

	* doc/bison.texi: Refer to -Wcex from the sections about conflicts.

2020-07-28  Akim Demaille  <akim.demaille@gmail.com>

	doc: factor ifnottex/iftex examples
	* doc/bison.texi: Factor the common bits out of ifnottex/iftex.

2020-07-28  Akim Demaille  <akim.demaille@gmail.com>

	doc: fix colors
	The original Texinfo macros introducing colors were made for
	diagnostics, which are printed in bold.  So by copy-paste accident the
	styles we introduced for counterexamples were also in bold.  They
	should not.

	* doc/bison.texi: Separate the styling of diagnostics from the styling
	for counterexamples.
	Don't use bold in the latter case.

2020-07-28  Akim Demaille  <akim.demaille@gmail.com>

	doc: fixes
	* doc/bison.texi: Fix spello.
	Fix missing colors, and factor.

2020-07-23  Akim Demaille  <akim.demaille@gmail.com>

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

2020-07-23  Akim Demaille  <akim.demaille@gmail.com>

	version 3.7
	* NEWS: Record release date.

2020-07-23  Akim Demaille  <akim.demaille@gmail.com>

	style: avoid warnings with GCC 4.6
	With have a clash with the "max" function.

	    src/counterexample.c: In function 'visited_hasher':
	    src/counterexample.c:720:48: error: declaration of 'max' shadows a global declaration [-Werror=shadow]
	    src/counterexample.c:116:12: error: shadowed declaration is here [-Werror=shadow]

	* src/counterexample.c (visited_hasher): Alpha conversion.

2020-07-23  Akim Demaille  <akim.demaille@gmail.com>

	doc: fix definition of -Wall
	* doc/bison.texi (Diagnostics): here.

2020-07-23  Akim Demaille  <akim.demaille@gmail.com>

	gnulib: update
	* bootstrap.conf: We need stpncpy.

2020-07-23  Akim Demaille  <akim.demaille@gmail.com>

	tests: fixes
	Fix 6b78e50cef3c2cd8e6f4e7938be987e8769f8eef, "cex: make "rerun with
	'-Wcex'" a note instead of a warning"

	* tests/conflicts.at (-W versus %expect and %expect-rr): Fix
	expectations.

2020-07-22  Akim Demaille  <akim.demaille@gmail.com>

	cex: update NEWS for 3.7
	* NEWS: Update to the current style of cex display.

2020-07-22  Akim Demaille  <akim.demaille@gmail.com>

	doc: catch up with the current display of cex
	Unfortunately I found no way to use the ↳ glyph in Texinfo, so I used
	@arrow{} instead, which has a different width, so we have to have all
	the examples doubled, once for TeX, another for the rest of the world.

	* doc/bison.texi: Use the current display in the examples.
	* doc/calc.y, doc/ids.y, doc/if-then-else.y, doc/sequence.y: New.

2020-07-21  Akim Demaille  <akim.demaille@gmail.com>

	cex: make "rerun with '-Wcex'" a note instead of a warning
	Currently the suggestion to rerun is a -Wother warning:

	    warning: 2 shift/reduce conflicts [-Wconflicts-sr]
	    warning: rerun with option '-Wcounterexamples' to generate conflict counterexamples [-Wother]

	Instead, let's attach it as a subnote of the diagnostic (in the
	current case, -Wconflicts-sr):

	    warning: 2 shift/reduce conflicts [-Wconflicts-sr]
	    note: rerun with option '-Wcounterexamples' to generate conflict counterexamples

	* src/conflicts.c (conflicts_print): Do that.
	Adjust the test suite.

2020-07-20  Akim Demaille  <akim.demaille@gmail.com>

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

2020-07-20  Akim Demaille  <akim.demaille@gmail.com>

	version 3.6.93
	* NEWS: Record release date.

2020-07-20  Akim Demaille  <akim.demaille@gmail.com>

	cex: label all the derivations by their initial action
	From

	    input.y: warning: reduce/reduce conflict on token $end [-Wcounterexamples]
	      Example: A b .
	      First derivation
	        a
	        `-> A b .
	      Second derivation
	        a
	        `-> A b
	              `-> b .

	to

	    input.y: warning: reduce/reduce conflict on token $end [-Wcounterexamples]
	      Example: A b .
	      First reduce derivation
	        a
	        `-> A b .
	      Second reduce derivation
	        a
	        `-> A b
	              `-> b .

	* src/counterexample.c (print_counterexample): here.
	Compute the width of the labels to properly align the values.
	* tests/conflicts.at, tests/counterexample.at, tests/diagnostics.at,
	* tests/report.at: Adjust.

2020-07-20  Akim Demaille  <akim.demaille@gmail.com>

	cex: improve readability of the subsections
	Now that the derivation is no longer printed on one line, aligning the
	example and the derivation is no longer useful.  It can actually be
	harmful, as it makes the overall structure less clear.

	* src/derivation.h, src/derivation.c (derivation_print_leaves): Remove
	the `prefix` argument.
	* src/counterexample.c (print_counterexample): Put the example next to
	its label.
	* tests/conflicts.at, tests/counterexample.at, tests/diagnostics.at,
	* tests/report.at: Adjust.

2020-07-20  Akim Demaille  <akim.demaille@gmail.com>

	cex: don't issue an empty line between counterexamples
	Now that we use complain, the "sections" are clearer.

	* src/counterexample.c (print_counterexample): Use the empty line only
	in reports.
	* tests/counterexample.at, tests/diagnostics.at, tests/report.at: Adjust.

2020-07-20  Akim Demaille  <akim.demaille@gmail.com>

	cex: use usual routines for diagnostics about S/R conflicts
	See previous commit.  We go from

	    input.y: warning: 3 reduce/reduce conflicts [-Wconflicts-rr]
	    Shift/reduce conflict on token "⊕":
	      Example              exp "+" exp • "⊕" exp
	      Shift derivation
	        exp
	        ↳ exp "+" exp
	                  ↳ exp • "⊕" exp

	to

	    input.y: warning: 3 reduce/reduce conflicts [-Wconflicts-rr]
	    input.y: warning: shift/reduce conflict on token "⊕" [-Wcounterexamples]
	      Example              exp "+" exp • "⊕" exp
	      Shift derivation
	        exp
	        ↳ exp "+" exp
	                  ↳ exp • "⊕" exp

	with an hyperlink on -Wcounterexamples.

	* src/counterexample.c (counterexample_report_shift_reduce):
	Use complain.
	* tests/counterexample.at, tests/diagnostics.at, tests/report.at:
	Adjust.

2020-07-20  Akim Demaille  <akim.demaille@gmail.com>

	cex: use usual routines for diagnostics about R/R conflicts
	This is more consistent, and brings benefits: users know that these
	diagnostics are attached to -Wcounterexamples, and they can also click
	on the hyperlink if permitted by their terminal.

	We go from

	    warning: 1 reduce/reduce conflict [-Wconflicts-rr]
	    Reduce/reduce conflict on token $end:
	      Example              A b .
	      First derivation     a -> [ A b . ]
	      Second derivation    a -> [ A b -> [ b . ] ]

	to

	    warning: 1 reduce/reduce conflict [-Wconflicts-rr]
	    input.y: warning: reduce/reduce conflict on token $end [-Wcounterexamples]
	      Example              A b .
	      First derivation     a -> [ A b . ]
	      Second derivation    a -> [ A b -> [ b . ] ]

	with an hyperlink on -Wcounterexamples.

	* src/counterexample.c (counterexample_report_reduce_reduce):
	Use complain.
	* tests/counterexample.at, tests/diagnostics.at, tests/report.at:
	Adjust.

2020-07-19  Akim Demaille  <akim.demaille@gmail.com>

	diagnostics: use hyperlinks to point to the only documentation
	* src/complain.c (begin_hyperlink, end_hyperlink): New.
	(warnings_print_categories): Use them.
	* tests/local.at (AT_SET_ENV): Disable hyperlinks in the tests, they
	contain random id's, and brackets (which is not so nice for M4).

2020-07-19  Akim Demaille  <akim.demaille@gmail.com>

	doc: add anchors for warnings
	Unfortunately Texinfo somewhat mangles anchors such as `-Werror` into
	`g_t_002dWerror`, so let's not include the dash.

	* doc/bison.texi (Diagnostics): here.

2020-07-19  Akim Demaille  <akim.demaille@gmail.com>

	glyphs: fix types
	The code was written on top of buffers of `char[26]`, and then was
	changed to use `char *`, yet was still using `sizeof buf`, which
	became `sizeof (char *)` instead of `sizeof (char[26])`.

	Reported by Dagobert Michelsen.
	https://lists.gnu.org/r/bug-bison/2020-07/msg00023.html

	* src/glyphs.h, src/glyphs.c: Get rid of uses of `char *`, use only
	glyph_buffer_t.

2020-07-19  Akim Demaille  <akim.demaille@gmail.com>

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

2020-07-19  Akim Demaille  <akim.demaille@gmail.com>

	version 3.6.92
	* NEWS: Record release date.

2020-07-19  Akim Demaille  <akim.demaille@gmail.com>

	style: avoid strncpy
	syntax-check seems to dislike strncpy.  The GNU Coreutils replaced
	their uses of strncpy with stpncpy.

	strlcpy is not an option.
	  http://sources.redhat.com/ml/libc-alpha/2002-01/msg00159.html
	  http://sources.redhat.com/ml/libc-alpha/2002-01/msg00011.html
	  http://lists.gnu.org/archive/html/bug-gnulib/2004-09/msg00181.html

	* src/glyphs.c: Use stpncpy.

2020-07-18  Akim Demaille  <akim.demaille@gmail.com>

	cex: display derivations as trees
	Sometimes, understanding the derivations is difficult, because they
	are serialized to fit in one line.  For instance, the example taken
	from the NEWS file:

	    %token ID
	    %%
	    s: a ID
	    a: expr
	    expr: expr ID ',' | "expr"

	gave

	    First example        expr • ID ',' ID $end
	    Shift derivation     $accept → [ s → [ a → [ expr → [ expr • ID ',' ] ] ID ] $end ]
	    Second example       expr • ID $end
	    Reduce derivation    $accept → [ s → [ a → [ expr • ] ID ] $end ]

	Printing as trees, it gives:

	    First example        expr • ID ',' ID $end
	    Shift derivation
	      $accept
	      ↳ s                      $end
	        ↳ a                 ID
	          ↳ expr
	            ↳ expr • ID ','
	    Second example       expr • ID $end
	    Reduce derivation
	      $accept
	      ↳ s             $end
	        ↳ a        ID
	          ↳ expr •

	* src/glyphs.h, src/glyphs.c (down_arrow, empty, derivation_separator):
	New.
	* src/derivation.c (derivation_print, derivation_print_impl): Rename
	as...
	(derivation_print_flat, derivation_print_flat_impl): These.
	(fputs_if, derivation_depth, derivation_width, derivation_print_tree)
	(derivation_print_tree_impl, derivation_print): New.
	* src/counterexample.c (print_counterexample): Adjust.
	* tests/conflicts.at, tests/counterexample.at, tests/diagnostics.at,
	* tests/report.at: Adjust.

2020-07-16  Akim Demaille  <akim.demaille@gmail.com>

	cex: use the glyphs
	* src/derivation.c: here.
	* src/gram.h, src/gram.c (print_arrow, print_dot, print_fallback):
	Remove.

2020-07-16  Akim Demaille  <akim.demaille@gmail.com>

	cex: factor the handling of graphical symbols
	* src/glyphs.h, src/glyphs.c: New.

2020-07-15  Akim Demaille  <akim.demaille@gmail.com>

	cex: style changes
	* src/counterexample.c: here.

2020-07-15  Akim Demaille  <akim.demaille@gmail.com>

	cex: simplify tests
	* tests/counterexample.at (AT_BISON_CHECK_CEX): Handle the keyword.
	Simplify the signature.

2020-07-15  Akim Demaille  <akim.demaille@gmail.com>

	cex: more colors
	Provided by Daniela Becker.

	* data/bison-default.css: More colors.

2020-07-14  Akim Demaille  <akim.demaille@gmail.com>

	style: comments changes
	* src/print.c: here.

2020-07-14  Akim Demaille  <akim.demaille@gmail.com>

	doc: update GLR sections
	Reported by Christian Schoenebeck.

	* doc/bison.texi (GLR Parsers): Minor fixes.
	(Compiler Requirements for GLR): Remove, quite useless today.

2020-07-14  Akim Demaille  <akim.demaille@gmail.com>

	cex: display shifts before reductions
	When reporting counterexamples for s/r conflicts, put the shift first.
	This is more natural, and displays the default resolution first, which
	is also what happens for r/r conflicts where the smallest rule number
	is displayed first, and "wins".

	* src/counterexample.c (counterexample): Add a shift_reduce member.
	(new_counterexample): Adjust.
	Swap the derivations when this is a s/r conflict.
	(print_counterexample): For s/r conflicts, prefer "Shift derivation"
	and "Reduce derivation" rather than "First/Second derivation".

	* tests/conflicts.at, tests/counterexample.at, tests/report.at: Adjust.
	* NEWS, doc/bison.texi: Ditto.

2020-07-14  Akim Demaille  <akim.demaille@gmail.com>

	style: s/lookahead_tokens/lookaheads/g
	Currently we use both names.  Let's stick to the short one.

	* src/AnnotationList.c, src/conflicts.c, src/counterexample.c,
	* src/getargs.c, src/getargs.h, src/graphviz.c, src/ielr.c,
	* src/lalr.c, src/print-graph.c, src/print-xml.c, src/print.c,
	* src/state-item.c, src/state.c, src/state.h, src/tables.c:
	s/lookahead_token/lookahead/gi.

2020-07-14  Akim Demaille  <akim.demaille@gmail.com>

	cex: factor memory allocation
	* src/counterexample.c (counterexample_report_state): Allocate once
	per conflicted state, instead of once per r/r conflict.

2020-07-14  Akim Demaille  <akim.demaille@gmail.com>

	cex: use state_item_number consistently
	* src/counterexample.c, src/state-item.c: here.
	(counterexample_report_state): While at it, prefer c2 to j/k, to match
	c1.

2020-07-14  Akim Demaille  <akim.demaille@gmail.com>

	cex: more consistent memory allocation/copy
	* src/counterexample.c, src/parse-simulation.c: It is more usual in
	Bison to use sizeof on expressions than on types, especially for
	allocation.
	Let the compiler do it's job instead of calling memcpy ourselves.

2020-07-14  Akim Demaille  <akim.demaille@gmail.com>

	cex: minor renaming
	* src/counterexample.c (has_common_prefix): Rename as...
	(have_common_prefix): this.

2020-07-14  Akim Demaille  <akim.demaille@gmail.com>

	cex: use better type names
	There are too many gl_list_t in there, it's hard to understand what is
	going on.  Introduce and use more precise types.  I sure can be wrong
	in some places, it's hard to tell without proper tool support.

	* src/counterexample.c, src/lssi.c, src/lssi.h, src/parse-simulation.c,
	* src/parse-simulation.h, src/state-item.c, src/state-item.h
	(si_bfs_node_list, search_state_list, ssb_list, lssi_list)
	(state_item_list): New.

2020-07-14  Akim Demaille  <akim.demaille@gmail.com>

	cex: minor style changes
	* src/counterexample.h, src/derivation.h, src/derivation.c:
	More comments.
	Use `out` for FILE*, as elsewhere.

2020-07-14  Akim Demaille  <akim.demaille@gmail.com>

	tests: beware of version numbers from git describe
	* tests/report.at: Be robust to version numbers such as
	3.6.4.133-fbac-dirty.

2020-07-14  Akim Demaille  <akim.demaille@gmail.com>

	tests: fix expectations
	Broken in ee86ea88399ed02243fbceb2704c9ea322a12bf9.

	* tests/diagnostics.at: here.

2020-07-12  Akim Demaille  <akim.demaille@gmail.com>

	doc: makeinfo wants @arrow{}, not @arrow
	* doc/bison.texi: here.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	gnulib: update

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	cex: prefer → to ::=
	It does not make a lot of sense to use ::= in our counterexamples,
	that's not something that belongs to the Bison "vocabulary".  Using
	the colon makes sense, but it's too discreet.  Let's use the arrow,
	which we already use in some reports (HTML and Dot).

	* src/gram.h (print_dot_fallback): Generalize into...
	(print_fallback): this.
	(print_arrow): New.
	* src/derivation.c: Use it.

	* NEWS, tests/conflicts.at, tests/counterexample.at,
	* tests/diagnostics.at, tests/report.at: Adjust.
	* doc/bison.texi: Ditto.
	Unfortunately the literal `→` is output as `↦`.  So we need to use
	@arrow.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	style: cex: prefer the array notation
	Prefer `&foos[i]` to `foos + i` when `foos` is an array.  IMHO, it
	makes the semantics clearer.

	* src/counterexample.c, src/lssi.c, src/parse-simulation.c,
	* src/state-item.c: With arrays, prefer the array notation rather than
	the pointer one.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	style: cex: remove variables that don't make it simpler to read
	* src/counterexample.c: With arrays, prefer the array notation rather
	than the pointer one.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	bistromathic: demonstrate caret-diagnostics
	* examples/c/bistromathic/parse.y (user_context): We need the current
	line.
	(yyreport_syntax_error): Quote the guilty line, with squiggles.
	* examples/c/bistromathic/bistromathic.test: Adjust.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	bistromathic: do not display parse errors on completion
	Currently autocompletion on a line with errors leaks the error
	messages.  It can be useful to let the user know, but GNU Readline
	does not provide us with an nice way to display the error.  So we
	actually break into the current line of the user.

	So instead, do not show these errors.

	* examples/c/bistromathic/parse.y (user_context): New.
	Use %param to pass it to the parser and scanner.
	Keep quiet when in computing autocompletion.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	bistromathic: don't stupidly reset the location for each token
	That quite defeats the whole point of locations...  But anyway, we
	should not see these messages at all.

	* examples/c/bistromathic/parse.y (expected_tokens): Fix (useless)
	location tracking.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	bistromathic: promote yytoken_kind_t
	* examples/c/bistromathic/parse.y: Use yytoken_kind_t rather than int.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	html: capitalize titles
	* data/xslt/xml2xhtml.xsl: Use "State 0", not "state 0".
	As we do in text reports.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	html: don't define several times the same anchors
	Currently when we output useless rules, they appear before the
	grammar, but using the same invocation.  As a result, the anchor is
	defined twice, and the wrong one, being first, is honored.

	* data/xslt/xml2xhtml.xsl (rule): Take a new 'anchor' parameter to
	decide whether being an anchor, or a target.
	Let it be true when output the grammar.
	* tests/report.at: Adjust.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	html: simplify
	* data/xslt/xml2xhtml.xsl: Merge two identical when-clauses.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	reports: let html reports catch up with --report and --graph
	* data/xslt/xml2xhtml.xsl: Show the symbol types.
	* tests/report.at: Adjust.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	reports: let xml reports catch up with --report and --graph
	The text and Dot reports are expected to be identical when generated
	directly (--report, --graph) or indirectly (via XML).  The xml
	testsuite had not be run for ages, let it catch up a bit.

	* src/print-xml.c: Pass the type of the symbols.
	* data/xslt/xml2text.xsl
	Catch up with the new layout.
	Display the symbol types.
	Use '•', not '.'
	* tests/local.at: Smash '•' to '.' when matching against the direct
	text report.
	* tests/report.at: Adjust XML expectations.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	reports: update html ouput
	* data/xslt/xml2xhtml.xsl: Improve indentation.
	Use ul/li rather that pre.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	tests: check html
	* tests/report.at: here.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	style: factor complex expressions
	* src/print-xml.c, src/print.c: Introduce a variable pointing to the
	current symbol.

2020-07-11  Akim Demaille  <akim.demaille@gmail.com>

	maint: make it easier to update expectations
	* tests/local.mk (update-tests): New.

2020-07-09  Akim Demaille  <akim.demaille@gmail.com>

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

2020-07-09  Akim Demaille  <akim.demaille@gmail.com>

	version 3.6.91
	* NEWS: Record release date.

2020-07-09  Akim Demaille  <akim.demaille@gmail.com>

	news: update

2020-07-09  Akim Demaille  <akim.demaille@gmail.com>

	gnulib: update

2020-07-08  Akim Demaille  <akim.demaille@gmail.com>

	examples: add license headers
	Prompted by Rici Lake.
	https://stackoverflow.com/questions/62658368/#comment110853985_62661621
	Discussed with Paul Eggert.

	* doc/bison.texi, examples/c/bistromathic/parse.y,
	* examples/c/lexcalc/parse.y, examples/c/lexcalc/scan.l,
	* examples/c/pushcalc/calc.y, examples/c/reccalc/parse.y,
	* examples/c/reccalc/scan.l, examples/d/calc.y,
	* examples/java/calc/Calc.y, examples/java/simple/Calc.y:
	Install the GPL3+ header.

2020-07-05  Akim Demaille  <akim.demaille@gmail.com>

	style: update comments
	* src/reader.c: action_obstack was removed in 2002...
	* src/parse-gram.y: Better names.
	* src/scan-code.h: More comments.

2020-07-05  Akim Demaille  <akim.demaille@gmail.com>

	style: update comments in the skeletons
	* data/skeletons/c++.m4, data/skeletons/glr.c, data/skeletons/lalr1.d,
	* data/skeletons/lalr1.java, data/skeletons/yacc.c:
	Be more accurate about yychar and yytoken.
	Don't name local variables as if they were members.

2020-07-05  Akim Demaille  <akim.demaille@gmail.com>

	doc: more details about symbols in m4
	* data/README.md: here.
	* README-hacking.md (Vocabulary): More.

2020-07-05  Akim Demaille  <akim.demaille@gmail.com>

	regen

2020-07-05  Akim Demaille  <akim.demaille@gmail.com>

	examples: include the generated header
	* examples/c/bistromathic/parse.y, examples/c/lexcalc/parse.y,
	* examples/c/reccalc/parse.y: here.
	Add some comments.

	* src/parse-gram.y (api_version): Pull out of handle_require.
	Bump to 3.7.

2020-07-04  Akim Demaille  <akim.demaille@gmail.com>

	maint: post-release administrivia
	* NEWS: Add header line for next release.
	* .prev-version: Record previous version.
	* cfg.mk (old_NEWS_hash): Auto-update.

2020-07-04  Akim Demaille  <akim.demaille@gmail.com>

	version 3.6.90
	* NEWS: Record release date.

2020-07-04  Akim Demaille  <akim.demaille@gmail.com>

	news: update

2020-07-04  Akim Demaille  <akim.demaille@gmail.com>

	package: fix syntax-check errors
	* examples/c/bistromathic/bistromathic.test, po/POTFILES.in: here.

2020-07-04  Akim Demaille  <akim.demaille@gmail.com>

	gnulib: update

2020-07-04  Akim Demaille  <akim.demaille@gmail.com>

	cex: give more details about -Wcex and -rcex
	* data/bison-default.css: Cobalt does not seem to be supported.
	* doc/bison.texi (Counterexamples): A new section.
	(Understanding): Show the counterexamples as it shows in the report:
	with its items.
	(Bison Options): Document -Wcex and -rcex.

2020-07-03  Akim Demaille  <akim.demaille@gmail.com>

	news: update

2020-07-03  Akim Demaille  <akim.demaille@gmail.com>

	dot: also use a dot in the output
	* src/print-graph.c (print_core): Use a dot instead of a point.
	* doc/figs/example-reduce.gv, doc/figs/example-reduce.txt,
	* doc/figs/example-shift.gv, doc/figs/example-shift.txt,
	* doc/figs/example.gv: Update.
	* tests/output.at, tests/report.at: Adjust.

2020-07-02  Akim Demaille  <akim@lrde.epita.fr>

	doc: improve a sentence
	* doc/bison.texi: here.

2020-07-01  Akim Demaille  <akim.demaille@gmail.com>

	news: formatting changes

2020-07-01  Akim Demaille  <akim.demaille@gmail.com>

	news, todo: update

2020-06-30  Akim Demaille  <akim.demaille@gmail.com>

	doc: clarify that the pcontext interface is *.c only
	Reported by Rici Lake.
	https://lists.gnu.org/r/bug-bison/2020-06/msg00054.html

	* doc/bison.texi (Syntax Error Reporting Function): Make it clear that
	this is not exported.
	Remove C++ details that landed in the C doc.

2020-06-30  Akim Demaille  <akim.demaille@gmail.com>

	doc: use color in the cex examples
	* doc/bison.texi: here.
	And use smallexample when it no longer fits in PDF.

2020-06-30  Akim Demaille  <akim.demaille@gmail.com>

	doc: repair the references to the Bibliography
	In commit c80cdf2db2b302db4137fabd4ae11e578fa51fca ("doc: simplify
	uses of @ref", Jan 27 2020, released in Bison 3.6), I broke the
	references to the Bibliography.  For instance:

	     For a more detailed exposition of the mysterious behavior in LALR parsers
	    -and the benefits of IELR, @pxref{Bibliography,,Denny 2008 March}, and
	    -@ref{Bibliography,,Denny 2010 November}.
	    +and the benefits of IELR, @pxref{Bibliography}, and
	    +@ref{Bibliography}.

	which results in "see Bibliography" twice, instead of the more precise
	reference.

	* doc/bison.texi (@pcite, @tcite): New.
	Use them instead of @ref to Bibliography.
	Cite only the first author (that's what we did for the other entries).

2020-06-30  Vincent Imbimbo  <vmi6@cornell.edu>

	doc: cex documentation
	* NEWS, doc/bison.texi: Add documentation for conflict counterexample
	generation.

2020-06-30  Akim Demaille  <akim.demaille@gmail.com>

	doc: update Doxygen template file
	* doc/Doxyfile.in: here.

2020-06-29  Akim Demaille  <akim.demaille@gmail.com>

	yacc.c: push: don't clear the parser state when accepting/rejecting
	Currently when a push parser finishes its parsing (i.e., it did not
	return YYPUSH_MORE), it also clears its state.  It is therefore
	impossible to see if it had parse errors.

	In the context of autocompletion, because error recovery might have
	fired, the parser is actually already in a different state.  For
	instance on `(1 + + <TAB>` in the bistromathic, because there's a
	`exp: "(" error ")"` recovery rule, `1 + +` tokens have already been
	popped, replaced by `error`, and autocompletions think we are ready
	for the closing ")".  So here, we would like to see if there was a
	syntax error, yet `yynerrs` was cleared.

	In the case of a successful parse, we still have a problem: if error
	recovery succeeded, we won't know it, since, again, `yynerrs` is
	clearer.

	It seems much more natural to leave the parser state available for
	analysis when there is a failure.

	To reuse the parser, we should either:

	1. provide an explicit means to reinitialize a parser state for future
	   parses.

	2. automatically reset the parser state when it is used in a new
	   parse.

	Option 2 requires to check whether we need to reinitialize the parser
	each time we call `yypush_parse`, i.e., each time we give a new token.
	This seems expensive compared to Option 1, but benchmarks revealed no
	difference.  Option 1 is incompatible with the documentation
	("After `yypush_parse` returns a status other than `YYPUSH_MORE`, the
	parser instance `yyps` may be reused for a new parse.").

	So Option 2 wins, reusing the private `yynew` member to record that a
	parse was finished, and therefore that the state must reset in the
	next call to `yypull_parse`.

	While at it, this implementation now reuses the previously enlarged
	stacks from one parse to another.

	* data/skeletons/yacc.c (yypstate_new): Set up the stacks in their
	initial configurations (setting their bottom to the stack array), and
	use yypstate_clear to reset them (moving their top to their bottom).
	(yypstate_delete): Adjust.
	(yypush_parse): At the beginning, clear yypstate if needed, and at the
	end, record when yypstate needs to be clearer.

	* examples/c/bistromathic/parse.y (expected_tokens): Do not propose
	autocompletion when there are parse errors.
	* examples/c/bistromathic/bistromathic.test: Check that case.

2020-06-29  Akim Demaille  <akim.demaille@gmail.com>

	bistromathic: don't display undefined locations
	Currently, completion when there is a syntax error shows broken
	locations.

	* examples/c/bistromathic/parse.y (expected_tokens): Initialize the
	location.
	* examples/c/bistromathic/bistromathic.test: Check that.

2020-06-29  Akim Demaille  <akim.demaille@gmail.com>

	yacc.c: simplify initialization of push parsers
	The previous commit ("yacc.c: declare and initialize and the same
	time") made b4_initialize_parser_state_variables useless.

