12012-01-15  Jim Meyering  <meyering@redhat.com>
2
3	maint: get fdl.texi from gnulib
4	* bootstrap.conf (gnulib_modules): Add fdl.
5	* doc/fdl.texi: Remove file.
6	* doc/.gitignore: Add it here.
7
82012-01-15  Jim Meyering  <meyering@redhat.com>
9
10	maint: spell "file system" as two separate words
11	* doc/Doxyfile.in: Spell it "file system", to avoid a
12	"make syntax-check" failure.
13
142012-01-15  Jim Meyering  <meyering@redhat.com>
15
16	maint: avoid "the the"
17	* djgpp/README.in: s/the the/the/
18	* src/parse-gram.c (lloc_default): Likewise.
19	* src/parse-gram.y (lloc_default): Likewise, and remove a
20	trailing space.
21
222012-01-13  Jim Meyering  <meyering@redhat.com>
23
24	build: avoid warning from coverity about lbitset_elt_find
25	* lib/lbitset.c (lbitset_elt_find): Remove unnecessary test of "elt",
26	at a point where we know it is non-NULL, due to prior dereference.
27
282012-01-13  Akim Demaille  <akim@lrde.epita.fr>
29
30	maint: factor copyright year.
31	* configure.ac: Use $PACKAGE_COPYRIGHT_YEAR instead of repeating it.
32
332012-01-13  Akim Demaille  <akim@lrde.epita.fr>
34
35	maint: catch missing gnulib macros.
36	* configure.ac: Add m4_pattern_forbid.
37
382012-01-11  Tim Landscheidt  <tim@tim-landscheidt.de>
39
40	java: remove used variable.
41	* data/lalr1.java (yyresult): remove, unused.
42
432012-01-11  Akim Demaille  <demaille@gostai.com>
44
45	scanner: fix typo.
46	* src/scan-skel.l (@`): s/emtpy/empty/.
47	Reported by Tim Landscheidt.
48
492012-01-06  Jim Meyering  <meyering@redhat.com>
50
51	build: avoid warnings about set-but-not-used variables
52	* lib/bitset_stats.c (bitset_stats_list): Remove declaration
53	and set of unused local, "type".
54	* lib/ebitset.c (ebitset_init): Likewise, for "size".
55	* lib/lbitset.c (lbitset_not): Likewise, for "elt".
56
572011-08-21  Joel E. Denny  <joeldenny@joeldenny.org>
58
59	tests: add -pedantic for --enable-gcc-warnings.
60	This should help to avoid some portability problems.  For example,
61	it would have revealed the empty unions fixed by the last patch
62	* configure.ac (WARN_CFLAGS_TESTS, WARN_CXXFLAGS_TEST): Implement.
63	* tests/synclines.at (AT_TEST_SYNCLINE): Avoid -pedantic warning
64	about an empty translation unit.
65
662011-08-21  Joel E. Denny  <joeldenny@joeldenny.org>
67
68	tests: fix empty unions.
69	Empty unions are not accepted by the ISO C99 grammar or by at
70	least some versions of Sun Studio.  Reported by Wolfgang S. Kechel
71	at
72	<http://lists.gnu.org/archive/html/bug-bison/2011-08/msg00003.html>.
73	* NEWS (2.5.1): Document fix.
74	* THANKS (Wolfgang S. Kechel): Add.
75	* tests/existing.at (GNU Cim Grammar)
76	(GNU pic (Groff 1.18.1) Grammar.): Remove empty %union.
77
782011-07-10  Joel E. Denny  <joeldenny@joeldenny.org>
79
80	build: avoid YACC typo inherited from Autoconf.
81	The typo shows up in the `configure --help' output.  Reported by
82	W.C.A. Wijngaards and Paul Eggert at
83	<http://lists.gnu.org/archive/html/bug-bison/2011-07/msg00000.html>.
84	* README-hacking (Release Procedure): Remind about updating
85	maintainer tools before a release.
86	* THANKS (W.C.A. Wijngaards): Add.
87	* configure.ac (AC_PREREQ): Set to 2.68, which fixes the YACC
88	typo.
89
902011-07-10  Joel E. Denny  <joeldenny@joeldenny.org>
91
92	build: create xz instead of bzip2 tarballs.
93	Suggested by Jim Meyering at
94	<http://lists.gnu.org/archive/html/bug-bison/2011-06/msg00012.html>.
95	* README-hacking (Release Procedure): Update example.
96	* configure.ac (AM_INIT_AUTOMAKE): Replace dist-bzip2 with
97	dist-xz.
98
992011-05-29  Joel E. Denny  <joeldenny@joeldenny.org>
100
101	doc: clean up references to `Locations Overview'.
102	* doc/bison.texinfo (Locations Overview): Rename node to...
103	(Locations): ... this, which is its section name.  Update menus to
104	match that and not to use the title `Tracking Locations', which is
105	a different section.
106
1072011-05-29  Joel E. Denny  <joeldenny@joeldenny.org>
108
109	doc: clean up references to `Tracking Locations'.
110	* doc/bison.texinfo (Locations): Rename node to...
111	(Tracking Locations): ... this, which is its section name, and
112	update all cross references.  The trouble is that there is another
113	node about locations.  Its section name is `Locations', which was
114	easily confused with the node name of this node.  Moreover, its
115	node name is `Locations Overview', which was mistakenly used to
116	label some cross references to this node.
117
1182011-05-29  Joel E. Denny  <joeldenny@joeldenny.org>
119
120	doc: clean up `Named References' a little.
121	* doc/bison.texinfo (Named References): Rename section to match
122	the node name, and update all cross references.  Don't use the
123	acronyms RHS and LHS given that we don't expand them anywhere in
124	the manual.  Try to use @samp and @code properly.  Mention that
125	named references are experimental as we've already stated in NEWS.
126	(Destructor Decl): Expand the only remaining use of RHS or LHS.
127
1282011-05-29  Joel E. Denny  <joeldenny@joeldenny.org>
129
130	doc: motivate named references.
131	Suggested by Hans Aberg at
132	<http://lists.gnu.org/archive/html/bug-bison/2011-05/msg00008.html>.
133	* doc/bison.texinfo (Named References): Explain briefly how
134	they're better than the traditional positional references.
135
1362011-05-29  Joel E. Denny  <joeldenny@joeldenny.org>
137
138	doc: discuss named references after locations.
139	Reported by Hans Aberg at
140	<http://lists.gnu.org/archive/html/bug-bison/2011-05/msg00008.html>.
141	* NEWS (2.5.1): Document.
142	* doc/bison.texinfo (Named References): Because it discusses
143	locations in addition to semantic values, move this subsection out
144	of the section `Defining Language Semantics', where locations have
145	not yet been introduced, to be a new section after the following
146	section, `Tracking Locations'.
147
1482011-05-29  Joel E. Denny  <joeldenny@joeldenny.org>
149
150	Prepare for the possibility of a 2.5.1 release.
151	* NEWS (2.5.1): New heading.
152
1532011-05-14  Joel E. Denny  <joeldenny@joeldenny.org>
154
155	Version 2.5.
156	* NEWS (2.5): Set date.
157
1582011-05-14  Joel E. Denny  <joeldenny@joeldenny.org>
159
160	Don't use IF_LINT in Bison sources.
161	It creates unnecessary differences between the sources that Bison
162	maintainers build and test (given that maintainers normally
163	configure with --enable-gcc-warnings) and the sources that Bison
164	users build.  Instead, use PACIFY_CC, which doesn't.  This change
165	fixes compiler warnings reported by Tys Lefering at
166	<http://lists.gnu.org/archive/html/bison-patches/2011-05/msg00004.html>.
167	* configure.ac: Don't AC_DEFINE lint regardless of the configure
168	options.  This change affects imported gnulib sources, where
169	IF_LINT still appears and depends on lint.
170	* src/scan-gram.l, src/scan-skel.l: Replace uses of IF_LINT with
171	PACIFY_CC.
172	* src/system.h (IF_LINT): Remove cpp macro.
173	(PACIFY_CC): New cpp macro.
174
1752011-05-01  Joel E. Denny  <joeldenny@joeldenny.org>
176
177	Fix precedence for end token.
178	Since Bison 2.3b, which restored the ability of precedence
179	directives to assign user token numbers, doing so for user token
180	number 0 has produced an assertion failure.
181	* NEWS (2.5): Document fix.
182	* src/symtab.c (symbol_user_token_number_set): In the case of the
183	end token, don't decrement ntokens if it was never incremented.
184	* tests/regression.at (Token number in precedence declaration):
185	Extend.
186
1872011-05-01  Joel E. Denny  <joeldenny@joeldenny.org>
188
189	Prepare for 2.5 release.
190	* NEWS (2.5_rc1): Rename back to...
191	(2.5): ... this, and unset date.
192
1932011-05-01  Joel E. Denny  <joeldenny@joeldenny.org>
194
195	Version 2.5_rc1.
196	* NEWS (2.5): Rename to...
197	(2.5_rc1): ... this, and set date.
198
1992011-05-01  Joel E. Denny  <joeldenny@joeldenny.org>
200
201	Pacify -DGNULIB_POSIXCHECK.
202	* bootstrap.conf (gnulib_modules): Add all modules suggested by
203	-DGNULIB_POSIXCHECK.
204	* src/files.c (file_name_split)
205	* src/getargs.c (getargs)
206	* src/location.c (boundary_set_from_string)
207	* src/output.c (token_definitions_output, output_skeleton)
208	* src/parse-gram.y (prologue_declaration)
209	* src/scan-gram.l (handle_syncline)
210	* src/symtab.c (symbol_new): Use mbschr and mbsrchr instead of
211	strchr and strrchr.  In the cases of command-line options, file
212	names, and thus locations, functionality may be improved.  In the
213	case of symbol names, there should be no functional difference as
214	all characters are ASCII, so the intended benefit is just warning
215	suppression.
216
2172011-05-01  Joel E. Denny  <joeldenny@joeldenny.org>
218
219	* NEWS (2.5): Fix minor typos.
220
2212011-05-01  Joel E. Denny  <joeldenny@joeldenny.org>
222
223	doc: clean up quotation style in NEWS.
224	* NEWS (2.5): For multi-character tokens in example grammar rules,
225	use "token" not 'token'.  In English, use a consistent quotation
226	style; we might as well follow the precedent seen in info pages:
227	`quote' not "quote".
228
2292011-04-16  Joel E. Denny  <joeldenny@joeldenny.org>
230
231	tests: pacify gcc 4.6.0's -Wunused-but-set-variable.
232	Reported by Jim Meyering at
233	<http://lists.gnu.org/archive/html/bug-bison/2011-04/msg00002.html>.
234	* tests/actions.at
235	(Default %printer and %destructor for mid-rule values): Define
236	YYLLOC_DEFAULT so that it uses its Rhs argument.
237
2382011-04-16  Joel E. Denny  <joeldenny@joeldenny.org>
239
240	glr.c: omit yyresolveLocations when locations are disabled.
241	This prevents gcc 4.6.0's -Wunused-but-set-variable from warning
242	about yyresolveLocations's local yyrhsloc.  When locations are
243	enabled, there's no such warning because YYLLOC_DEFAULT then uses
244	yyrhsloc.  Reported by Jim Meyering at
245	<http://lists.gnu.org/archive/html/bug-bison/2011-04/msg00002.html>.
246	* data/glr.c (yyresolveLocations): Omit definition when locations
247	are disabled.
248	(yyresolveValue): Omit yyresolveLocations invocation when
249	locations are disabled.
250
2512011-04-16  Joel E. Denny  <joeldenny@joeldenny.org>
252
253	gnulib, autoconf: update.
254	* README-hacking (Updating a submodule): Give advice on how to
255	determine the versions of gnulib and autoconf to which we should
256	update.
257	(Release Procedure): Note that submodules should be updated.
258	* bootstrap.conf (gnulib_modules): Rename pipe to spawn-pipe as
259	suggested in updated gnulib NEWS.
260	* gnulib: Choose a stable snapshot according to advice in Bison's
261	README-hacking.
262	* po/POTFILES.in (lib/pipe.c): Rename to...
263	(lib/spawn-pipe.c): ... this.
264	* src/output.c: Update to include spawn-pipe.h.
265	* submodules/autoconf: Update to latest for improvement in m4.m4
266	that excludes M4 with buggy strstr.  The only other changes to
267	files that we use are copyright updates.
268
2692011-04-09  Joel E. Denny  <joeldenny@joeldenny.org>
270
271	Fix missing updates to GPLv3.
272	Reported by Tys Lefering at
273	<http://lists.gnu.org/archive/html/bison-patches/2011-04/msg00000.html>.
274	* src/print-xml.c, src/print-xml.h: In these files.
275
2762011-03-27  Joel E. Denny  <joeldenny@joeldenny.org>
277
278	Add -Wconflicts-sr and -Wconflicts-rr.
279	Thus, conflict reports are now affected by -Werror and -Wnone
280	(unless %expect or %expect-rr is specified).  Reported by George
281	Neuner at
282	<http://lists.gnu.org/archive/html/bug-bison/2010-08/msg00002.html>.
283	* NEWS (2.5): Document.
284	* doc/bison.texinfo (Bison Options): Document.
285	* src/complain.c, src/complain.h (set_warning_issued): Export
286	function.
287	* src/conflicts.c (conflicts_print): Suppress conflict report
288	based on -Wno-conflicts-sr and -Wno-conflicts-rr, and treat
289	conflicts as errors if -Werror.
290	* src/getargs.c (warnings_flag): Initialize with
291	warnings_conflicts_sr and warnings_conflicts_rr as well.
292	(warnings_args, warnings_types): Add entries for
293	warnings_conflicts_sr and warnings_conflicts_rr.
294	(usage): Update.
295	* src/getargs.h (enum warnings): Add entries for
296	warnings_conflicts_sr and warnings_conflicts_rr.
297	* tests/conflicts.at (-W versus %expect and %expect-rr): New test
298	group.
299	* tests/local.at (AT_BISON_CHECK_NO_XML): Update now that the
300	conflict report can produce a "warnings being treated as errors"
301	message.  Also, check that stderr is now fully scrubbed by -Wnone
302	when the exit status is 0.
303
3042011-03-27  Joel E. Denny  <joeldenny@joeldenny.org>
305
306	Pacify maintainer-check-posix.
307	Adding command-line options after the grammar file name is not
308	permitted, so disable checks that do that when
309	maintainer-check-posix is running.
310	* tests/local.at (AT_BISON_CHECK_NO_XML): Don't run the
311	problematic checks when POSIXLY_CORRECT=1.  Also, for readability,
312	remove an unnecessary m4_if.
313
3142011-03-27  Joel E. Denny  <joeldenny@joeldenny.org>
315
316	Add -Wother so -Wnone suppresses all warnings.
317	Reported by George Neuner at
318	<http://lists.gnu.org/archive/html/bug-bison/2010-08/msg00002.html>.
319	* NEWS (2.5): Document.
320	* THANKS (George Neuner): Add.
321	* doc/bison.texinfo (Bison Options): Document.
322	* src/complain.c, src/complain.h
323	(warn_at, warn_at_indent, warn): Suppress warning if -Wno-other.
324	(midrule_value_at): New warning function, similar to yacc_at in
325	that it's controlled by its own warning category.
326	* src/getargs.c (warnings_flag): Initialize to warnings_other.
327	(warnings_args, warnings_types): Add entry for warnings_other.
328	(usage): Update.
329	* src/getargs.h (enum warnings): Add entry for warnings_other.
330	* src/gram.c (grammar_rules_useless_report): If -Wno-other, then
331	don't print useless rules.
332	* src/reader.c (symbol_should_be_used): Rather than adjusting the
333	return value based on whether midrule value warnings are enabled,
334	accept a new parameter for telling the caller whether true is
335	being returned for a potential midrule warning.
336	(grammar_rule_check): Use midrule_value_at for midrule value
337	warnings, and continue to use warn_at for all other warnings.  Let
338	them check whether the warnings are enabled.
339	* tests/local.at (AT_BISON_CHECK): Update documentation.
340	(AT_BISON_CHECK_NO_XML): Check that -Wnone and --warnings=none
341	disable all warnings exercised in the test suite.
342
3432011-03-27  Joel E. Denny  <joeldenny@joeldenny.org>
344
345	Don't let -Wnone disable -Werror.
346	Discussed at
347	<http://lists.gnu.org/archive/html/bison-patches/2010-08/msg00009.html>.
348	* NEWS (2.5): Document.
349	* src/getargs.c (flags_argmatch): Accept a new argument that
350	specifies what flags "all" and thus "none" affect.
351	(FLAGS_ARGMATCH): Update flags_argmatch invocation.
352	* tests/input.at (-Werror is not affected by -Wnone and -Wall):
353	New test group.
354
3552011-03-27  Joel E. Denny  <joeldenny@joeldenny.org>
356
357	* NEWS (2.5): Document fix for -Wno-CATEGORY.
358
3592008-11-21  Di-an Jan  <dianj@freeshell.org>
360
361	Implement no-XXX arguments for --warnings, --report, --trace.
362	* src/getargs.c (flags_argmatch): Handles no-XXX.
363	Fix typo in doxygen comment.
364
3652011-03-20  Joel E. Denny  <joeldenny@joeldenny.org>
366
367	doc: fix confusing citation of LAC publication.
368	Suggested by Akim Demaille.
369	* doc/bison.texinfo (LAC): Here.
370
3712011-03-20  Joel E. Denny  <joeldenny@joeldenny.org>
372
373	lr.default-reductions: rename "full" value to "most".
374	Unlike "consistent" and "accepting", "full" doesn't answer the
375	question of "which states".
376	* doc/bison.texinfo (%define Summary): Update.
377	(Default Reductions): Update.
378	* src/print.c (print_reductions): Update.
379	* src/reader.c (prepare_percent_define_front_end_variables):
380	Update.
381	* src/tables.c (action_row): Update.
382	* tests/input.at (%define enum variables): Update.
383	* tests/reduce.at (%define lr.default-reductions): Update.
384
3852011-03-13  Joel E. Denny  <joeldenny@joeldenny.org>
386
387	* src/parse-gram.c, src/parse-gram.h: Regenerate.
388
3892011-03-09  Akim Demaille  <akim@lrde.epita.fr>
390
391	named references: fix double free.
392	In `rhs[name]: "a" | "b"', do not free "name" twice.
393	Reported by Tys Lefering.
394	<http://lists.gnu.org/archive/html/bug-bison/2010-06/msg00002.html>
395	* src/named-ref.h, src/named-ref.c (named_ref_copy): New.
396	* src/parse-gram.y (current_lhs): Rename as...
397	(current_lhs_symbol): this.
398	(current_lhs): New function.  Use it to free the current lhs
399	named reference.
400	* src/reader.c: Bind lhs to a copy of the current named reference.
401	* src/symlist.c: Rely on free (0) being valid.
402	* tests/named-refs.at: Test this.
403
4042011-03-09  Akim Demaille  <akim@lrde.epita.fr>
405
406	tests: style changes.
407	* tests/named-refs.at (Redundant words in LHS brackets)
408	(Unresolved references): here.
409
4102011-03-06  Joel E. Denny  <joeldenny@joeldenny.org>
411
412	java: fix parser tracing bug.
413	* NEWS (2.5): Document.
414	* data/lalr1.java (YYParser::YYStack::print): Don't skip top
415	element.
416
4172011-03-06  Joel E. Denny  <joeldenny@joeldenny.org>
418
419	java: finish fixing parser stack popping bug.
420	* NEWS (2.5): Document.
421	* data/lalr1.java (YYParser::YYStack::pop): Fix off-by-one error
422	in clearing the location stack.  Also fix pop function that
423	accepts no arguments.
424
4252011-03-06  Angelo Borsotti  <angelo.borsotti@gmail.com>  (tiny change)
426
427	java: fix parser stack popping bug.
428	Reported at
429	<http://lists.gnu.org/archive/html/bug-bison/2011-02/msg00005.html>.
430	* THANKS (Angelo Borsotti): Add.
431	* data/lalr1.java (YYParser::YYStack::pop): Fix off-by-one error
432	in clearing the value stack.  Previously, the top element of the
433	stack wasn't cleared and so the value was not garbage collected.
434
4352011-03-06  Joel E. Denny  <joeldenny@joeldenny.org>
436
437	doc: cite publication for LAC.
438	* doc/bison.texinfo (LAC): Here.
439
4402011-03-06  Joel E. Denny  <joeldenny@joeldenny.org>
441
442	doc: clean up terminology for mysterious conflicts.
443	* doc/bison.texinfo (Mystery Conflicts): Rename node to...
444	(Mysterious Conflicts): ... this, which is already the section
445	title and the name used in the index.  Update all cross-references
446	to this node.  Also, don't imply that R/R conflicts are the only
447	kind of mysterious conflict.
448
4492011-03-06  Joel E. Denny  <joeldenny@joeldenny.org>
450
451	lr.default-reductions: rename "all" value to "full".
452	States that shift the error token do not have default reductions,
453	and GLR disables some default reductions, so "all" was a misnomer.
454	* doc/bison.texinfo (%define Summary): Update.
455	(Default Reductions): Update.
456	* src/print.c (print_reductions): Update.
457	* src/reader.c (prepare_percent_define_front_end_variables):
458	Update.
459	* src/tables.c (action_row): Update.
460	* tests/input.at (%define enum variables): Update.
461	* tests/reduce.at (%define lr.default-reductions): Update.
462
4632011-03-06  Joel E. Denny  <joeldenny@joeldenny.org>
464
465	doc: create a new Tuning LR section in the manual.
466	And clean up all other documentation of the features described
467	there.
468	* NEWS (2.5): Tweak wording of lr.type and parse.lac entries a
469	bit, update the cross-references to the manual, and point out that
470	LAC has caveats.  Don't be so adamant that IELR+LAC=canonical LR.
471	That is, as the referenced section in the manual documents, LAC
472	does not fix infinite parsing loops on syntax errors.
473	* doc/bison.texinfo: Consistently drop the "(1)" suffix from LALR,
474	IELR, and LR in @cindex.
475	(%define Summary): Condense the entries for lr.default-reductions,
476	lr.keep-unreachable-states, lr.type, and parse.lac into brief
477	summaries, and cross-reference the appropriate subsections of
478	Tuning LR.  For parse.lac, mention that it's only implemented for
479	deterministic parsers in C.
480	(Error Reporting): When mentioning %error-verbose, mention LAC,
481	and add cross-reference to the LAC section.
482	(Tuning LR): New section with an extended version of the
483	documentation removed from %define Summary.  Change all
484	cross-references in the manual to point here instead of there.
485	(Calc++ Parser): When mentioning %error-verbose, mention LAC, and
486	add cross-reference to the LAC section.
487	(Table of Symbols): In %error-verbose and YYERROR_VERBOSE entries,
488	add cross-references to Error Reporting.
489	(Glossary): Capitalize entry titles consistently.  Add definitions
490	for "defaulted state" and "unreachable state".  Expand IELR
491	acronym in IELR's entry.
492
4932011-02-20  Joel E. Denny  <joeldenny@joeldenny.org>
494
495	doc: add bibliography to manual.
496	* doc/bison.texinfo (Mystery Conflicts): Cross-reference
497	bibliography instead of citing publications directly.
498	(Generalized LR Parsing): Likewise.
499	(Bibliography): New section.  Not all entries are cross-referenced
500	yet, but that will come in future patches.
501
5022011-02-19  Joel E. Denny  <joeldenny@joeldenny.org>
503
504	java: test and document previous bug fix.
505	* NEWS (2.5): Document it.
506	* tests/java.at (_AT_DATA_JAVA_CALC_Y): To one of the yyerror
507	invocations, pass a location that spans multiple tokens.  Change
508	yyerror to report all of a location rather than just the begin
509	position.  Extend yylex and Position to count tokens on a line.
510	Remove getHashCode as it's unused.  Update all expected output.
511
5122011-02-19  Bernd Kiefer  <kiefer@dfki.de>  (tiny change)
513
514	java: fix location handling bug.
515	Reported at
516	<http://lists.gnu.org/archive/html/bison-patches/2011-02/msg00005.html>.
517	* data/lalr1.java (YYParser::yylloc): For non-empty RHS, fix
518	reversed access to location stack.
519	* THANKS (Bernd Kiefer): Add.
520
5212010-05-11  Akim Demaille  <demaille@gostai.com>
522
523	doc: please Emacs.
524	* doc/bison.texinfo (Local Variables): Move this after the
525	LocalWords, since the latter are looked for in the whole document,
526	while the former are looked for only at its end.
527	Require american spell checking.
528
5292011-02-06  Joel E. Denny  <joeldenny@joeldenny.org>
530
531	doc: clean up new subsections in manual.
532	* doc/bison.texinfo (%define Summary): Reword so it reads well as
533	a separate section.  For example, add an intro, and move most of
534	the text outside of the @deffn so it is not indented so far.
535	(%code Summary): Likewise.
536	(Table of Symbols): Reword %code entry to match the %code entry in
537	Decl Summary.
538
5392011-02-06  Joel E. Denny  <joeldenny@joeldenny.org>
540
541	doc: finish splitting apart the manual's Decl Summary section.
542	Suggested by Akim Demaille at
543	<http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00013.html>.
544	* doc/bison.texinfo (Decl Summary): Extract most of the %define
545	entry into...
546	(%define Summary): ... this new subsection, and update all
547	cross-references.  For readability of the patches, rewriting of
548	the text so it makes sense as a separate subsection will come in a
549	later patch.  Moreover, the majority of the text describing the
550	various new LR features should likely move to another new section
551	somewhere.
552
5532011-02-06  Joel E. Denny  <joeldenny@joeldenny.org>
554
555	doc: begin to split apart the manual's Decl Summary section.
556	Discussed in thread starting at
557	<http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00013.html>.
558	* doc/bison.texinfo (Decl Summary): Extract most of the %code
559	entry into...
560	(%code Summary): ... this new subsection, and update all
561	cross-references.  For readability of the patches, rewriting of
562	the text so it makes sense as a separate subsection will come in a
563	later patch.
564
5652011-02-06  Joel E. Denny  <joeldenny@joeldenny.org>
566
567	doc: clean up naming of various Bison files.
568	The Bison manual's names for various files associated with a Bison
569	parser has devolved into inconsistency.  This patch makes the
570	naming consistent for the most important files.  First, it chooses
571	"grammar file" over "input file".  The former appears to be more
572	traditional in the Bison manual, and Bison has other input
573	files (skeletons).  Second, it chooses "parser implementation
574	file" over names like "parser file", "parser source file", "parser
575	source code file", and "parser output file".  The new name makes
576	it clearer where Bison generates the main parser implementation,
577	and it is easily distinguishable from "parser header file".
578	* doc/bison.texinfo: Implement throughout.
579
5802011-02-06  Joel E. Denny  <joeldenny@joeldenny.org>
581
582	doc: give credit to more of Bison's developers.
583	* doc/bison.texinfo (Introduction): Don't imply that only Robert
584	Corbett, Richard Stallman, and Wilfred Hansen have contributed to
585	Bison.  However, I don't have time to write a full history, so
586	just point readers to THANKS and ChangeLog.
587
5882011-02-06  Joel E. Denny  <joeldenny@joeldenny.org>
589
590	doc: document experimental features better.
591	* doc/bison.texinfo (Introduction): Say that IELR(1) and canonical
592	LR(1) are experimental.  Mention Java.  Normally experimental
593	features probably shouldn't be mentioned in the introduction.
594	However, if Bison's limitations to LALR(1), C, and C++ are so
595	important that they should be mentioned here, then it's important
596	to point out that Bison is beginning to escape those limitations.
597	Moreover, these particular experimental features have very little
598	chance of being removed.
599	* src/getargs.c (usage): Say that IELR(1) and canonical LR(1) are
600	experimental.
601
6022011-01-29  Joel E. Denny  <joeldenny@joeldenny.org>
603
604	Do not allow identifiers that start with a dash.
605	This cleans up our previous fixes for a bug whereby Bison
606	discarded `.field' in `$-1.field'.  The previous fixes were less
607	restrictive about where a dash could appear in an identifier, but
608	the restrictions were hard to explain.  That bug was reported and
609	this final fix was originally suggested by Paul Hilfinger.  This
610	also fixes a remaining bug reported by Paul Eggert whereby Bison
611	parses `%token ID -123' as `%token ID - 123' and handles `-' as an
612	identifier.  Now, `-' cannot be an identifier.  Discussed in
613	threads beginning at
614	<http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00000.html>,
615	<http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00004.html>.
616	* NEWS (2.5): Update entry describing the dash extension to
617	grammar symbol names.  Also, move that entry before the named
618	references entry because the latter mentions the former.
619	* doc/bison.texinfo (Symbol): Update documentation for symbol
620	names.  As suggested by Paul Eggert, mention the effect of periods
621	and dashes on named references.
622	(Decl Summary): Update documentation for unquoted %define values,
623	which, as a side effect, can no longer start with dashes either.
624	* src/scan-code.l (id): Implement.
625	* src/scan-gram.l (id): Implement.
626	* tests/actions.at (Exotic Dollars): Extend test group to exercise
627	bug reported by Paul Hilfinger.
628	* tests/input.at (Symbols): Update test group, and extend to
629	exercise bug reported by Paul Eggert.
630	* tests/named-refs.at (Stray symbols in brackets): Update test
631	group.
632	($ or @ followed by . or -): Likewise.
633	* tests/regression.at (Invalid inputs): Likewise.
634
6352011-01-24  Joel E. Denny  <joeldenny@joeldenny.org>
636
637	* data/yacc.c: Fix last apostrophe warning from xgettext.
638
6392011-01-09  Paul Eggert  <eggert@cs.ucla.edu>
640
641	Fix minor problems encountered by a fresh bootstrap.
642	* data/glr.c, data/yacc.c: Do not use apostrophes in '#' comments,
643	as they confuse xgettext, which tries to parse them as C character
644	constants in a preprocessor directive.
645	* data/yacc.c (yy_lac): Don't use printf %d format on *yyesp, as
646	that expression might not promote to int on some platforms.
647	* src/parse-gram.c, src/parse-gram.h: Regenerate.
648
6492011-01-09  Joel E. Denny  <joeldenny@joeldenny.org>
650
651	Improve error messages for `$' or `@' followed by `.' or `-'.
652	Previously, for this special case of an invalid reference, the
653	usual "symbol not found in production:" was printed.  However,
654	because the symbol name was parsed as the empty string, that
655	message was followed immediately by a newline instead of a symbol
656	name.  In reality, this is a syntax error, so the reference is
657	invalid regardless of the symbols actually appearing in the
658	production.  Discussed at
659	<http://lists.gnu.org/archive/html/bison-patches/2011-01/msg00012.html>.
660	* src/scan-code.l (parse_ref): Report the above case as a syntax
661	error.  Other than that, continue to handle this case like any
662	other invalid reference that Bison manages to parse because
663	"possibly meant" messages can still be helpful to the user.
664	* tests/named-refs.at ($ or @ followed by . or -): New test group.
665
6662011-01-08  Joel E. Denny  <joeldenny@joeldenny.org>
667
668	doc: don't use @acronym.
669	Lately, many GNU packages are dropping it.  See
670	<http://lists.gnu.org/archive/html/bison-patches/2011-01/msg00003.html>.
671	* doc/bison.texinfo: Remove all uses.
672
6732011-01-05  Alex Rozenman  <rozenman@gmail.com>
674
675	Do not allow identifiers that start with a negative number.
676	Reported by Paul Hilfinger as a side effect of named references
677	support at
678	<http://lists.gnu.org/archive/html/bug-bison/2011-01/msg00000.html>.
679	Suggested by Paul Eggert.
680	* src/scan-code.l ({letter}, {id}): Adjust lexical definitions.
681	* src/scan-gram.l ({letter}, {id}): Likewise.
682
6832011-01-03  Joel E. Denny  <joeldenny@joeldenny.org>
684
685	* ChangeLog (2011-01-02): improve description.
686
6872011-01-03  Joel E. Denny  <joeldenny@joeldenny.org>
688
689	maint: don't update copyright years in bootstrap.
690	* .x-update-copyright: Add entry for bootstrap.
691	* bootstrap: Remove 2011 from copyright years.  The bootstrap
692	version we're currently using comes from an older version of
693	gnulib.
694	* bootstrap.conf (bootstrap_sync): Add comments explaining this
695	issue.
696
6972011-01-02  Joel E. Denny  <joeldenny@joeldenny.org>
698
699	maint: run "make update-copyright".
700
7012011-01-02  Joel E. Denny  <joeldenny@joeldenny.org>
702
703	maint: prepare to use year ranges in copyright notices.
704	* README (Copyright statements): New section explaining the range
705	notation.  The GNU maintainers document requires this explanation:
706	<http://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices>.
707	I copied our explanation from coreutils.
708	* build-aux/update-b4-copyright: Revert 2010-06-17 changes that
709	disabled Bison's automated use of ranges.
710	* cfg.mk (update-copyright-env): Likewise.
711
7122011-01-02  Joel E. Denny  <joeldenny@joeldenny.org>
713
714	Correct my email address.
715	* ChangeLog: In all recent entries.
716	* THANKS (Joel E. Denny): Here.
717
7182010-12-19  Joel E. Denny  <joeldenny@joeldenny.org>
719
720	doc: cleanup.
721	* NEWS (2.5): Try to sort entries according to how interesting
722	users might find them.
723
7242010-12-19  Joel E. Denny  <joeldenny@joeldenny.org>
725
726	doc: cleanup.
727	* NEWS (2.5): Make some minor improvements to wording, and format
728	entries more consistently.
729	* doc/bison.texinfo (Language and Grammar): Point out that IELR
730	and canonical LR are experimental features.
731	(Decl Summary): In list of %define variables, make wording more
732	consistent.  Improve discussion of using LALR for GLR.
733
7342010-12-19  Joel E. Denny  <joeldenny@joeldenny.org>
735
736	parse.lac: document.
737	* NEWS (2.5): Add entry for LAC, and mention LAC in entry for
738	other corrections to verbose syntax error messages.
739	* doc/bison.texinfo (Decl Summary): Rewrite entries for
740	lr.default-reductions and lr.type to be clearer, to mention
741	%nonassoc's effect on canonical LR, and to mention LAC.  Add entry
742	for parse.lac.
743	(Glossary): Add entry for LAC.
744
7452010-12-11  Joel E. Denny  <joeldenny@joeldenny.org>
746
747	parse.lac: implement exploratory stack reallocations.
748	* data/yacc.c: Rename %define variable parse.lac.es-capacity to
749	parse.lac.es-capacity-initial.  Accept parse.lac.memory-trace
750	with values of "failures" (default) or "full".
751	(b4_declare_parser_state_variables): Add yyesa, yyes, and
752	yyes_capacity variables.
753	(YYSTACK_USE_ALLOCA): Ignore it if LAC requested.
754	(YYSTACK_ALLOC, YYSTACK_FREE, YYSTACK_ALLOC_MAXIMUM): Define if
755	LAC requested.
756	(YYCOPY_NEEDED): New cpp macro.
757	(YYCOPY): Define if LAC requested.
758	(yy_lac_stack_realloc): New function implementing stack
759	reallocations.  Use YYMAXDEPTH for maximum stack size given that
760	the stack should never need to grow larger than the main state
761	stack needs to grow without LAC.
762	(YY_LAC_ESTABLISH): Update yy_lac invocation.
763	(yy_lac): Add arguments for exploratory stack memory data
764	recorded in the main parser.  Invoke yy_lac_stack_realloc when
765	reallocation is necessary.
766	(yysyntax_error): Add the same new arguments and pass them to
767	yy_lac.
768	(yypstate_delete): Free yyes if necessary.
769	(yyesa, yyes, yyes_capacity): #define these to yypstate members
770	in the case of push parsing.
771	(yyparse, yypush_parse): Initialize yyes and yyes_capacity.
772	Update yysyntax_error invocations.  At yyreturn, free yyes if
773	necessary.
774	* src/parse-gram.y: %define parse.lac full.
775	* tests/input.at (LAC: errors for %define): Extend for
776	parse.lac-memory-trace.
777	* tests/regression.at (LAC: Exploratory stack): Extend to check
778	that stack reallocs happen when expected.
779	(LAC: Memory exhaustion): Update to use YYMAXDEPTH and
780	parse.lac.es-capacity-initial.
781
7822010-12-11  Joel E. Denny  <joeldenny@joeldenny.org>
783
784	parse.lac: implement as %define variable.
785	LAC = lookahead correction.  See discussion at
786	<http://lists.gnu.org/archive/html/bison-patches/2009-09/msg00034.html>.
787	However, one point there must be corrected: because of %nonassoc,
788	LAC is *not* always redundant for lr.type=canonical-lr.
789	* data/yacc.c: Accept values of "none" (default) or "full" for
790	parse.lac.  Accept %define parse.lac.es-capacity to specify
791	capacity of LAC's temporary exploratory stack.  It defaults to 20
792	and, for now, will not grow dynamically.
793	(b4_lac_flag, b4_lac_if): New m4 macros.  Evaluate as true for
794	parse.lac!=none.
795	(YYBACKUP): Invoke YY_LAC_DISCARD.
796	(YY_LAC_ESTABLISH, YY_LAC_DISCARD): New cpp macros that invoke
797	yy_lac and track when it needs to be invoked
798	(yy_lac): New function that, given the current stack, determines
799	whether a token can eventually be shifted.  Return status mimics
800	yyparse return status.
801	(yysyntax_error): Change yystate argument to yyssp so stack top
802	can be passed to yy_lac.  If LAC is requested, build expected
803	token list by invoking yy_lac for every token instead of just
804	checking the current state for lookaheads.  Return 2 if yy_lac
805	exhausts memory.
806	(yyparse, yypush_parse): Use local variable yy_lac_established and
807	cpp macros YY_LAC_ESTABLISH and YY_LAC_DISCARD to implement LAC.
808	Update yysyntax_error invocation.  Add yyexhaustedlab code if LAC
809	is requested.
810	* tests/conflicts.at (%nonassoc and eof): Extend to check the
811	effect of each of -Dlr.type=canonical-lr and -Dparse.lac=full.
812	(%error-verbose and consistent errors): Likewise.
813	(LAC: %nonassoc requires splitting canonical LR states): New test
814	group demonstrating how LAC can fix canonical LR.
815	* tests/input.at (LAC: Errors for %define): New test group.
816	* tests/regression.at (LAC: Exploratory stack): New test group.
817	(LAC: Memory exhaustion): New test group.
818
8192010-11-21  Joel E. Denny  <joeldenny@joeldenny.org>
820
821	build: use gnulib's new bootstrap_sync option.
822	Now, whenever we update bison's copy of gnulib, bootstrap will
823	update itself the next time it's run.
824	* bootstrap: Copy from latest gnulib for bootstrap_sync support.
825	* bootstrap.conf (bootstrap_sync): Set to true.
826	* gnulib: Update to latest so bootstrap is in sync now.
827
8282010-11-07  Joel E. Denny  <joeldenny@joeldenny.org>
829
830	yysyntax_error: adjust prior fixes for branch-2.5's lalr1.cc.
831	On master, there is no yychar in lalr1.cc, but there is on
832	branch-2.5, and the prior cherry-pick of "Fix handling of yychar
833	manipulation in user semantic actions" wasn't adjusted for that
834	difference.
835	* data/lalr1.cc (yy::parser::parse): Translate yychar before
836	every use of yytoken, and add comments explaining this approach.
837	* tests/conflicts.at (%error-verbose and consistent errors):
838	Extend to test yychar manipulation with lalr1.cc.
839
8402010-11-07  Joel E. Denny  <joeldenny@joeldenny.org>
841
842	yysyntax_error: fix for consistent error with lookahead.
843	* NEWS (2.5): Document.
844	* data/yacc.c (yysyntax_error): In a verbose syntax error
845	message while in a consistent state with a default action (which
846	must be an error action given that yysyntax_error is being
847	invoked), continue to drop the expected token list, but don't
848	drop the unexpected token unless there actually is no lookahead.
849	Moreover, handle that internally instead of returning 1 to tell
850	the caller to do it.  With that meaning of 1 gone, renumber
851	return codes more usefully.
852	(yyparse, yypush_parse): Update yysyntax_error usage.  Most
853	importantly, set yytoken to YYEMPTY when there's no lookahead.
854	* data/glr.c (yyreportSyntaxError): As in yacc.c, don't drop the
855	unexpected token unless there actually is no lookahead.
856	* data/lalr1.cc (yy::parser::parse): If there's no lookahead,
857	set yytoken to yyempty_ before invoking yysyntax_error_.
858	(yy::parser::yysyntax_error_): Again, don't drop the unexpected
859	token unless there actually is no lookahead.
860	* data/lalr1.java (YYParser::parse): If there's no lookahead,
861	set yytoken to yyempty_ before invoking yysyntax_error.
862	(YYParser::yysyntax_error): Again, don't drop the unexpected
863	token unless there actually is no lookahead.
864	* tests/conflicts.at (%error-verbose and consistent
865	errors): Extend test group to further reveal how the previous
866	use of the simple "syntax error" message was too general.  Test
867	yacc.c, glr.c, lalr1.cc, and lalr1.java.  No longer an expected
868	failure.
869	* tests/java.at (AT_JAVA_COMPILE, AT_JAVA_PARSER_CHECK): Move
870	to...
871	* tests/local.at: ... here.
872	(_AT_BISON_OPTION_PUSHDEFS): Push AT_SKEL_JAVA_IF definition.
873	(AT_BISON_OPTION_POPDEFS): Pop it.
874	(AT_FULL_COMPILE): Extend to handle Java.
875
8762010-11-07  Joel E. Denny  <joeldenny@joeldenny.org>
877
878	yysyntax_error: more preparation for readability of next patch.
879	There are no behavioral changes here.
880	* data/glr.c (yyreportSyntaxError): Reorganize.
881	* data/lalr1.cc (yy::parser::yysyntax_error_): Reorganize.
882	* tests/conflicts.at (%error-verbose and consistent errors):
883	Reorganize.
884
8852010-11-07  Joel E. Denny  <joeldenny@joeldenny.org>
886
887	yysyntax_error: prepare for readability of next patches.
888	These are purely whitespace changes that result in ugly code
889	but that make the next couple of patches much easier to read.
890	* data/glr.c (yyreportSyntaxError): Reindent.
891	* data/lalr1.cc (yy::parser::yysyntax_error_): Reindent.
892	* data/lalr1.java (YYParser::yysyntax_error): Reindent.
893	* data/yacc.c (yysyntax_error): Reindent.
894
8952010-10-31  Joel E. Denny  <joeldenny@joeldenny.org>
896
897	yysyntax_error: improve invocation readability.
898	* data/yacc.c (yyparse, yypush_parse): For yysyntax_error
899	invocation, get rid of the while loop, which is misleading
900	because there are really at most two iterations.
901
9022010-10-31  Joel E. Denny  <joeldenny@joeldenny.org>
903
904	* ChangeLog: Correct some errors in previous entries.
905
9062010-10-17  Joel E. Denny  <joeldenny@joeldenny.org>
907
908	maint: re-anchor all .gitignore entries.
909	* bootstrap: Copy from gnulib's latest for the fix to
910	automatically anchor entries it constructs.
911	* gnulib: Update to latest just so it has the same bootstrap.
912	* .gitignore, build-aux/.gitignore, doc/.gitignore:
913	* lib/.gitignore, m4/.gitignore, po/.gitignore:
914	* runtime-po/.gitignore: Re-anchor all entries.
915
9162010-10-08  Paul Eggert  <eggert@cs.ucla.edu>
917
918	Fix portability problem on OpenBSD 4.7.
919
920	Jim Meyering reported this in
921	<http://lists.gnu.org/archive/html/bug-bison/2010-10/msg00007.html>.
922	* data/yacc.c: Use EXIT_SUCCESS as a witness for stdlib.h,
923	not _STDLIB_H.  EXIT_SUCCESS has been defined by the standard
924	for quite some time.
925	* src/parse-gram.c, src/parse-gram.h: Regenerate.
926	* tests/regression.at: Tamper with the renamed witness.
927
928	Adjust to recent changes to gnulib bootstrap.
929
930	* .cvsignore, build-aux/.cvsignore, doc/.cvsignore, etc/.cvsignore:
931	* examples/calc++/.cvsignore, lib/.cvsignore, m4/.cvsignore:
932	* po/.cvsignore, runtime-po/.cvsignore, src/.cvsignore:
933	* tests/.cvsignore: Remove; I don't use CVS to maintain Bison
934	anymore and don't know of anybody else who does.  If someone needs
935	these files, they can resurrect them.
936	* .gitignore, build-aux/.gitignore, doc/.gitignore, lib/.gitignore:
937	* m4/.gitignore, po/.gitignore, runtime-po/.gitignore:
938	Omit leading '/', since bootstrap omits it.
939	Adjust file names to match current contents better.
940	* bootstrap: Sync from gnulib: this contains the new gnulib_mk_hook
941	installed just for us.
942	* bootstrap.conf (excluded_files): Don't exclude codeset.m4,
943	glibc21.m4, inttypes_h.m4, size_max.m4, xsize.m4, as they are now
944	needed somehow.  Don't have time to look into why.
945	(gnulib_modules): Change malloc to malloc-gnu.  Do we really assume
946	the GNU malloc behavior, where malloc (0) != NULL unless we're
947	out of storage?  If not, we can omit malloc-gnu; but for now I left
948	it in to be safe.
949	(vc_ignore): Remove.
950	* README-hacking: Renamed from HACKING, since gnulib bootstrap now
951	uses that convention.
952
9532010-08-05  Joel E. Denny  <joeldenny@joeldenny.org>
954
955	Version 2.4.3.
956	* NEWS (2.4.3): Set date.
957
9582010-08-04  Joel E. Denny  <joeldenny@joeldenny.org>
959
960	maint: add gettext version to release announcements.
961	Suggested by Paul Hilfinger at
962	<http://lists.gnu.org/archive/html/bison-patches/2010-07/msg00019.html>
963	<http://lists.gnu.org/archive/html/bison-patches/2010-08/msg00002.html>.
964	* cfg.mk (bootstrap-tools): Add gettext.
965
9662010-08-04  Joel E. Denny  <joeldenny@joeldenny.org>
967
968	doc: fix -W and %expect documentation some.
969	* NEWS (2.4.3): Mention that there are documentation fixes.
970	* doc/bison.texinfo (Expect Decl): Make it clear that %expect
971	turns conflicts into errors not warnings.
972	(Shift/Reduce): Likewise.
973	(Bison Options): Don't mention -Wsyntax.  It doesn't exist.
974
9752010-08-01  Joel E. Denny  <joeldenny@joeldenny.org>
976
977	-Werror: fix for rules useless in parser after conflicts.
978	* NEWS (2.4.3): Document fix.
979	* src/complain.c (error_message): Extend to handle incomplete
980	error messages so warn and warn_at can be used in more cases.
981	* src/gram.c (grammar_rules_useless_report): Use warn_at so that
982	-Werror is always obeyed.
983	* src/reduce.c (reduce_print): Use warn so that the "warnings
984	being treated as errors" message is printed consistently before
985	the first warning message.  This makes testing easier.
986	* tests/local.at (AT_BISON_WERROR_MSG): New macro.
987	(AT_BISON_CHECK_NO_XML): Extend to check -Werror and
988	--warnings=error when warnings appear in bison's stderr.
989
9902010-07-29  Joel E. Denny  <joeldenny@joeldenny.org>
991
992	maint: enable gnits only at stable releases.
993	* configure.ac (AM_INIT_AUTOMAKE): Underscore or dash in a
994	version string should disable gnits.  Explain in comments.
995
9962010-07-28  Joel E. Denny  <joeldenny@joeldenny.org>
997
998	i18n: update.
999	* po/POTFILES.in: Add src/graphviz.c.
1000
10012010-07-28  Joel E. Denny  <joeldenny@joeldenny.org>
1002
1003	i18n: fix for gnulib.
1004	* po/POTFILES.in: Add remaining gnulib files that have
1005	translatable strings.
1006
10072010-07-25  Joel E. Denny  <joeldenny@joeldenny.org>
1008
1009	maint: use announce-gen's new --mail-headers.
1010	* HACKING (Announce): Update instructions.
1011	* cfg.mk (announcement_Cc_): Define.
1012	* configure.ac (AM_GNU_GETTEXT_VERSION): Update to 0.18 as
1013	required by latest gnulib.
1014	* gnulib: Update to latest.
1015
10162010-07-24  Joel E. Denny  <joeldenny@joeldenny.org>
1017
1018	tests: handle Valgrind that complains about >&-.
1019	* tests/output.at (AT_CHECK_OUTPUT): Extend to accept pre-tests.
1020	(Output files: -dv >&-): Skip test group if running
1021	maintainer-check-valgrind.
1022
10232010-06-17  Paul Eggert  <eggert@cs.ucla.edu>
1024
1025	Update from GFDL GFDL 1.2 to 1.3.
1026	* doc/bison.texinfo: Update GFDL version number.
1027	* doc/fdl.texi: Update to version 1.3, taken from:
1028	http://www.gnu.org/licenses/fdl.texi
1029
10302010-06-17  Paul Eggert  <eggert@cs.ucla.edu>
1031
1032	Do not use date ranges in copyright notices.
1033	See http://www.gnu.org/prep/maintain/maintain.html#Copyright-Notices
1034
1035	* HACKING, Makefile.am, NEWS, PACKAGING, README, README-alpha:
1036	* TODO, bootstrap, bootstrap.conf:
1037	* build-aux/update-b4-copyright, cfg.mk, configure.ac:
1038	* data/README, data/bison.m4, data/c++-skel.m4, data/c++.m4:
1039	* data/c-skel.m4, data/c.m4, data/glr.c, data/glr.cc:
1040	* data/java-skel.m4, data/java.m4, data/lalr1.cc:
1041	* data/lalr1.java, data/location.cc:
1042	* data/xslt/bison.xsl:
1043	* data/xslt/xml2dot.xsl, data/xslt/xml2text.xsl:
1044	* data/xslt/xml2xhtml.xsl, data/yacc.c, djgpp/Makefile.maint:
1045	* djgpp/README.in, djgpp/config.bat, djgpp/config.sed:
1046	* djgpp/config.site, djgpp/config_h.sed, djgpp/djunpack.bat:
1047	* djgpp/subpipe.c, djgpp/subpipe.h:
1048	* djgpp/testsuite.sed, doc/bison.texinfo:
1049	* doc/refcard.tex, etc/README, etc/bench.pl.in:
1050	* examples/calc++/Makefile.am, examples/extexi:
1051	* lib/abitset.c, lib/abitset.h:
1052	* lib/bbitset.h, lib/bitset.c, lib/bitset.h:
1053	* lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c:
1054	* lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h:
1055	* lib/ebitset.c, lib/ebitset.h, lib/get-errno.c:
1056	* lib/get-errno.h, lib/lbitset.c, lib/lbitset.h:
1057	* lib/libiberty.h, lib/main.c, lib/timevar.c:
1058	* lib/timevar.def, lib/timevar.h, lib/vbitset.c:
1059	* lib/vbitset.h, lib/yyerror.c, m4/bison-i18n.m4:
1060	* m4/c-working.m4, m4/cxx.m4, m4/subpipe.m4, m4/timevar.m4:
1061	* src/AnnotationList.c, src/AnnotationList.h:
1062	* src/InadequacyList.c, src/InadequacyList.h, src/LR0.c:
1063	* src/LR0.h, src/Sbitset.c, src/Sbitset.h, src/assoc.c:
1064	* src/assoc.h, src/closure.c, src/closure.h, src/complain.c:
1065	* src/complain.h, src/conflicts.c, src/conflicts.h:
1066	* src/derives.c, src/derives.h, src/files.c, src/files.h:
1067	* src/flex-scanner.h, src/getargs.c, src/getargs.h:
1068	* src/gram.c, src/gram.h, src/graphviz.c, src/ielr.c:
1069	* src/ielr.h, src/lalr.c, src/lalr.h:
1070	* src/location.c, src/location.h, src/main.c:
1071	* src/muscle-tab.c, src/muscle-tab.h, src/named-ref.c:
1072	* src/named-ref.h, src/nullable.c, src/nullable.h:
1073	* src/output.c, src/output.h, src/parse-gram.y:
1074	* src/print-xml.c, src/print-xml.h, src/print.c, src/print.h:
1075	* src/print_graph.c, src/print_graph.h, src/reader.c:
1076	* src/reader.h, src/reduce.c, src/reduce.h, src/relation.c:
1077	* src/relation.h, src/scan-code.h, src/scan-code.l:
1078	* src/scan-gram.h, src/scan-gram.l, src/scan-skel.h:
1079	* src/scan-skel.l, src/state.c, src/state.h, src/symlist.c:
1080	* src/symlist.h, src/symtab.c, src/symtab.h, src/system.h:
1081	* src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h:
1082	* tests/actions.at, tests/atlocal.in, tests/c++.at:
1083	* tests/calc.at, tests/conflicts.at, tests/cxx-type.at:
1084	* tests/existing.at, tests/glr-regression.at:
1085	* tests/headers.at, tests/input.at, tests/java.at:
1086	* tests/local.at, tests/named-refs.at:
1087	* tests/output.at, tests/push.at, tests/reduce.at:
1088	* tests/regression.at, tests/sets.at, tests/skeletons.at:
1089	* tests/synclines.at, tests/testsuite.at, tests/torture.at:
1090	* data/Makefile.am, data/location.cc, doc/Makefile.am, src/Makefile.am:
1091	* tests/Makefile.am, lib/Makefile.am, examples/Makefile.am:
1092	* etc/Makefile.am:
1093	Don't use date ranges in copyright notices.
1094
10952010-05-11  Akim Demaille  <demaille@gostai.com>
1096
1097	lalrl1.cc: give a chance to user defined YYLLOC_DEFAULT.
1098	* data/lalr1.cc (YYLLOC_DEFAULT): Move its definition from the
1099	header file to the implementation file, after the user %code
1100	sections.
1101	* NEWS (2.5): Document this.
1102
11032010-05-07  Akim Demaille  <demaille@gostai.com>
1104
1105	c++: use YYRHSLOC.
1106	* data/lalr1.cc (YYRHSLOC): New.
1107	(YYLLOC_DEFAULT): Use it.
1108	* data/glr.cc: If location_type was user defined, do not include
1109	location.hh, and do not produce location.hh and position.hh.
1110	* tests/calc.at (YYLLOC_DEFAULT): Use YYRHSLOC.
1111	Check that glr.cc supports user defined location_type.
1112	* NEWS: Document this.
1113
11142010-05-10  Akim Demaille  <demaille@gostai.com>
1115
1116	doc: fix lalr1.cc documentation.
1117	* doc/bison.texinfo (C++ Scanner Interface): Fix yylex signature.
1118	(C++ Bison Interface): Fix lalr1.cc skeleton name.
1119	(C++ Parser Interface): Fix semantic_type and location_type names.
1120	Document yy::parser::token.
1121	Reported by Jerry Quinn.
1122
11232010-05-04  Akim Demaille  <demaille@gostai.com>
1124
1125	lalr1.cc: don't generate location.hh when location_type is defined
1126	* data/bison.m4 (b4_percent_define_use): New.
1127	(b4_percent_define_get): Use it.
1128	Accept a default value.
1129	* data/c++.m4: Do not provide a default value for the %define
1130	variable location_type, rather, use b4_percent_define_get with a
1131	default argument where its value is needed.
1132	* data/lalr1.cc: Do not load location.cc (which outputs both
1133	location.hh and position.hh) if the user defined location_type.
1134	Do not include location.hh either.
1135	* data/glr.cc: Likewise.
1136
11372010-05-04  Akim Demaille  <demaille@gostai.com>
1138
1139	lalr1.cc: location_type: make sure we don't depend on loc.(begin|end).
1140	* tests/calc.at (Span): Instead of begin/end, as in the built-in
1141	location class, use first and last.
1142	Define YYLLOC_DEFAULT to adjust to these changes.
1143	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Adjust to the
1144	location_type changes.
1145
11462010-05-04  Akim Demaille  <demaille@gostai.com>
1147
1148	tests: enhance AT_SYNCLINES_COMPILE.
1149	* tests/synclines.at (AT_TEST_SYNCLINE): Move GCC 4.5 protection
1150	into...
1151	(AT_SYNCLINES_COMPILE): here.
1152	Add more distcc patterns.
1153
11542010-05-01  Joel E. Denny  <joeldenny@joeldenny.org>
1155
1156	tests: fix maintainer-xml-check.
1157	* data/xslt/xml2dot.xsl (xsl:template match="bison-xml-report"):
1158	Update output to include comments now produced by --graph.
1159	(xsl:template match="automaton"): As for --graph, name the
1160	digraph after the grammar file.
1161	* src/print-xml.c (escape_bufs): Enlarge array.
1162	(print_xml): Add bug-report and url attributes to
1163	bison-xml-report element.
1164
11652010-05-01  Joel E. Denny  <joeldenny@joeldenny.org>
1166
1167	In DOT output, convert from "/*" comments to "//" comments.
1168	This handles the possibility that a "*/" might appear in
1169	variable portions of those comments at some point in the future.
1170	* src/graphviz.c (start_graph): Implement.
1171
11722010-04-30  Joel E. Denny  <joeldenny@joeldenny.org>
1173
1174	Document that undefined %prec identifier warnings will remain.
1175	* NEWS (2.4.3): Here.
1176	(2.4.2): Here.
1177
11782010-04-30  Joel E. Denny  <joeldenny@joeldenny.org>
1179
1180	Revert 2009-12-30 change for undefined %prec token complaints.
1181	That is, keep them as warnings because that should be sufficient
1182	to satisfy POSIX without creating backward compatibility issues.
1183	Suggested by Richard Stallman at
1184	<http://lists.gnu.org/archive/html/bison-patches/2010-03/msg00033.html>.
1185	* NEWS (2.5): Remove mention of complaint.
1186	* src/reader.c (grammar_rule_check): Convert complaint back to
1187	warning.
1188	* tests/input.at (%prec's token must be defined): Update.
1189
11902010-04-25  Joel E. Denny  <joeldenny@joeldenny.org>
1191
1192	build: don't require src/bison during bootstrap.
1193	Suggested by Eric Blake at
1194	<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00003.html>.
1195	* bootstrap.conf (bootstrap_epilogue): New function to make sure
1196	src/parse-gram.[ch] are stamped later than src/parse-gram.y.
1197
11982010-04-25  Joel E. Denny  <joeldenny@joeldenny.org>
1199
1200	i18n: fix untranslatable string.
1201	Reported by Goran Uddeborg at
1202	<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00000.html>.
1203	* src/muscle-tab.c (muscle_percent_define_insert): Here.
1204
12052010-04-13  Akim Demaille  <demaille@gostai.com>
1206
1207	tests: calc: minor refactoring.
1208	* tests/calc.at (_AT_DATA_CALC_Y): Simplify yylex.
1209
12102010-04-13  Akim Demaille  <demaille@gostai.com>
1211
1212	tests: calc: simplify location management.
1213	* tests/local.at (AT_LOC_PUSHDEF, AT_LOC_POPDEF): New.
1214	(_AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Use them to
1215	define the appropriate AT_LOC accessors.
1216	* tests/calc.at: Use AT_LOC accessors.
1217
12182010-04-13  Akim Demaille  <demaille@gostai.com>
1219
1220	test location_type.
1221	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS):
1222	Define AT_LOCATION_TYPE_IF.
1223	(_AT_BISON_OPTION_POPDEFS): Undefine AT_LOCATION_TYPE_IF.
1224	* tests/calc.at (_AT_DATA_CALC_Y): When %define location_type is
1225	used, provide a user location type and use it.
1226	(Simple LALR1 C++ Calculator): Add a test case for location_type.
1227
12282010-04-13  Akim Demaille  <demaille@gostai.com>
1229
1230	tests: check fclose's return value.
1231	* tests/calc.at (_AT_DATA_CALC_Y): Check fclose's return status.
1232
12332010-04-13  Akim Demaille  <demaille@gostai.com>
1234
1235	tests: don't depend on the actual location type.
1236	* tests/calc.at: Use yy::parser::location_type rather than
1237	yy::location, since the former is always right, and might point to
1238	another type than the latter.
1239
12402010-04-13  Akim Demaille  <demaille@gostai.com>
1241
1242	formatting changes.
1243	* tests/calc.at: Formatting changes.
1244
12452010-04-13  Akim Demaille  <demaille@gostai.com>
1246
1247	lalr1.cc: remove useless forward declaration.
1248	* data/lalr1.cc: Include location.hh before stack.hh.
1249	Remove the useless forward declarations of position and location.
1250	Reported by Chris Morley.
1251	* data/glr.cc: Likewise.
1252
12532010-04-11  Joel E. Denny  <joeldenny@joeldenny.org>
1254
1255	* NEWS (2.4.3): Mention fix for Sun Studio C++.
1256
12572010-04-10  Joel E. Denny  <joeldenny@joeldenny.org>
1258
1259	tests: fix for newer Sun Studio C++.
1260	Reported by Dagobert Michelsen at
1261	<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00023.html>.
1262	* THANKS (Dagobert Michelsen): Add.
1263	* configure.ac (AC_PREREQ): Set to 2.64 so we get the latest
1264	Autoconf macro for handling the restrict keyword.
1265	* gnulib: Update to latest, which no longer overrides that macro
1266	from Autoconf.
1267
12682010-04-03  Joel E. Denny  <jdenny@ces.clemson.edu>
1269
1270	portability: fix pointer arithmetic to conform to C standard.
1271	Reported by Tys Lefering at
1272	<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00035.html>.
1273	This fix is already implemented in glr.c and does not apply to
1274	lalr1.java.
1275	* data/lalr1.cc (yy::parser::parse): Increase size of
1276	yyerror_range and adjust subscripting so you don't have to
1277	subtract one from the beginning of the array.
1278	* data/yacc.c (b4_declare_parser_state_variables,
1279	yyparse, yypush_parse): Likewise.
1280
12812010-04-05  Akim Demaille  <demaille@gostai.com>
1282
1283	remove useless include.
1284	* src/graphviz.h: Don't include stdbool.h.
1285
12862010-04-05  Akim Demaille  <demaille@gostai.com>
1287
1288	graph: sign the output file.
1289	* src/graphviz.c (start_graph): Issue comments about Bison.
1290	Suggested by Tys Lefering.
1291
12922010-03-31  Joel E. Denny  <jdenny@ces.clemson.edu>
1293
1294	portability: fix test suite for GCC 4.5's new #error message.
1295	Reported by Tys Lefering at
1296	<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00030.html>.
1297	* NEWS (2.4.3): Mention.
1298	* tests/synclines.at (AT_TEST_SYNCLINE): Implement.
1299
13002010-03-30  Akim Demaille  <demaille@gostai.com>
1301
1302	fix comments.
1303	* src/graphviz.h: Add missing license notice.
1304	Document.
1305
13062010-03-25  Akim Demaille  <demaille@gostai.com>
1307
1308	tests: fix 250: parse.error=verbose overflow.
1309	* tests/regression.at (parse.error=verbose overflow): Avoid the
1310	double inclusion of stdlib.h as it triggers hard errors.
1311
13122010-03-23  Joel E. Denny  <jdenny@ces.clemson.edu>
1313
1314	portability: fix for BSD make.
1315	Reported by Johan van Selst at
1316	<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00016.html>.
1317	* tests/Makefile.am ($(TESTSUITE)): Qualify package.m4 in
1318	this dependency list as in package.m4's target rule.
1319
13202010-03-23  Joel E. Denny  <jdenny@ces.clemson.edu>
1321
1322	portability: fix spawning on at least FreeBSD 8 and FreeBSD 9.
1323	Reported by Johan van Selst at
1324	<http://lists.gnu.org/archive/html/bug-bison/2010-03/msg00014.html>.
1325	* NEWS (2.4.3): New.
1326	* THANKS (Johan van Selst): Add.
1327	* gnulib: Update to latest.
1328
13292010-03-20  Joel E. Denny  <jdenny@ces.clemson.edu>
1330
1331	maint: update for changes to gnulib's announce-gen.
1332	* HACKING (Announce): RELEASE_TYPE=major must now be written
1333	RELEASE_TYPE=stable.
1334
13352010-03-20  Joel E. Denny  <jdenny@ces.clemson.edu>
1336
1337	Version 2.4.2.
1338	* NEWS (2.4.2): Set version and date.  For the recent test suite
1339	portability fixes, don't be so optimistic about their success
1340	given the lack of feedback on the affected platforms.
1341
13422010-02-22  Joel E. Denny  <jdenny@ces.clemson.edu>
1343
1344	tests: fix maintainer-xml-check for recent changes.
1345	* tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Use
1346	AT_BISON_CHECK_NO_XML rather than AT_BISON_CHECK because an
1347	output file whose name conflicts with a previous output file
1348	is now never generated.
1349
13502010-02-22  Joel E. Denny  <jdenny@ces.clemson.edu>
1351
1352	portability: fix several issues with M4 subprocess.
1353
1354	M4's output pipe was not being drained upon fatal errors during
1355	scan_skel.  As a result, broken-pipe messages from M4 were seen
1356	on at least AIX, HP-UX, Solaris, and RHEL4, and this caused a
1357	failure in the test suite.  The problem was that, on platforms
1358	where the default disposition for SIGPIPE is ignore instead of
1359	terminate, M4 sometimes saw fwrite fail with errno=EPIPE and
1360	then reported it.  However, there's some sort of race condition,
1361	because the new test group occasionally succeeded.
1362	Reported by Albert Chin at
1363	<http://lists.gnu.org/archive/html/bug-bison/2010-02/msg00004.html>.
1364
1365	There were also problems with the test suite livelocking on
1366	Tru64 5.1b.  Reported by Didier Godefroy at
1367	<http://lists.gnu.org/archive/html/bug-bison/2009-05/msg00005.html>.
1368	Switching to create_pipe_bidi suggested by Akim Demaille.
1369
1370	To attempt to solve both of these problems, switch to gnulib's
1371	create_pipe_bidi and register M4 process as a slave.  Along the
1372	way, clean up file name conflict handling, which was affected by
1373	the broken-pipe problem before the switch.
1374	* NEWS (2.4.2): Document.
1375	* THANKS (Didier Godefroy): Add.
1376	* bootstrap.conf (gnulib_modules): Add pipe.
1377	* gnulib: Update to latest to make sure we have all the latest
1378	fixes.
1379	* lib/Makefile.am (libbison_a_SOURCES): Remove subpipe.h and
1380	subpipe.c.
1381	* po/POTFILES.in (lib/subpipe.c): Remove.
1382	* src/files.c (compute_output_file_names): Update invocations
1383	of output_file_name_check.
1384	(output_file_name_check): In the case that the grammar file
1385	would be overwritten, use complain instead of fatal, but replace
1386	the output file name with /dev/null.  Use the /dev/null solution
1387	for the case of two conflicting output files as well because it
1388	seems safer in case Bison one day tries to open both files at
1389	the same time.
1390	* src/files.h (output_file_name_check): Update prototype.
1391	* src/output.c (output_skeleton): Use create_pipe_bidi and
1392	wait_subprocess.  Assert that scan_skel completely drains the
1393	pipe.
1394	* src/scan-skel.l (at_directive_perform): Update
1395	output_file_name_check invocation.
1396	* tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): Check that the
1397	grammar file actually isn't overwritten.
1398	(Conflicting output files: -o foo.y): Update expected output.
1399	* tests/skeletons.at (Fatal errors but M4 continues producing
1400	output): New test group.
1401
14022010-02-04  Joel E. Denny  <jdenny@ces.clemson.edu>
1403
1404	Update POTFILES.
1405	* HACKING (Release Procedure): Add reminder about keeping
1406	POTFILES files up-to-date.
1407	* po/POTFILES.in (src/muscle-tab.c, src/scan-skel.l): Add.
1408
14092010-02-01  Joel E. Denny  <jdenny@clemson.edu>
1410
1411	Code cleanup.
1412	* tests/atlocal.in (abs_top_srcdir): Remove shell variable,
1413	which is already defined in atconfig.
1414
14152010-01-21  Joel E. Denny  <jdenny@clemson.edu>
1416
1417	* cfg.mk (gnulib_dir): Assume gnulib is a subdirectory.
1418
14192010-01-21  Joel E. Denny  <jdenny@clemson.edu>
1420
1421	maint: automate PACKAGE_COPYRIGHT_YEAR update, and update it.
1422	* HACKING (Release Procedure): Update notes on copyright years.
1423	* Makefile.am (update-package-copyright-year): New target rule.
1424	* build-aux/update-package-copyright-year: New file.
1425	* cfg.mk (update-copyright): Add update-package-copyright-year
1426	as a dependency.
1427
14282010-01-19  Joel E. Denny  <jdenny@clemson.edu>
1429
1430	* bootstrap: Import improvements from latest gnulib.
1431
14322010-01-19  Joel E. Denny  <jdenny@clemson.edu>
1433
1434	build: require Automake 1.11.1 to avoid a security flaw.
1435	* HACKING (Release Procedure): Don't document Automake security
1436	flaw here.
1437	* configure.ac (AM_INIT_AUTOMAKE): Require 1.11.1, and explain
1438	why here.
1439
14402010-01-19  Joel E. Denny  <jdenny@clemson.edu>
1441
1442	gnulib: update to latest.
1443
14442010-01-19  Joel E. Denny  <jdenny@clemson.edu>
1445
1446	ChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c.
1447
14482010-01-15  Joel E. Denny  <jdenny@clemson.edu>
1449
1450	Thank the developer of the initial push parser implementation.
1451	This unfortunate oversight is several years old.
1452	* THANKS (Odd Arild Olsen): Add.
1453
14542010-01-04  Joel E. Denny  <jdenny@clemson.edu>
1455
1456	Fix some comments concerning LR(0) versus LALR(1).
1457
1458	Stop equating LR(0) with nondeterminism and LALR(1) with
1459	determinism.  That is, if all states are consistent, then LR(0)
1460	tables are deterministic.  On the other hand, LALR(1) tables
1461	might be nondeterministic before conflict resolution, and GLR
1462	permits LALR(1) tables to remain nondeterministic.
1463	* src/LR0.c, src/LR0.h: Here.
1464	* src/lalr.c, src/lalr.h: Here.
1465	* src/main.c (main): Here.
1466	* src/state.c, src/state.h: Here.
1467
1468	* src/ielr.h (ielr): In preconditions, expect LR(0) not LALR(1)
1469	parser tables.
1470
14712010-01-04  Joel E. Denny  <jdenny@clemson.edu>
1472
1473	maint: run "make update-copyright"
1474
14752009-12-30  Joel E. Denny  <jdenny@clemson.edu>
1476
1477	POSIX: complain if %prec's token was not defined.
1478	* NEWS (2.5): Document.
1479	* src/reader.c (grammar_rule_check): Convert warning to
1480	complaint.
1481	* tests/input.at (%prec's token must be defined): Update.
1482
14832009-12-30  Joel E. Denny  <jdenny@clemson.edu>
1484
1485	POSIX: warn if %prec's token was not defined.
1486	Reported by Florian Krohm at
1487	<http://lists.gnu.org/archive/html/bug-bison/2009-12/msg00005.html>.
1488	* NEWS (2.4.2): Document.
1489	* src/reader.c (grammar_rule_check): Implement.
1490	(grammar_current_rule_prec_set): Add comments explaining that we
1491	here assume a %prec identifier is a token, but we still manage
1492	to support POSIX.
1493	* tests/input.at (%prec's token must be defined): New test
1494	group.
1495
14962009-12-31  Joel E. Denny  <jdenny@clemson.edu>
1497
1498	* HACKING (Release Procedure): Recommend a secure automake.
1499
15002008-12-11  Akim Demaille  <demaille@gostai.com>
1501
1502	Propagate i18n changes into glr.c.
1503	* data/glr.c (yyreportSyntaxError): Use "switch" instead of
1504	building the error message format dynamically.
1505	* data/lalr1.java: Formatting changes.
1506
15072009-12-22  Joel E. Denny  <jdenny@clemson.edu>
1508
1509	Port small part of master's 11707b2b so future ports are easier.
1510	* data/lalr1.java (YYParser::yysyntax_error): Untabify.
1511
15122008-12-11  Akim Demaille  <demaille@gostai.com>
1513
1514	Simplify the i18n of the error messages.
1515	* data/lalr1.cc: Comment changes.
1516
15172008-11-11  Akim Demaille  <demaille@gostai.com>
1518
1519	Prefer M4 to CPP.
1520	* data/lalr1.cc: Use b4_error_verbose_if instead of #if
1521	YYERROR_VERBOSE.
1522
15232008-11-11  Akim Demaille  <demaille@gostai.com>
1524
1525	Support i18n of the parse error messages.
1526	* TODO (lalr1.cc/I18n): Remove.
1527	* data/lalr1.cc (yysyntax_error_): Support the translation of the
1528	error messages, as done in yacc.c.
1529	Stay within the yy* pseudo namespace.
1530
15312009-12-22  Joel E. Denny  <jdenny@clemson.edu>
1532
1533	Port small part of master's 8901f32e so future ports are easier.
1534	* data/lalr1.cc (yy::parser::yysyntax_error_): Always add second
1535	argument, but name it in the function definition only when
1536	verbose error messages are enabled and it'll thus be used.
1537	(yy::parser::parse): Update use of yysyntax_error_.
1538
15392009-12-29  Joel E. Denny  <jdenny@clemson.edu>
1540
1541	portability: `<' and `>' are not always defined on addresses.
1542	Specifically, don't sort objects by their memory addresses when
1543	they're not allocated in the same array or other object.  Though
1544	I haven't found a test case where that fails on my platform, C
1545	says the behavior is undefined.
1546	* src/AnnotationList.c (AnnotationList__insertInto): Remove
1547	FIXME.  Use new id field of InadequacyList nodes rather than
1548	their memory addresses when sorting.
1549	(AnnotationList__compute_from_inadequacies): Add
1550	inadequacy_list_node_count argument to pass to
1551	InadequacyList__new_conflict.
1552	* src/AnnotationList.h
1553	(AnnotationList__compute_from_inadequacies): Update prototype
1554	and documentation for new argument.
1555	* src/InadequacyList.c (InadequacyList__new_conflict): Add
1556	node_count argument and use it to assign a unique ID.
1557	* src/InadequacyList.h (InadequacyListNodeCount): New typedef.
1558	(InadequacyList): Add id field.
1559	(InadequacyList__new_conflict): Update prototype and
1560	documentation for new argument.
1561	* src/ielr.c (ielr_compute_annotation_lists): Update
1562	AnnotationList__compute_from_inadequacies invocation.
1563
15642009-12-20  Joel E. Denny  <jdenny@clemson.edu>
1565
1566	Fix handling of yychar manipulation in user semantic actions.
1567	The problem was that yacc.c didn't always update the yychar
1568	translation afterwards.  However, other skeletons appear to be
1569	fine.  glr.c appears to already translate yychar before every
1570	use.  lalr1.cc does not define yychar and does not document its
1571	replacement, yyla, for users.  It does provide yyclearin, but
1572	that does not manipulate yyla and thus requires no translation
1573	update.  In lalr1.java, yychar is out of scope during semantic
1574	actions.
1575	* NEWS (2.5): Document.
1576	* data/yacc.c (YYBACKUP): Don't bother translating yychar into
1577	yytoken here.
1578	(yyparse, yypush_parse): Instead, translate before every use of
1579	yytoken, and add comments explaining this approach.
1580	* tests/actions.at (Destroying lookahead assigned by semantic
1581	action): New test group checking that translation happens before
1582	lookahead destructor calls at parser return.  Previously,
1583	incorrect destructors were called.
1584	* tests/conflicts.at (%error-verbose and consistent
1585	errors): New test group checking that translation happens at
1586	syntax error detection before the associated verbose error
1587	message and the associated lookahead destructor calls.  While
1588	the destructor call is fixed by this patch, the verbose error
1589	message is currently incorrect due to another bug (see
1590	comments in test group), so this is an expected failure for now.
1591
15922009-12-21  Joel E. Denny  <jdenny@clemson.edu>
1593
1594	YYFAIL: warn about uses and remove from lalr1.java.
1595	* NEWS (2.5): Document.
1596	* data/lalr1.java (YYParser::YYFAIL): Rename to YYERRLAB,
1597	and make it private.  Update all uses.
1598	* src/scan-code.l (SC_RULE_ACTION): Implement warning.
1599
16002009-12-21  Joel E. Denny  <jdenny@clemson.edu>
1601
1602	YYFAIL: deprecate.
1603	* NEWS (2.4.2): Document deprecation and the phase-out plan.
1604	* data/lalr1.java (YYParser::YYFAIL): Add comment about
1605	deprecation.
1606	* data/yacc.c (YYFAIL): Likewise, and suppress warnings about
1607	YYFAIL from GCC cpp's -Wunused-macros.
1608	* doc/bison.texinfo (Java Action Features): Remove YYFAIL
1609	documentation.
1610	(LocalWords): Remove YYFAIL.
1611
16122009-12-17  Joel E. Denny  <jdenny@clemson.edu>
1613
1614	Code cleanup.
1615	* src/symtab.c, src/symtab.h (symbol_class_get_string): Remove
1616	function, which is no longer used.
1617
16182009-12-16  Joel E. Denny  <jdenny@clemson.edu>
1619
1620	Add gcc's -Wundef to test suite and fix another warning from it.
1621	* NEWS (2.4.2): Update description of -Wundef fix.
1622	* configure.ac (WARN_CXXFLAGS_TEST): New substitution.
1623	(WARN_CFLAGS_TEST): New substitution.
1624	* data/glr.c: Avoid warning about __STRICT_ANSI__.
1625	* tests/atlocal.in (CFLAGS): Use WARN_CFLAGS_TEST instead of
1626	WARN_CFLAGS.
1627	(NO_WERROR_CFLAGS): Likewise.
1628	(CXXFLAGS): Use WARN_CXXFLAGS_TEST instead of WARN_CXXFLAGS.
1629
16302009-12-16  Joel E. Denny  <jdenny@clemson.edu>
1631
1632	* data/yacc.c: Reformat m4 a little.
1633
16342009-12-16  Joel E. Denny  <jdenny@clemson.edu>
1635
1636	Document gcc -Wundef fix.
1637	* NEWS (2.4.2): Here.
1638	* THANKS (Jonathan Nieder): Add.
1639
16402009-12-15  Jonathan Nieder  <jrnieder@gmail.com>  (tiny change)
1641
1642	Simplify y.tab.c when location tracking is disabled.
1643	* data/yacc.c: Do not check YYLTYPE_IS_TRIVIAL if location
1644	tracking is not enabled.  Instead, unconditionally define
1645	YY_LOCATION_PRINT as a no-op for backward compatibility.
1646
16472009-12-15  Jonathan Nieder  <jrnieder@gmail.com>  (tiny change)
1648
1649	Avoid warnings from gcc -Wundef y.tab.c.
1650	* data/glr.c: Check if YYENABLE_NLS and YYLTYPE_IS_TRIVIAL are
1651	defined before using them.
1652	* data/lalr1.cc: Likewise.
1653	* data/yacc.c: Likewise.
1654
16552009-12-15  Joel E. Denny  <jdenny@clemson.edu>
1656
1657	autoconf: update to latest for fix of M4 detection.
1658	Reported by Eric Blake.
1659	* submodules/autoconf: Update.
1660
16612009-12-15  Joel E. Denny  <jdenny@clemson.edu>
1662
1663	portability: use -DGNULIB_POSIXCHECK.
1664	Reported by Eric Blake.  See discussions at
1665	<http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00008.html>
1666	and
1667	<http://lists.gnu.org/archive/html/bug-gnulib/2009-10/msg00108.html>.
1668	* HACKING (Release checks): Suggest -DGNULIB_POSIXCHECK.
1669	* bootstrap.conf (gnulib_modules): Add all the printf modules
1670	suggested by -DGNULIB_POSIXCHECK.  Add realloc-posix as
1671	suggested by -DGNULIB_POSIXCHECK for gnulib's own vasnprintf.c.
1672	(excluded_files): Remove m4/printf-posix.m4.
1673	* tests/atlocal.in (LIBS): As for LDADD in src/local.mk, add
1674	lib/libbison.a so gnulib libraries can be linked.
1675
16762009-12-14  Joel E. Denny  <jdenny@clemson.edu>
1677
1678	Enable assertion output and --disable-assert for configure.
1679	* bootstrap.conf (gnulib_modules): Add assert module.
1680	* src/system.h (aver): Define as assert, and summarize the
1681	discussion on this issue.
1682
16832009-12-14  Joel E. Denny  <jdenny@clemson.edu>
1684
1685	Expand GLR acronym in summary of Bison.
1686	Based on discussion with Akim Demaille starting at
1687	<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00087.html>.
1688	* doc/bison.texinfo (Introduction): Here.
1689	* src/getargs.c (usage): Here.
1690
16912009-10-03  Alex Rozenman  <rozenman@gmail.com>
1692
1693	Document named references.
1694	* doc/bison.texinfo (Actions): Add new example and xref to
1695	Using Named References node.
1696	(Using Named References): New node.
1697
16982009-10-16  Joel E. Denny  <jdenny@clemson.edu>
1699
1700	cleanup.
1701	* src/Sbitset.c (Sbitset__new_on_obstack): Use Sbitset instead
1702	of char*.
1703	(Sbitset__isEmpty): Use Sbitset instead of char*.
1704	* src/Sbitset.h (Sbitset): Make it a pointer to unsigned char
1705	instead of char.  This helps to avoid casting errors.
1706	(Sbitset__or): Use Sbitset instead of char*.
1707
17082009-10-16  Joel E. Denny  <jdenny@clemson.edu>
1709
1710	portability: don't assume 8-bit bytes.
1711	That is, use CHAR_BIT and UCHAR_MAX instead of 8 and 0xff.
1712	* src/Sbitset.h (Sbitset__nbytes): Here.
1713	(Sbitset__byteAddress): Here.
1714	(Sbitset__bit_mask): Here.
1715	(Sbitset__last_byte_mask): Here.
1716	(Sbitset__ones): Here.
1717	(SBITSET__FOR_EACH): Here.
1718
17192009-10-11  Joel E. Denny  <jdenny@clemson.edu>
1720
1721	portability: use va_start and va_end in the same function.
1722	* src/complain.c (error_message): Move va_end from here...
1723	(ERROR_MESSAGE): ... to here.
1724
17252009-10-08  Joel E. Denny  <jdenny@clemson.edu>
1726
1727	* data/bison.m4: Update comments for rename to muscle-tab.h.
1728
17292009-10-08  Joel E. Denny  <jdenny@clemson.edu>
1730
1731	Rename muscle_tab.* to muscle-tab.* for consistency with master.
1732	* src/Makefile.am (bison_SOURCES): Update.
1733	* src/getargs.c, src/ielr.c, src/lalr.c, src/main.c,
1734	src/output.c, src/parse-gram.y, src/print.c, src/reader.c,
1735	src/tables.c: Update include.
1736	* src/muscle_tab.c, src/muscle_tab.h: Rename to...
1737	* src/muscle-tab.c, src/muscle-tab.h: ... these and update
1738	include.
1739
17402009-10-07  Joel E. Denny  <jdenny@clemson.edu>
1741
1742	Minor code cleanup.
1743	* src/muscle_tab.c (MUSCLE_USER_NAME_CONVERT): Remove macro and
1744	replace all uses with UNIQSTR_CONCAT.
1745	* src/uniqstr.c (uniqstr_vsprintf): New function.
1746	* src/uniqstr.h (uniqstr_vsprintf): Add prototype.
1747	(UNIQSTR_CONCAT, UNIQSTR_GEN_FORMAT, UNIQSTR_GEN_FORMAT_): New
1748	macros.
1749
17502009-10-04  Joel E. Denny  <jdenny@clemson.edu>
1751
1752	Minor code cleanup.
1753	* src/parse-gram.y: Clean up sorting of declarations.
1754	Use types to simplify %printer declarations where possible.
1755	Provide %printer for BRACKETED_ID and symbol.prec.
1756	* src/symtab.c: Whitespace change.
1757
17582009-10-04  Joel E. Denny  <jdenny@clemson.edu>
1759
1760	tests: skip tests of file names that platform does not support.
1761	Reported by Michael Raskin at
1762	<http://lists.gnu.org/archive/html/bug-bison/2009-09/msg00001.html>.
1763	* THANKS (Michael Raskin): Add.
1764	* tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Fix.  Cygwin used
1765	to fail at least for file names containing ":" or "\".
1766
17672009-09-23  Joel E. Denny  <jdenny@clemson.edu>
1768
1769	yysyntax_error: avoid duplicate lookahead collection.
1770	Except when memory reallocation is required, this change
1771	eliminates the need to invoke yysyntax_error twice and thus to
1772	repeat the collection of lookaheads.  It also prepares for
1773	future extensions that will make those repetitions more
1774	expensive and that will require additional memory management in
1775	yysyntax_error.  Finally, it fixes an obscure bug already
1776	exercised in the test suite.
1777	* data/yacc.c (yysyntax_error): Add arguments for message
1778	buffer variables stored in the parser.  Instead of size, return
1779	status similar to yyparse status but indicating success of
1780	message creation.  Other than the actual reallocation of the
1781	message buffer, import and clean up memory management code
1782	from...
1783	(yyparse, yypush_parse): ... here.
1784	* tests/regression.at (%error-verbose overflow): No longer an
1785	expected failure.
1786
17872009-09-23  Joel E. Denny  <jdenny@clemson.edu>
1788
1789	yysyntax_error: test memory management more.
1790	* tests/atlocal.in (NO_WERROR_CFLAGS): New cpp macro.
1791	* tests/regression.at (%error-verbose and YYSTACK_USE_ALLOCA):
1792	New test group.
1793	(%error-verbose overflow): New test group that reveals an
1794	obscure bug.  Expected fail for now.
1795
17962008-12-11  Akim Demaille  <demaille@gostai.com>
1797
1798	Pass the token type to yysyntax_error.
1799	* data/yacc.c (yysyntax_error): Take the transated token instead
1800	of the raw number.
1801	Adjust callers.
1802
18032008-12-11  Akim Demaille  <demaille@gostai.com>
1804
1805	Simplify the i18n of the error messages.
1806	* data/yacc.c (yysyntax_error): Rewrite, using a switch instead
1807	of building dynamically the format string.
1808
18092009-10-03  Joel E. Denny  <jdenny@clemson.edu>
1810
1811	Remove dead code.
1812	* src/symtab.c (symbol_pack): Here because every symbol's number
1813	is always defined by this time.
1814
18152009-10-03  Alex Rozenman  <rozenman@gmail.com>
1816
1817	Add additional space after periods in NEWS.
1818	* NEWS (2.5): here.
1819
18202009-09-29  Joel E. Denny  <jdenny@clemson.edu>
1821
1822	Use the correct conversion specifier for size_t.
1823	Reported by Jim Meyering.
1824	* src/Sbitset.h (SBITSET__INDEX__CONVERSION_SPEC): New, "zu"
1825	because Sbitset__Index is size_t.
1826	* src/Sbitset.c (Sbitset__fprint): Use it instead of %d.
1827
18282009-09-27  Joel E. Denny  <jdenny@clemson.edu>
1829
1830	tests: don't abuse AT_BISON_CHECK.
1831	* tests/regression.at (parse-gram.y: LALR = IELR): Move
1832	additional shell commands outside of AT_BISON_CHECK.
1833
18342009-09-26  Joel E. Denny  <jdenny@clemson.edu>
1835
1836	tests: check that parse-gram.y's IELR and LALR are identical.
1837	* tests/atlocal.in (abs_top_srcdir): New shell variable.
1838	* tests/regression.at (parse-gram.y: LALR = IELR): New test
1839	group.
1840
18412009-09-16  Akim Demaille  <demaille@gostai.com>
1842
1843	doc: comment changes.
1844	* doc/bison.texinfo: Comment changes.
1845
18462009-09-16  Akim Demaille  <demaille@gostai.com>
1847
1848	doc: spell checking.
1849	* doc/bison.texinfo: here.
1850
18512009-09-19  Alex Rozenman  <rozenman@gmail.com>
1852
1853	Keep sub-messages aligned. Fix strings for translation.
1854	* src/location.h (location_print): Add return value.
1855	* src/location.c (location_print): Return number of printed
1856	characters.
1857	* src/complain.h (complain_at_indent, warn_at_indent): Prototype
1858	new functions.
1859	* src/complain.cpp (indent_ptr): New static variable.
1860	(error_message, complain_at_indent, warn_at_indent): Implement
1861	the alignment mechanism.
1862	* src/scan-code.l (parse_ref, show_sub_messages): Fix strings
1863	for translations. Use new alignment mechanism.
1864	* tests/named-ref.at: Adjust test-cases.
1865	* NEWS (2.5): Add an announcement about named references.
1866
18672009-09-13  Joel E. Denny  <jdenny@clemson.edu>
1868
1869	tests: clean up push.at test group titles.
1870	* tests/push.at: Remove "Push Parsing: " from test group titles
1871	because these are already under the banner "Push Parsing Tests".
1872
18732009-09-12  Alex Rozenman  <rozenman@gmail.com>
1874
1875	Provide an additional sub-message for clarity.
1876	Add "symbol not found in production" error message when
1877	an "invalid reference" is detected in named references
1878	resolution.
1879	* src/scan-code.l: Update "invalid reference" case.
1880	* tests/named-ref.at: Adjust test-cases.
1881
18822009-09-10  Joel E. Denny  <jdenny@clemson.edu>
1883
1884	Clean up yacc.c a little.
1885	* data/yacc.c: Clean up M4 for readability, and make output
1886	whitespace more consistent.  For the main parse function
1887	comment, instead of saying "yyparse or yypush_parse", say either
1888	"yyparse" or "yypush_parse" depending on which it actually is.
1889
18902009-09-03  Joel E. Denny  <jdenny@clemson.edu>
1891
1892	Complain about unused %define variables and %code qualifiers.
1893	* NEWS (2.5): Document.
1894	* data/bison.m4 (b4_check_user_names): Complain instead of warn.
1895	* doc/bison.texinfo (Decl Summary): Document complaint, and
1896	improve %define documentation a little otherwise.
1897	* tests/input.at (Reject unused %code qualifiers): Update.
1898	(%define errors): Update.
1899	(%define, --define, --force-define): Update.
1900	(%define backward compatibility): Update.
1901	(Unused %define api.pure): Update.
1902	* tests/push.at (Push Parsing: Unsupported Skeletons): Update.
1903
19042009-09-03  Joel E. Denny  <jdenny@clemson.edu>
1905
1906	Use aver not assert.
1907	* src/output.c: Don't include assert.h.
1908	(output_skeleton): Use aver not assert.
1909	* src/system.h (aver): In documentation of why, add links to
1910	Paul Eggert's explanations in the mailing lists.
1911
19122009-09-05  Alex Rozenman  <rozenman@gmail.com>
1913
1914	Use "Unresolved reference" error message when no symbols were found
1915	in a symbolic reference resolution. Remove .expr and -expr from
1916	the shown reference when the reference is unresolved.
1917	* src/scan-code.l: Change the error message, adjust location columns,
1918	rename variable "exact_mode" to "explicit_bracketing".
1919	* tests/named-ref.at: Adjust existing tests and add a new one.
1920
19212009-09-03  Akim Demaille  <demaille@gostai.com>
1922
1923	* NEWS (2.4.2): Add "Internationalization" item.
1924
19252009-09-03  Akim Demaille  <demaille@gostai.com>
1926
1927	bootstrap: fix/improve find_tool.
1928	* bootstrap (find_tool): Improve error messages.
1929	Fix typo about find_tool_names.
1930
19312009-08-29  Joel E. Denny  <jdenny@clemson.edu>
1932
1933	Fix gcc 3.4.4 shadowing warning reported by Eric Blake.
1934	See
1935	<http://lists.gnu.org/archive/html/bison-patches/2009-08/msg00093.html>.
1936	* src/scan-code.h (code_props_rule_action_init): Rename
1937	named_ref arg to name so it doesn't shadow named_ref type.  This
1938	makes it consistent with the function definition in scan-code.l
1939	anyway.
1940
19412009-08-28  Joel E. Denny  <jdenny@clemson.edu>
1942
1943	%define: accept unquoted values.
1944	* NEWS (2.5): Group all %define changes together, and document
1945	this one.  Remove quotes in IELR and canonical LR entry.
1946	* doc/bison.texinfo: Remove quotes in most examples throughout.
1947	(Decl Summary): Update %define documentation.
1948	(Table of Symbols): Likewise.
1949	* src/ielr.c (LrType): Update documentation.
1950	* src/parse-gram.y (content.opt): Add production for ID.
1951	* tests/calc.at: Remove quotes in most tests.
1952	* tests/existing.at: Likewise.
1953	* tests/input.at: Likewise.
1954	* tests/local.at: Likewise.
1955	* tests/push.at: Likewise.
1956	* tests/reduce.at: Likewise.
1957	* tests/torture.at: Likewise.
1958
19592009-08-28  Joel E. Denny  <jdenny@clemson.edu>
1960
1961	%define lr.type: make values lowercase IDs.
1962	That is, "LALR" => "lalr", "IELR" => "ielr", and
1963	"canonical LR" => "canonical-lr".
1964	* NEWS (2.5): Update documentation.
1965	* doc/bison.texinfo (Decl Summary): Likewise.
1966	* src/ielr.c (ielr): Use new values.
1967	* src/ielr.h (ielr): Update documentation.
1968	* src/reader.c (prepare_percent_define_front_end_variables): Use
1969	and validate new values.
1970	* tests/existing.at (AT_TEST_EXISTING_GRAMMAR): Update test
1971	grammars.
1972	* tests/reduce.at (AT_TEST_LR_TYPE): Likewise.
1973
19742009-08-27  Eric Blake  <ebb9@byu.net>
1975
1976	scan-gram: avoid portability trap with ctype usage.
1977	* src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
1978	Avoid compiler warning.
1979
19802009-08-27  Joel E. Denny  <jdenny@clemson.edu>
1981
1982	tests: use perl for printing special sequences to files.
1983	And skip tests if perl is not available.  This is better than
1984	playing tricks with shell portability.  Suggested by Akim
1985	Demaille.
1986	* tests/input.at (Bad character literals): Use it here for
1987	omitting final newlines.
1988	(Bad escapes in literals): Use it here for special characters.
1989
19902009-08-26  Joel E. Denny  <jdenny@clemson.edu>
1991
1992	tests: show a use of %define lr.default-reductions "consistent"
1993	* tests/conflicts.at (%nonassoc and eof): Extend to test that it
1994	prevents the omission of expected tokens for %error-verbose.
1995
19962009-08-26  Akim Demaille  <demaille@gostai.com>
1997
1998	tests: portability fix.
1999	* tests/input.at (Bad escapes in literals): Don't expect "echo
2000	'\0'" to output \ then 0.
2001
20022009-08-26  Joel E. Denny  <jdenny@clemson.edu>
2003
2004	Actually handle the yytable zero value correctly this time.
2005	* data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c: Don't
2006	mention zero values in the YYTABLE comments.
2007	* data/glr.c (yytable_value_is_error): Don't check for zero
2008	value.
2009	* data/lalr1.cc (yy_table_value_is_error_): Likewise.
2010	* data/yacc.c (yytable_value_is_error): Likewise.
2011	* data/lalr1.java (yy_table_value_is_error_): Likewise.
2012	(yysyntax_error): Fix typo in code: use yytable_ not yycheck_.
2013	* src/tables.h: In header comments, explain why it's useless to
2014	check for a zero value in yytable.
2015
20162009-08-25  Joel E. Denny  <jdenny@clemson.edu>
2017
2018	More fixes related to last two patches.
2019	* data/c.m4 (b4_table_value_equals): Comment that YYID must be
2020	defined.
2021	* data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c: Fix
2022	yytable comments: zero indicates syntax error not default
2023	action.
2024	* data/glr.c (yyis_pact_ninf): Rename to...
2025	(yypact_value_is_default): ... this.
2026	(yyisDefaultedState): Update for rename.
2027	(yyis_table_ninf): Rename to...
2028	(yytable_value_is_error): ... this, and check for value zero
2029	besides just YYTABLE_NINF.
2030	(yygetLRActions): Check for default value from yypact.  It
2031	appears that this check is always performed before this function
2032	is invoked, and so adding the check here is probably redundant.
2033	However, the code may evolve after this subtlety is forgotten.
2034	Also, update for rename to yytable_value_is_error.  Because that
2035	macro now checks for zero, a different but equivalent branch of
2036	the if-then-else here is evaluated.
2037	(yyreportSyntaxError): Update for rename to
2038	yytable_value_is_error.  The zero condition was mishandled
2039	before.
2040	(yyrecoverSyntaxError): Update for renames.  No behavioral
2041	changes.
2042	* data/lalr1.cc, data/lalr1.java (yy_pact_value_is_default_):
2043	New function.
2044	(yy_table_value_is_error_): New function.
2045	(parse): Use new functions where possible.  No behavioral
2046	changes.
2047	(yysyntax_error_, yysyntax_error): Use yy_table_value_is_error_.
2048	The zero condition was mishandled before.
2049	* data/yacc.c (yyis_pact_ninf): Rename to...
2050	(yypact_value_is_default): ... this.
2051	(yyis_table_ninf): Rename to...
2052	(yytable_value_is_error): ... this, and check for value zero
2053	besides just YYTABLE_NINF.
2054	(yysyntax_error): Update for rename to yytable_value_is_error.
2055	The zero condition was mishandled before.
2056	(yyparse): Update for renames.  No behavioral changes.
2057	* src/tables.h: Improve comments about yypact, yytable, etc.
2058	more.  Most importantly, say yytable value of zero means syntax
2059	error not default action.
2060
20612009-08-25  Joel E. Denny  <jdenny@clemson.edu>
2062
2063	Fix %error-verbose for conflicts resolved by %nonassoc.
2064	* NEWS (2.5): Document.
2065	* data/glr.c (yyreportSyntaxError): Fix this by checking
2066	yyis_table_ninf.
2067	* data/yacc.c (yysyntax_error): Likewise.
2068	* data/lalr1.cc (yysyntax_error_): Fix this by checking
2069	yytable_ninf_.
2070	* data/lalr1.java (yysyntax_error): Likewise.
2071	* tests/conflicts.at (%nonassoc and eof): Update expected output
2072	and remove FIXME.
2073
20742009-08-25  Joel E. Denny  <jdenny@clemson.edu>
2075
2076	Some code and documentation improvements.
2077	* data/c.m4 (b4_table_value_equals): New macro to capture
2078	some repeated code.
2079	* data/glr.c (yyis_pact_ninf): Use it here.
2080	(yyis_table_ninf): Likewise.
2081	(yyreportSyntaxError): Improve internal comments.
2082	* data/yacc.c (yyis_pact_ninf): New macro copied from glr.c.
2083	Use it everywhere possible.
2084	(yyis_table_ninf): Likewise.
2085	(yysyntax_error): Improve internal comments.
2086	* data/lalr1.cc (yysyntax_error_): Likewise.
2087	* data/lalr1.java (yysyntax_error): Likewise.
2088	* src/tables.h: Improve comments about yypact, yytable, etc.
2089
20902009-08-21  Joel E. Denny  <jdenny@clemson.edu>
2091
2092	Use locale when quoting.
2093	* src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER): Use
2094	quote rather than implementing quoting here.
2095
20962009-08-20  Eric Blake  <ebb9@byu.net>
2097
2098	Make previous patch more robust.
2099	* src/output.c (ARRAY_CARDINALITY): New macro, copied from
2100	argmatch.h.
2101	(output_skeleton): Use it.
2102	Suggested by Akim Demaille.
2103
2104	Import latest m4/m4.m4.
2105	* submodules/autoconf: Update to autoconf 2.64.
2106	* configure.ac (M4_GNU_OPTION): New define.
2107	* src/output.c (output_skeleton): Use it to resolve FIXME.
2108	* NEWS: Mention this.
2109
21102009-08-19  Joel E. Denny  <jdenny@clemson.edu>
2111
2112	Fix complaints about escape sequences.
2113	Discussed starting at
2114	<http://lists.gnu.org/archive/html/bison-patches/2009-08/msg00036.html>.
2115	* src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER):
2116	For a \0 and similar escape sequences meaning the null
2117	character, report an invalid escape sequence instead of an
2118	invalid null character because the latter does not actually
2119	appear in the user's input.
2120	In all escape sequence complaints, don't escape the initial
2121	backslash, and don't quote when the sequence appears at the end
2122	of the complaint line unless there's whitespace that quotearg
2123	won't escape.
2124	Consistently say "invalid" not "unrecognized".
2125	Consistently prefer "empty character literal" over "extra
2126	characters in character literal" warning for invalid escape
2127	sequences; that is, consistently discard those sequences.
2128	* tests/input.at (Bad escapes in literals): New.
2129
21302009-08-19  Akim Demaille  <demaille@gostai.com>
2131
2132	doc: fixes.
2133	* doc/bison.texinfo: Fix minor Texinfo errors.
2134
21352009-08-19  Akim Demaille  <demaille@gostai.com>
2136
2137	doc: %initial-action to initialize yylloc.
2138	Reported by Bill Allombert.
2139	* doc/bison.texinfo: Set fill-column to 76.
2140	(Location Type): Document the use of %initial-action to initialize
2141	yylloc.
2142
21432009-08-18  Joel E. Denny  <jdenny@clemson.edu>
2144
2145	maint: update for gnulib's recent update-copyright changes
2146	* gnulib: Update.
2147	* .x-update-copyright (COPYING): Add as it's no longer implied
2148	when .x-update-copyright is present.
2149	* cfg.mk (update-copyright-local): Remove, now ignored.
2150	(update-copyright): Declare update-b4-copyright as a dependency.
2151
21522009-08-17  Akim Demaille  <demaille@gostai.com>
2153
2154	build: require gettext 0.17.
2155
2156	Suggested by Bruno Haible.
2157	http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00009.html
2158	* configure.ac: require gettext 0.17 to ensure compatibility with
2159	gnulib.
2160
21612009-08-17  Akim Demaille  <demaille@gostai.com>
2162
2163	build: lower gettext requirements.
2164
2165	Bison was uselessly requiring the formatstring macros from
2166	gettext, which resulted in mo files not being installed on systems
2167	that perfectly supported Bison mo files.  Lower the requirement.
2168	http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00006.html
2169
2170	* configure.ac: Require need-ngettext instead of
2171	need-formatstring-macros.
2172	Reported by Martin Jabocs.
2173	Suggested by Bruno Haible.
2174	* INSTALL: Restructure.
2175	(Internationalization): New.
2176
21772009-08-14  Joel E. Denny  <jdenny@clemson.edu>
2178
2179	maint: fix use of copyright year intervals.
2180	* gnulib: Update.
2181	* bootstrap.conf (gnulib_modules): Update getopt to getopt-gnu
2182	as now recommended in gnulib/NEWS.
2183	* build-aux/update-b4-copyright: Fix.
2184	* cfg.mk (update-copyright-env): Configure update-copyright.
2185
21862009-08-13  Joel E. Denny  <jdenny@clemson.edu>
2187
2188	Make it easier to write deterministic tests.
2189	Continues Akim's work from his 2009-06-10 commits.
2190	* src/reader.c (check_and_convert_grammar): Don't add any
2191	symbols after the first symbols_do invocation.
2192	* src/symtab.c (symbols_sorted): New static global.
2193	(user_token_number_redeclaration): Update comments.
2194	(symbol_from_uniqstr): If a new symbol is being created, assert
2195	that symbols_sorted hasn't been allocated yet.
2196	(symbols_free): Free symbols_sorted.
2197	(symbols_cmp, symbols_cmp_qsort): New functions.
2198	(symbols_do): Sort symbol_table into symbols_sorted on first
2199	invocation.
2200	* tests/input.at (Numbered tokens): Recombine tests now that the
2201	output should be deterministic across multiple numbers.
2202
22032009-08-12  Akim Demaille  <demaille@gostai.com>
2204
2205	distcheck: fix.
2206
2207	* examples/calc++/Makefile.am: (EXTRA_DIST): Ship calc.stamp.
2208
22092009-08-10  Joel E. Denny  <jdenny@clemson.edu>
2210
2211	* tests/Makefile.am (TESTSUITE_AT): Add named-refs.at.
2212
22132009-08-10  Joel E. Denny  <jdenny@clemson.edu>
2214
2215	Miscellaneous code readability improvements.
2216
2217	* src/reader.c (reader): Move %define front-end variable
2218	defaults and checking into...
2219	(prepare_percent_define_front_end_variables): ... this new
2220	function.
2221
2222	* src/scan-gram.l (INITIAL): For consistency with string
2223	literals, don't store open quote on character literal.  It's
2224	discarded before returning anyway.
2225	(SC_ESCAPED_CHARACTER): Similarly, don't store close quote.
2226	Make length test more readable, and make the character stored
2227	for an empty literal more obvious while consistent with the
2228	previous behavior.
2229
2230	* src/symtab.c, src/symtab.h: Rename USER_NUMBER_ALIAS to
2231	USER_NUMBER_HAS_STRING_ALIAS throughout.
2232	* src/symtab.c (symbol_make_alias): Remove comment from symtab.c
2233	that is repeated in symtab.h.  Improve argument names to make it
2234	clear which side of the symbol-string alias pair is which.
2235	(symbol_check_alias_consistency): Improve local variable names
2236	for the same purpose.
2237	* src/symtab.h (struct symbol): Make comments about aliases
2238	clearer.
2239	(symbol_make_alias): Improve comments and argument name.
2240	* src/output.c (token_definitions_output): Update for rename to
2241	USER_NUMBER_HAS_STRING_ALIAS and improve comments about aliases.
2242
22432009-08-08  Alex Rozenman  <rozenman@gmail.com>
2244
2245	Convert "misleading reference" messages to warnings.
2246	* src/scan-code.l: New function 'show_sub_messages', more
2247	factoring.
2248	* tests/named-ref.at: Adjust tests.
2249
22502009-08-06  Joel E. Denny  <jdenny@clemson.edu>
2251
2252	maint: run "make update-copyright"
2253
22542009-08-06  Joel E. Denny  <jdenny@clemson.edu>
2255
2256	maint: make update-b4-copyright easier to use
2257	* build-aux/update-b4-copyright: In warnings, report line
2258	numbers rather than character positions.
2259	* cfg.mk (update-copyright-local): Set to update-b4-copyright so
2260	that update-copyright runs it.
2261	* gnulib: Update.
2262
22632009-08-05  Joel E. Denny  <jdenny@clemson.edu>
2264
2265	maint: clean up update-b4-copyright code
2266	* build-aux/update-b4-copyright: Do not accept 2-digit
2267	UPDATE_COPYRIGHT_YEAR, which was not handled correctly.
2268	Don't accept a `[' in a b4_copyright argument.
2269	Format code more consistently.
2270	Don't assume b4*copyright never occurs.
2271
22722009-08-04  Joel E. Denny  <jdenny@clemson.edu>
2273
2274	maint: automate b4_copyright updates.
2275	* Makefile.am (update-b4-copyright): New target rule.
2276	* build-aux/Makefile.am (EXTRA_DIST): Add update-b4-copyright.
2277	* build-aux/update-b4-copyright: New.
2278	* data/yacc.c: Remove stray characters around b4_copyright
2279	invocations.
2280
22812009-08-04  Joel E. Denny  <jdenny@clemson.edu>
2282
2283	maint: automate annual package-wide copyright-year update.
2284	* .x-update-copyright: New.
2285	* Makefile.am (EXTRA_DIST): Remove maint.mk.
2286	* bootstrap.conf (gnulib_modules): Add maintainer-makefile and
2287	update-copyright.  Remove gnumakefile, which is implied by
2288	maintainer-makefile.
2289	* cfg.mk (bootstrap-tools): Copy from old maint.mk.
2290	* gnulib: Update.
2291	* maint.mk: Remove, now copied from gnulib.
2292	* examples/extexi: Add missing "(C)" in copyright statement so
2293	update-copyright can recognize it.
2294	* src/LR0.h: Likewise.
2295	* src/print.h: Likewise.
2296	* src/print_graph.h: Likewise.
2297	* src/gram.c: Add missing comma in copyright statement.
2298	* src/gram.h: Likewise.
2299
23002009-08-04  Joel E. Denny  <jdenny@clemson.edu>
2301
2302	Fix "make distcheck".
2303	* examples/calc++/Makefile.am: Say $(srcdir)/calc.stamp instead
2304	of just calc.stamp.
2305
23062009-08-01  Joel E. Denny  <jdenny@clemson.edu>
2307
2308	Pacify "gcc -Wunused" for the input function from Flex.
2309	Reported by Alex Rozenman.  This warning shows up with gcc-4.3.0
2310	and later.
2311	* src/scan-code.l: Add "%option noinput", which I cannot find in
2312	the Flex manual, but which Flex has supported since at least as
2313	far back as 2.5.4.  However, if any of our developers still use
2314	Flex 2.5.4, they'll need to stop configuring with
2315	--enable-gcc-warnings because "%option noinput" didn't work
2316	correctly until Flex 2.5.6.
2317	* src/scan-gram.l: Likewise.
2318	* src/scan-skel.l: Likewise.
2319
23202009-07-31  Alex Rozenman  <rozenman@gmail.com>
2321
2322	Fix --enable-gcc-warnings problems.
2323	* src/reader.c: Adjust variable names.
2324	* src/scan-code.l: Fix prototypes and adjust names.
2325	* src/named-ref.c: Remove redundant "if".
2326
23272009-07-29  Joel E. Denny  <jdenny@ces.clemson.edu>
2328
2329	Fix a --enable-gcc-warnings problem.
2330	* src/scan-gram.l (SC_ESCAPED_CHARACTER): Actually use length
2331	variable.
2332
23332009-07-24  Alex Rozenman  <rozenman@gmail.com>
2334
2335	Fix some memory leaks.
2336	* src/named-ref.c: Add a pointer check (named_ref_free).
2337	* src/scan-code.l: New function (variant_table_free). Called in
2338	code_scanner_free.
2339	* src/symlist.c: Call to named_ref_free (symbol_list_free).
2340
23412009-07-24  Joel E. Denny  <jdenny@ces.clemson.edu>
2342
2343	Warn about character literals not of length one.
2344	* NEWS (2.5): Document.
2345	* src/scan-gram.l (INITIAL): Remove comment that we don't check
2346	the length.
2347	(SC_ESCAPED_CHARACTER): Warn if length is wrong.
2348	* tests/input.at (Bad character literals): New test group.
2349
23502009-07-24  Joel E. Denny  <jdenny@ces.clemson.edu>
2351
2352	* src/lalr.c (state_lookahead_tokens_count): Correct comment.
2353
23542009-07-22  Joel E. Denny  <jdenny@ces.clemson.edu>
2355
2356	Some M4 cleanup in the testsuite.
2357	Suggested by Eric Blake at
2358	<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00083.html>.
2359	* tests/existing.at (_AT_TEST_EXISTING_GRAMMAR): Do not
2360	complicate the code by distinguishing between a missing value
2361	and an empty string value for an optional argument.  This fix is
2362	allowed by the similar fix in AT_TEST_TABLES_AND_PARSE below.
2363	* tests/local.at (_AT_TEST_TABLES_AND_PARSE): Merge into...
2364	(AT_TEST_TABLES_AND_PARSE): ... this now that the special
2365	arguments are not needed because of the following changes.
2366	Fix stale comments.
2367	Bison developers should use GNU M4 and should not use
2368	POSIXLY_CORRECT when building the test suite, so do not
2369	complicate the code by avoiding $10 and above.
2370	Do not quote an empty string value for an optional argument, and
2371	do not distinguish between a missing value and an empty string
2372	value.
2373
23742009-07-21  Joel E. Denny  <jdenny@ces.clemson.edu>
2375
2376	* m4/m4.m4: Make it a sym link to submodules/autoconf/m4/m4.m4.
2377
23782009-07-15  Joel E. Denny  <jdenny@ces.clemson.edu>
2379
2380	Revert unnecessary column realignment in --help output.
2381	Reported by Akim Demaille at
2382	<http://lists.gnu.org/archive/html/bison-patches/2009-06/msg00010.html>.
2383	* src/getargs.c (usage): Here.
2384
23852009-07-04  Alex Rozenman  <rozenman@gmail.com>
2386
2387	Alphabetical order in src/Makefile.am.
2388	* src/Makefile.am: Adjust.
2389
23902009-07-04  Alex Rozenman  <rozenman@gmail.com>
2391
2392	Style changes and factoring.
2393	* src/named-ref.h: Add comments.
2394	* src/parse-gram.y: Readability and style changes.
2395	* src/reader.c: Factoring: assign_named_ref function.
2396	* src/scan-code.l: Factoring and style changes. Rename
2397	parse_named_ref to parse_ref. Use "c-ctype.h" from gnulib.
2398	Use "unsigned" type for variant index. Improve readablity.
2399	* src/scan-gram.l: Change error messages and add comments.
2400	* src/symlist.h: symbol_list_null: New function decl.
2401	* src/symlist.c: symbol_list_null: Implement here.
2402	* tests/named-refs.at: Adjust for new error messages.
2403
24042009-06-29  Eric Blake  <ebb9@byu.net>
2405
2406	scan-code: avoid compiler warnings
2407	* src/scan-code.l (parse_named_ref): Use correct specifiers.
2408
24092009-06-29  Akim Demaille  <demaille@gostai.com>
2410
2411	build: avoid concurrent extraction of calc++.
2412	* examples/calc++/Makefile.am (calc.stamp): New.
2413	Depend on it to create the sources of calc++ so that concurrent
2414	builds don't launch several "extexi" in parallel.
2415	Not only this is inefficient, this also builds incorrect sources
2416	with several extractions mixed together.
2417
24182009-06-27  Alex Rozenman  <rozenman@gmail.com>
2419
2420	Implement support for named symbol references.
2421	* src/parse-gram.y: Add new syntax (named_ref.opt).
2422	* src/reader.c: Store named refs in symbol lists.
2423	* src/reader.h: New argument for symbol_append and
2424	action_append functions.
2425	* src/scan-code.h: Add new field (named_ref) into
2426	code_props data structure. Keeps named ref of midrule
2427	actions.
2428	* src/scan-code.l: Support for named refs in semantic
2429	action code. New function 'parse_named_ref'.
2430	* src/scan-gram.l: Support bracketed id.
2431	* src/symlist.c: Store named refs in symbol lists.
2432	* src/symlist.h: New field in symbol list: named_ref.
2433	* src/named-ref.h: New file, a struct for named_ref.
2434	* src/named-ref.cp: New file, named_ref_new function.
2435	* src/local.mk: Add two new files.
2436	* tests/testsuite.at: Include new test group:
2437	* tests/named-refs.at: this new file.
2438
24392009-06-25  Akim Demaille  <demaille@gostai.com>
2440
2441	hash: check insertion for memory exhaustion.
2442	* src/uniqstr.c (uniqstr_new): New.
2443
24442009-06-11  Akim Demaille  <demaille@gostai.com>
2445
2446	style changes.
2447	* data/xslt/xml2dot.xsl, data/xslt/xml2xhtml.xsl: Space changes.
2448	* src/print-xml.c: Style changes.
2449	* tests/conflicts.at: Comment changes.
2450
24512009-06-11  Akim Demaille  <demaille@gostai.com>
2452
2453	xml: beware of user strings used to give a %prec to rules.
2454	* tests/conflicts.at (%prec with user strings): New.
2455	* src/gram.c (grammar_rules_print_xml): Escape the precedence for
2456	XML output.
2457
24582009-06-11  Akim Demaille  <demaille@gostai.com>
2459
2460	hash: check insertion for memory exhaustion.
2461	* src/muscle-tab.c (muscle_insert, muscle_grow)
2462	* src/state.c (state_hash_insert): Check the return value of
2463	hash_insert.
2464
24652009-06-10  Akim Demaille  <demaille@gostai.com>
2466
2467	deterministic test suite.
2468	Some consistency checks on symbols are performed after all the
2469	symbols were read, by an iteration over the symbol table.  This
2470	traversal is nondeterministic, which can be a problem for test
2471	cases.
2472	Avoid this.
2473	Addresses another form of nondeterminism reported by Joel E. Denny.
2474	http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html
2475
2476	* tests/input.at (Numbered tokens): Split the hexadecimal/decimal
2477	test in two.
2478	Use different file names for the three tests to make the
2479	maintenance easier.
2480
24812009-06-10  Akim Demaille  <demaille@gostai.com>
2482
2483	deterministic user-token-number redeclaration errors.
2484	Address nondeterminism reported by Joel E. Denny.
2485	http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html
2486
2487	* src/uniqstr.h: Comment changes.
2488	* src/location.h (boundary_cmp, location_cmp): New.
2489	* src/symtab.c (user_token_number_redeclaration): New.
2490	(symbol_translation): Use it.
2491	* tests/input.at (Numbered tokens): Adjust the expected output.
2492
24932009-05-25  Akim Demaille  <demaille@gostai.com>
2494
2495	gnulib: update.
2496	* gnulib: Update to latest.
2497	* lib/.cvsignore, lib/.gitignore, m4/.cvsignore,
2498	* m4/.gitignore: Regen.
2499	* src/symtab.c (symbol_from_uniqstr, semantic_type_from_uniqstr):
2500	Call xalloc_die on hash_insert failures.
2501	Requested by the new __warn_unused_result__ attribute of
2502	hash_insert.
2503
25042009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
2505
2506	Convert multiple variable definition warnings to complaints.
2507	* NEWS (2.5): Add a new entry for that change.
2508	* doc/bison.texinfo (Decl Summary): Update %define entry.
2509	(Bison Options): Update -D/--define/-F/--force-define entry.
2510	* src/muscle_tab.c (muscle_percent_define_insert): Implement.
2511	* src/muscle_tab.h (muscle_percent_define_insert): Update
2512	comments.
2513	* tests/input.at (`%define errors'): Update.
2514	(`%define, --define, --force-define'): Update.
2515
25162009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
2517
2518	-F/--force-define and relative %define/-D/--define priorities.
2519	* NEWS (2.5): Add documentation to -D/--define entry.
2520	* build-aux/cross-options.pl: Hard-code association of
2521	--force-define with %define.
2522	* doc/bison.texinfo (Decl Summary): In %define entry,
2523	cross-reference command-line options.
2524	(Bison Options): Add documentation to -D/--define entry.
2525	(Option Cross Key): Widen column for --force-define row.
2526	* src/getargs.c (usage): Document -F/--force-define.  Realign
2527	options in output.
2528	(short_options, long_options, getargs): Parse -F/--force-define,
2529	and update muscle_percent_define_insert invocation.
2530	* src/muscle_tab.h (muscle_percent_define_how): New enum type.
2531	(muscle_percent_define_insert): Add argument with that type.
2532	* src/muscle_tab.c (muscle_percent_define_insert): Implement
2533	-F/--force-define behavior and priorities.
2534	* src/parse-gram.y (prologue_declaration): Update
2535	muscle_percent_define_insert invocations.
2536	* tests/input.at (`%define, --define'): Rename to...
2537	(`%define, --define, --force-define'): ... this and extend.
2538
25392009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
2540
2541	Update some comments to make sense for -D.
2542	* data/bison.m4 (b4_check_user_names): In header comments, say
2543	"user occurrence" instead of "grammar occurrence".
2544	* src/muscle_tab.h (muscle_percent_define_insert): Likewise.
2545	(muscle_percent_code_grow): Likewise just for consistency.
2546
25472009-05-22  Joel E. Denny  <jdenny@ces.clemson.edu>
2548
2549	* data/c++.m4: Update copyright year.
2550
25512009-05-20  Joel E. Denny  <jdenny@ces.clemson.edu>
2552
2553	* data/c++.m4 (b4_namespace_close): Simplify slightly.
2554
25552009-05-19  Joel E. Denny  <jdenny@ces.clemson.edu>
2556
2557	Handle a trailing `:' in a user-supplied C++ namespace better.
2558	* data/c++.m4 (b4_namespace_close): Don't let it be printed
2559	among the closing braces here.  This fix might make the
2560	generated code easier to debug, but otherwise it should be
2561	insignificant because a trailing `:' is a C++ error already.
2562
25632009-05-19  Akim Demaille  <demaille@gostai.com>
2564
2565	remove useless variable.
2566	* src/getargs.c (skeleton_arg): Remove now useless variable.
2567	Should help the compiler see that this printf-like call is sane.
2568
25692009-05-11  Akim Demaille  <demaille@gostai.com>
2570
2571	doc: use C++ headers.
2572	* doc/bison.texinfo (Calc++ Scanner): Prefer C++ headers to C
2573	headers.
2574
25752009-05-05  Akim Demaille  <demaille@gostai.com>
2576
2577	fix hexadecimal token number support.
2578	* src/scan-gram.l: Catch incorrect ids after hexadecimal numbers.
2579
25802009-05-05  Akim Demaille  <demaille@gostai.com>
2581
2582	tests: check token numbers.
2583	* tests/input.at (Numbered tokens): New.
2584
25852009-05-04  Akim Demaille  <demaille@gostai.com>
2586
2587	bison: catch bad symbol names.
2588	* src/scan-gram.l({int}{id}): Report as an invalid identifier.
2589	* tests/input.at: Adjust.
2590
25912009-05-04  Akim Demaille  <demaille@gostai.com>
2592
2593	space changes.
2594	* src/scan-gram.l: Untabify to be robust to zealous editors.
2595
25962009-05-04  Akim Demaille  <demaille@gostai.com>
2597
2598	identifiers: dashes are letters.
2599	Dashes can now start identifiers (symbols and directives).
2600
2601	* src/scan-gram.l ({letter}): Add dash.
2602	({id}): Remove it.
2603	* tests/input.at (Symbols): Adjust.
2604	Remove stray comment.
2605	* tests/regression.at (Invalid inputs): Adjust error message.
2606	* doc/bison.texinfo (Symbols): Update.
2607
26082009-05-01  Joel E. Denny  <jdenny@ces.clemson.edu>
2609
2610	Declare %code to be a permanent feature.
2611	* NEWS (2.4.2): Here.
2612	* doc/bison.texinfo (Prologue Alternatives): Don't say it's
2613	experimental.
2614	(Decl Summary): Likewise.
2615
26162009-04-30  Joel E. Denny  <jdenny@ces.clemson.edu>
2617
2618	Convert underscores to dashes in some %define variable names.
2619	For now, just api.push-pull and lr.keep-unreachable-states.
2620	Maintain old names for backward compatibility.
2621	* NEWS (2.5): Document.
2622	* data/c.m4 (b4_identification): Update comment.
2623	* data/yacc.c: Update access.
2624	* doc/bison.texinfo: Update.
2625	* etc/bench.pl.in (bench_grammar): Update use.
2626	* src/files.c (tr): Move to...
2627	* src/getargs.c, src/getargs.h (tr): ... here because I can't
2628	think of a better place to expose it.  My logic is that, for all
2629	uses of tr so far, command-line arguments can be involved, and
2630	getargs.h is already included.
2631	* src/main.c (main): Update access.
2632	* src/muscle_tab.c (muscle_percent_define_insert): Convert old
2633	variable names to new variable names before assigning value.
2634	* src/reader.c (reader): Update setting default.
2635	* tests/calc.at: Update uses.
2636	* tests/conflicts.at (Unreachable States After Conflict
2637	Resolution): Update use.
2638	* tests/input.at (%define enum variables): Update use.
2639	(%define backward compatibility): New test group.
2640	* tests/push.at: Update uses.
2641	* tests/reduce.at: Update uses.
2642	* tests/torture.at: Update uses.
2643
26442009-04-30  Joel E. Denny  <jdenny@ces.clemson.edu>
2645
2646	Set all front-end %define defaults in one place.
2647	* src/main.c (main): Move lr.keep_unreachable_states default...
2648	* src/reader.c (reader): ... to here.
2649
26502009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
2651
2652	Rename lr.default_reductions to lr.default-reductions.
2653	* NEWS (2.5): Here.
2654	* doc/bison.texinfo: Here.
2655	* src/lalr.c (initialize_LA): Here.
2656	* src/print.c (print_reductions): Here.
2657	* src/reader.c (reader): Here.
2658	* src/tables.c (action_row): Here.
2659	* tests/input.at (%define enum variables): Here.
2660	* tests/reduce.at (AT_TEST_LR_DEFAULT_REDUCTIONS): Here.
2661
26622009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
2663
2664	Pacify ./configure --enable-gcc-warnings.
2665	* tests/input.at (Symbols): Prototype yyerror and yylex.
2666
26672009-04-21  Akim Demaille  <demaille@gostai.com>
2668
2669	tests: check the use of dashes and periods in symbols.
2670	* tests/input.at (Symbol): New test group.
2671
26722009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
2673
2674	Document how `%define "var" "value"' is not M4-friendly.
2675	* src/parse-gram.y (variable): In comments here.
2676
26772009-04-29  Joel E. Denny  <jdenny@ces.clemson.edu>
2678
2679	Add copyright updates missed during previous cherry pick.
2680	* src/output.c: Here.
2681	* src/parse-gram.y: Here.
2682	* src/scan-gram.l: Here.
2683
26842009-04-20  Akim Demaille  <demaille@gostai.com>
2685
2686	variables: accept dashes.
2687	* src/scan-gram.l ({id}): Also accept dashes after the initial
2688	letter.
2689	({directive}): Use {id}.
2690	* src/parse-gram.y: Comment and formatting changes.
2691	* doc/bison.texinfo (Symbols): Adjust the lexical definitions of
2692	symbols.
2693	* src/complain.h, src/complain.c (yacc_at): New.
2694	* src/symtab.c (symbol_new): Use yacc_at to report inappropriate
2695	symbol names.
2696	* src/output.c (token_definitions_output): Do not #define token
2697	names with dashes.
2698
26992009-04-24  Joel E. Denny  <jdenny@ces.clemson.edu>
2700
2701	Clean up recent patches a little.
2702	Reported by Akim Demaille.
2703	* doc/bison.texinfo (Understanding): Fix typos.
2704	* src/print.c (print_reductions): Don't use negated variable.
2705
27062009-04-24  Joel E. Denny  <jdenny@ces.clemson.edu>
2707
2708	List accepted values for a %define enum variable with an invalid value.
2709	Suggested by Akim Demaille at
2710	<http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00082.html>.
2711	* data/bison.m4 (_b4_percent_define_check_values): Implement.
2712	* src/muscle_tab.c (muscle_percent_define_check_values): Implement.
2713	* tests/input.at (%define lr.default_reductions invalid values): Merge
2714	into...
2715	(%define enum variables): ... here, and update output.
2716
27172009-04-23  Joel E. Denny  <jdenny@ces.clemson.edu>
2718
2719	Rename "default rule" to "default reduction".
2720	This includes changing variable names in code, changing
2721	comments, and renaming %define lr.default_rules to %define
2722	lr.default_reductions.
2723	* NEWS (2.5): Update IELR documentation.
2724	* data/glr.c, data/lalr1.cc, data/lalr1.java, data/yacc.c:
2725	Adjust YYDEFACT and yydefact_ documentation.
2726	* doc/bison.texinfo (Decl Summary): Adjust lr.default_reductions
2727	and lr.type documentation.  Make some other wording
2728	improvements.
2729	(Glossary): Adjust cross-references and Default Reduction
2730	definition.
2731	* src/lalr.c (state_lookahead_tokens_count): Adjust code.
2732	Remove a confusing comment pointed out by Akim Demaille.
2733	(initialize_LA): Adjust code.
2734	* src/print-xml.c (print_reductions): Adjust code.
2735	* src/print.c (print_reductions): Adjust code.
2736	* src/reader.c (reader): Adjust code.
2737	* src/tables.c (action_row): Adjust code.
2738	(token_actions): Adjust code.
2739	* src/tables.h: Adjust YYDEFACT documentation.
2740	* tests/input.at (%define lr.default_rules invalid values):
2741	Rename test group to...
2742	(%define lr.default_reductions invalid values): ... this, and
2743	update grammar file and expected output.
2744	* tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): Rename to...
2745	(AT_TEST_LR_DEFAULT_REDUCTIONS): ... this, and update.
2746
27472009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
2748
2749	Document %define lr.type and lr.default_rules.
2750	* NEWS (2.5): Add an entry.
2751	* src/getargs.c (usage): Mention IELR(1) and canonical LR(1)
2752	besides just LALR(1) and GLR(1).
2753	* doc/bison.texinfo (Introduction): Likewise.
2754	(Language and Grammar): Bison is no longer limited to LALR(1)
2755	restrictions.
2756	(GLR parsing): Say deterministic or LR(1) rather than LALR(1)
2757	when trying to distinguish from GLR.  Talk about LR(1) grammars
2758	rather than LALR(1) grammars.
2759	(Decl Summary): In %define api.push_pull entry, say it applies
2760	to deterministic parsers in C rather than LALR(1) parsers in C.
2761	Add lr.default_rules entry.
2762	Add lr.type entry.
2763	(Mystery Conflicts): Bison is no longer limited to LALR(1)
2764	restrictions.
2765	(Generalized LR Parsing): Same changes as for the previous GLR
2766	section.
2767	(Memory Management): Say deterministic rather than LALR(1).
2768	(Understanding): Correct some bison output.
2769	Index discussion of "accepting state".
2770	Say deterministic rather than LALR(1).
2771	(Bison Options): In --yacc entry, say deterministic rather than
2772	LALR(1).
2773	In --report, --graph, and --xml entries, just don't mention
2774	LALR(1).
2775	(C++ Parsers): Say deterministic rather than LALR(1).
2776	(Table of Symbols): Likewise in YYSTACK_USE_ALLOCA entry.
2777	(Glossary): Add Accepting State, Consistent State, Default Rule,
2778	and IELR(1) definitions.
2779	In Generalized LR (GLR) definition, make same changes as in
2780	previous GLR sections.
2781	In LALR(1) definition, say Bison uses LALR(1) by default rather
2782	than implying Bison is limited to LALR(1).
2783	(LocalWords): Add IELR.
2784
27852009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
2786
2787	Finish implementing %define lr.type.
2788	Its value can be "LALR", "IELR", or "canonical LR".
2789	* lib/timevar.def (TV_IELR_PHASE1): New var.
2790	(TV_IELR_PHASE2): New var.
2791	(TV_IELR_PHASE3): New var.
2792	(TV_IELR_PHASE4): New var.
2793	* src/Makefile.am (bison_SOURCES): Add AnnotationList.c,
2794	AnnotationList.h, InadequacyList.c, InadequacyList.h, Sbitset.c,
2795	Sbitset.h, ielr.h, and ielr.c.
2796	* src/getargs.h, src/getargs.c (enum trace, trace_args,
2797	trace_types): Add trace_ielr.
2798	* src/lalr.h, src/lalr.c (ngotos): Export it.
2799	(F): Rename to...
2800	(goto_follows): ... this, update all uses, and export it.
2801	(set_goto_map): Export it.
2802	(map_goto): Export it.
2803	(compute_lookahead_tokens): Don't free goto_follows yet.  Now
2804	handled in ielr.
2805	(initialize_LA): Export it.  Move lookback allocation to...
2806	(lalr): ... here because, for canonical LR, initialize_LA must
2807	be invoked but lookback and much of the rest of LALR isn't
2808	needed.
2809	* main.c (main): Instead of lalr, invoke ielr, which invokes
2810	lalr.
2811	* src/reader.c (reader): Default lr.type to "LALR".
2812	Default lr.default_rules to "accepting" if lr.type is "canonical
2813	LR".  Leave the default as "all" otherwise.
2814	Check for a valid lr.type value.
2815	* src/state.h, src/state.c (struct state_list): Add state_list
2816	member.
2817	(state_new): Initialize state_list member to NULL.
2818	(state_new_isocore): New function, exported.
2819	* tests/existing.at (AT_TEST_EXISTING_GRAMMAR): New macro that
2820	exercises all values of lr.type.
2821	(GNU AWK Grammar): Rename test group to...
2822	(GNU AWK 3.1.0 Grammar): ... this, and extend to use
2823	AT_TEST_EXISTING_GRAMMAR.
2824	(GNU Cim Grammar): Extend to use AT_TEST_EXISTING_GRAMMAR.
2825	(GNU pic Grammar): Rename test group to...
2826	(GNU pic (Groff 1.18.1) Grammar): ... this, and extend to use
2827	AT_TEST_EXISTING_GRAMMAR.
2828	* tests/reduce.at (AT_TEST_LR_TYPE): New macro that exercises
2829	all values of lr.type.
2830	(Single State Split): New test groups using AT_TEST_LR_TYPE.
2831	(Lane Split): Likewise.
2832	(Complex Lane Split): Likewise.
2833	(Split During Added Lookahead Propagation): Likewise.
2834
28352009-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
2836
2837	Add new files for IELR and canonical LR implementation.
2838	* src/AnnotationList.c: New.
2839	* src/AnnotationList.h: New.
2840	* src/InadequacyList.c: New.
2841	* src/InadequacyList.h: New.
2842	* src/Sbitset.c: New.
2843	* src/Sbitset.h: New.
2844	* src/ielr.c: New.
2845	* src/ielr.h: New.
2846
28472009-04-20  Joel E. Denny  <jdenny@ces.clemson.edu>
2848
2849	Implement %define lr.default_rules.
2850	Its value describes the states that are permitted to contain
2851	default rules: "all", "consistent", or "accepting".
2852	* src/reader.c (reader): Default lr.default_rules to "all".
2853	Check for a valid lr.default_rules value.
2854	* src/lalr.c (state_lookahead_tokens_count): If lr.default_rules
2855	is "accepting", then only mark the accepting state as
2856	consistent.
2857	(initialize_LA): Tell state_lookahead_tokens_count whether
2858	lr.default_rules is "accepting".
2859	* src/tables.c (action_row): If lr.default_rules is not "all",
2860	then disable default rules in inconsistent states.
2861	* src/print.c (print_reductions): Use this opportunity to
2862	perform some assertions about whether lr.default_rules was
2863	obeyed correctly.
2864	* tests/local.at (AT_TEST_TABLES_AND_PARSE): New macro that
2865	helps with checking the parser tables for a grammar.
2866	* tests/input.at (%define lr.default_rules invalid values): New
2867	test group.
2868	* tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): New macro using
2869	AT_TEST_TABLES_AND_PARSE.
2870	(`no %define lr.default_rules'): New test group generated by
2871	AT_TEST_LR_DEFAULT_RULES.
2872	(`%define lr.default_rules "all"'): Likewise.
2873	(`%define lr.default_rules "consistent"'): Likewise.
2874	(`%define lr.default_rules "accepting"'): Likewise.
2875
28762009-04-20  Akim Demaille  <demaille@gostai.com>
2877
2878	Consistently refer to Yacc, not YACC.
2879	* src/getargs.c (usage, warnings_args): s/YACC/Yacc/.
2880
28812009-04-17  Joel E. Denny  <jdenny@ces.clemson.edu>
2882
2883	Pacify make maintainer-check-posix.
2884	* tests/input.at (%define, --define): Move bison command-line
2885	options before grammar file name.
2886
28872009-04-04  Joel E. Denny  <jdenny@ces.clemson.edu>
2888
2889	Document semicolon warnings.
2890	* NEWS (2.5): Here.
2891
28922008-12-08  Akim Demaille  <demaille@gostai.com>
2893
2894	Fix portability issue in the test suite.
2895	* tests/local.at (AT_MATCHES_CHECK): New.
2896	Based on Perl instead of Sed.  Sed has too many portability
2897	pitfalls, not ever Sed is GNU Sed.
2898	* tests/actions.at (Fix user actions without a trailing semicolon):
2899	Use it.
2900
29012008-12-07  Di-an Jan  <dianj@freeshell.org>
2902
2903	Implement the FIXME that ends an user action with a semicolon
2904	if it seems necessary.
2905	* src/scan-code.l (flex rules section): Flag cpp directive from
2906	any `#' to the first unescaped end-of-line.  Semicolon is not
2907	needed after `;', `{', '}', or cpp directives and is needed after
2908	any other token (whitespaces and comments have no effect).
2909	* tests/actions.at (Fix user actions without a trailing semicolon):
2910	New test.
2911	* tests/input.at (AT_CHECK_UNUSED_VALUES): Add semicolons to
2912	to make user actions complete statements.
2913	Adjust column numbers in error messages.
2914	* tests/regression.at (Fix user actions without a trailing semicolon):
2915	Remove.  Covered by new test.
2916
29172009-04-14  Akim Demaille  <demaille@gostai.com>
2918
2919	doc: minor fixes.
2920	* doc/bison.texinfo (Decl Summary): Fix entry about %debug.
2921	(Table of Symbols): Remove duplicate entry for %debug.
2922
29232009-04-10  Eric Blake  <ebb9@byu.net>
2924
2925	submodules: update to latest
2926	* submodules/autoconf: Use latest upstream Autoconf.
2927
29282009-04-06  Eric Blake  <ebb9@byu.net>
2929
2930	Work around autoconf 2.63b bug in testsuite.
2931	* tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Avoid tripping
2932	autoconf bug related to # in test.
2933
29342009-04-06  Joel E. Denny  <jdenny@ces.clemson.edu>
2935
2936	* NEWS (2.5): Describe new -D/--define feature.
2937
29382008-11-10  Akim Demaille  <demaille@gostai.com>
2939
2940	--trace=muscles
2941	* src/getargs.h, src/getargs.c (trace_muscle): New.
2942	(trace_types, trace_args): Support it.
2943	* src/output.c (output_skeleton): Use it.
2944
29452008-11-10  Akim Demaille  <demaille@gostai.com>
2946
2947	muscles_output.
2948	* src/output.c (muscles_output): New, extracted from...
2949	(output_skeleton): here.
2950	Adjust.
2951
29522008-11-21  Akim Demaille  <demaille@gostai.com>
2953
2954	Display the changes in cross-options.texi.
2955	* build-aux/cross-options.pl ($sep): New, to separate items.
2956	* doc/Makefile.am ($(srcdir)/cross-options.texi): Use diff to display
2957	the changes.
2958
29592008-11-20  Di-an Jan  <dianj@freeshell.org>
2960
2961	Improves options in the manual.
2962	* doc/bison.texinfo (-g, -x): Add space before argument.
2963	(Option Cross Key): Implement FIXME: listing directives also.
2964	* build-aux/cross-options.pl:  Read from <STDIN> rather than <>.
2965	(Short Option): Special case -d.  Put arguments inside @option.
2966	(Bison Directive): Add column, automatically extracted from
2967	src/scan-gram.l (actual name passed as the first argument)
2968	with special case for %define.
2969	* doc/Makefile.am (doc/cross-options.texi): Pass src/scan-gram.l
2970	to build-aux/cross-options.pl.
2971	* src/getargs.c (usage): Document limitations of cross-options.pl.
2972	* src/scan-gram.l: Likewise.
2973
29742009-02-25  Akim Demaille  <demaille@gostai.com>
2975
2976	Copyright years.
2977	* data/glr.c: Add 2007 and 2008 here, consistenly with the comments.
2978
29792008-12-08  Akim Demaille  <demaille@gostai.com>
2980
2981	Install autoconf as a submodule to get m4sugar.
2982	* .gitmodules: Add submodules/autoconf.
2983	* data/m4sugar/foreach.m4, data/m4sugar/m4sugar.m4: Now links into
2984	submodules/autoconf.
2985
29862008-11-17  Joel E. Denny  <jdenny@ces.clemson.edu>
2987
2988	Simplify last patch slightly.
2989	* src/getargs.c (getargs): Here.
2990
29912008-11-17  Joel E. Denny  <jdenny@ces.clemson.edu>
2992
2993	Fix last warning from --enable-gcc-warnings.
2994	* src/getargs.c (getargs): Don't assign const address to non-const
2995	pointer.
2996
29972008-11-17  Di-an Jan  <dianj@freeshell.org>
2998
2999	Handle --enable-gcc-warnings.
3000	* src/getargs.c (command_line_location): Set parameters to void.
3001
30022008-11-11  Akim Demaille  <demaille@gostai.com>
3003
3004	AT_FULL_COMPILE.
3005	* tests/actions.at, tests/regression.at: Use it.
3006
30072008-11-07  Akim Demaille  <demaille@gostai.com>
3008
3009	Pass command line location to skeleton_arg and language_argmatch.
3010	* src/getargs.h, src/getargs.c (skeleton_arg, language_argmatch):
3011	The location argument is now mandatory.
3012	Adjust all dependencies.
3013	(getargs): Use command_line_location.
3014
30152008-11-07  Akim Demaille  <demaille@gostai.com>
3016
3017	-D, --define.
3018	* src/getargs.c (usage): Document -D.
3019	Fix help string for --locations.
3020	(command_line_location): New.
3021	(short_options, long_options, getargs): Support -D, --define.
3022	(getargs): Move -d support at the right place.
3023	* doc/bison.texinfo (Bison Options): Update.
3024	* tests/input.at (%define, --define): New.
3025
30262008-11-07  Akim Demaille  <demaille@gostai.com>
3027
3028	Initialize the muscle table before parsing the command line.
3029	* src/getargs.c (quotearg.h, muscle_tab.h): Include.
3030	(getargs): Define file_name.
3031	* src/main.c (main): Initialize muscle_tab before calling
3032	getargs.
3033	* src/muscle_tab.c (muscle_init): No longer define file_name, as
3034	its value is not available yet.
3035
30362008-11-09  Akim Demaille  <demaille@gostai.com>
3037
3038	Require the generation of parse-gram.output.
3039	* src/Makefile.am (YACC): Pass --report=all.
3040
30412009-04-06  Joel E. Denny  <jdenny@ces.clemson.edu>
3042
3043	* NEWS (2.5): New stub.
3044
30452009-04-06  Joel E. Denny  <jdenny@ces.clemson.edu>
3046
3047	Fix options documentation.
3048	* build-aux/cross-options.pl: As in --help output, write optional
3049	arguments as [=ARG] not =[ARG].
3050	* doc/bison.texinfo (Bison Options): Add -W/--warnings argument.
3051
30522008-11-07  Akim Demaille  <demaille@gostai.com>
3053
3054	Fix --help.
3055	* src/getargs.c (usage): Fix help string for -W.
3056
30572008-11-07  Akim Demaille  <demaille@gostai.com>
3058
3059	Handle more general types of option arguments.
3060	* build-aux/cross-options.pl: The argument ends at the first
3061	space, not the first non-symbol character.
3062	Use @var for each word appearing the argument description.
3063
30642009-04-04  Joel E. Denny  <jdenny@ces.clemson.edu>
3065
3066	Remove spurious initial empty lines.
3067	* data/location.cc: End the @output lines with an @.
3068
30692008-11-04  Akim Demaille  <demaille@gostai.com>
3070
3071	Remove spurious initial empty lines.
3072	* data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java,
3073	* data/yacc.c: End the @output lines with an @.
3074
30752009-04-04  Joel E. Denny  <jdenny@ces.clemson.edu>
3076
3077	Replace BISON_PROG_GNU_M4 with Autoconf's AC_PROG_GNU_M4.
3078	If the first m4 in $PATH is wrong, it keeps looking.  Moreover, its
3079	requirements for a correct m4 are stricter.
3080	* m4/m4.m4: Replace with Autoconf 2.63's m4/m4.m4.
3081	* configure.ac: Update to use AC_PROG_GNU_M4.
3082	Reported by Eric Blake.
3083
30842009-04-03  Joel E. Denny  <jdenny@ces.clemson.edu>
3085
3086	Help with updating web manual.
3087	* HACKING: Incorporate instructions from gnulib/doc/README.
3088	* bootstrap.conf (gnulib_modules): Add gendocs.
3089
30902009-04-03  Joel E. Denny  <jdenny@ces.clemson.edu>
3091
3092	Fix strange %define locations for default values.
3093	Reported by Akim Demaille at
3094	<http://lists.gnu.org/archive/html/bug-bison/2007-12/msg00001.html>
3095	and discussed again starting at
3096	<http://lists.gnu.org/archive/html/bison-patches/2008-11/msg00102.html>.
3097	* data/bison.m4 (b4_percent_define_default): Leave syncline blank
3098	because location information is bogus.
3099	Use angle brackets to delimit fake file name because square brackets
3100	look like underexpanded m4.  Choose a better fake file name.
3101	Use negative line numbers.
3102	* src/muscle_tab.c (muscle_percent_define_default): Likewise.
3103	* src/location.c (location_print): If line for a boundary is negative,
3104	only print that boundary's file name.
3105	* src/location.h: Document that.
3106	* tests/skeletons.at (%define Boolean variables: invalid skeleton
3107	defaults): Update output.
3108
31092008-11-07  Akim Demaille  <demaille@gostai.com>
3110
3111	Locations without columns for command line arguments.
3112	* src/location.c (location_print): Don't display negative columns.
3113	* src/location.h: Document this.
3114
31152009-02-03  Joel E. Denny  <jdenny@ces.clemson.edu>
3116
3117	Add reminder about uploading public key to keys.gnupg.net.
3118	* HACKING (Release Procedure): Here.
3119
31202009-03-31  Akim Demaille  <demaille@gostai.com>
3121
3122	bootstrap: --help to stdout.
3123	* bootstrap (usage): Don't send --help to stderr.
3124	Use a here doc instead of a long string.
3125
31262009-03-31  Akim Demaille  <demaille@gostai.com>
3127
3128	bootstrap: README-hacking no longer exists
3129	* bootstrap (checkout_only_file): Set to HACKING.
3130
31312009-03-26  Akim Demaille  <demaille@gostai.com>
3132
3133	doc: merge HACKING and README-hacking.
3134	Two files is confusing.
3135	Reported by Alexandre Duret-Lutz.
3136
3137	* README-hacking: Merge into...
3138	* HACKING (Working from the repository): here.
3139
31402009-03-26  Akim Demaille  <demaille@gostai.com>
3141
3142	doc: update README-hacking.
3143	* README-hacking: We now use git and git submodules.
3144	Reported by Ralf Wildenhues and Alexandre Duret-Lutz.
3145
31462009-03-26  Akim Demaille  <demaille@gostai.com>
3147
3148	lalr1.cc: avoid GCC 4.3 warnings.
3149	GCC 4.3 now warns about "a || b && c" and asks for explicit
3150	parentheses.
3151	Reported by Alexandre Duret-Lutz.
3152	* data/location.cc: Update copyright years.
3153	(Position::operator==): Use parens to make precedence explicit.
3154	Compare lines and columns first, as they are more likely to be
3155	different, and they are faster to compare.
3156
31572009-03-26  Akim Demaille  <demaille@gostai.com>
3158
3159	gnulib: update.
3160	* gnulib: Update to latest.
3161	* lib/Makefile.am (AM_CPPFLAGS): It is now defined by gnulib, so
3162	use +=.
3163
31642009-01-08  Akim Demaille  <demaille@gostai.com>
3165
3166	Fix grep portability issues.
3167	Grep on Solaris does not support -q.
3168	Reported by Summum Bonum.
3169
3170	* NEWS: Add a stub for 2.4.2.
3171	* THANKS: Add Summum Bonum.
3172	* tests/atlocal.in (EGREP): New.
3173	(CC, CXX, XSLTPROC): Make it possible to override them via
3174	envvars.
3175	* tests/java.at: Use $EGREP instead of egrep.
3176	Use AT_CHECK's ignore instead of grep's -q.
3177
31782008-12-11  Joel E. Denny  <jdenny@ces.clemson.edu>
3179
3180	Version 2.4.1.
3181	* NEWS: Set version and date.
3182	* lib/Makefile.am: Update copyright year.
3183	* tests/atlocal.in: Update copyright year.
3184
31852008-12-11  Joel E. Denny  <jdenny@ces.clemson.edu>
3186
3187	Semicolon feature removal is not about future language support.
3188	* NEWS: The semicolon feature is no longer active for newer languages,
3189	so don't claim that it causes trouble for them.
3190
31912008-12-11  Joel E. Denny  <jdenny@ces.clemson.edu>
3192
3193	* gnulib: Update submodule to HEAD.
3194
31952008-12-09  Akim Demaille  <demaille@gostai.com>
3196
3197	Update data/README.
3198	* data/README: Document glr.cc, lalr1.java, m4sugar and xslt.
3199
32002008-12-05  Eric Blake  <ebb9@byu.net>
3201
3202	Build testsuite with newer autoconf.
3203	* tests/output.at (m4_expand): Don't override in newer autoconf,
3204	where the underlying implementation changed.
3205	* tests/cxx-type.at (_AT_RESOLVED_GLR_OUTPUT)
3206	(_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT)
3207	(_AT_AMBIG_GLR_OUTPUT_WITH_LOC, _AT_GLR_STDERR)
3208	(_AT_VERBOSE_GLR_STDERR): Expand to double-quoted strings,
3209	since some of them contain unbalanced ')'.
3210
32112008-11-19  Joel E. Denny  <jdenny@ces.clemson.edu>
3212
3213	* NEWS: Clarify a little.
3214
32152008-11-19  Joel E. Denny  <jdenny@ces.clemson.edu>
3216
3217	* NEWS: Update for recent changes.
3218
32192008-11-18  Joel E. Denny  <jdenny@ces.clemson.edu>
3220
3221	Fix unexpanded macros in GLR defines file.
3222	Reported by Csaba Raduly at
3223	<http://lists.gnu.org/archive/html/bug-bison/2008-11/msg00048.html>.
3224	* THANKS (Csaba Raduly): Add.
3225	* data/glr.c: Fix overquoting on b4_prefix for yylval and yylloc.
3226	* tests/calc.at (_AT_DATA_CALC_Y): If %defines is specified, generate
3227	lexer in a separate module that includes the defines file.
3228	(AT_CHECK_CALC): Use AT_FULL_COMPILE and request compilation of lexer
3229	source.
3230	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Push AT_DEFINES_IF.
3231	Adjust AT_LOC and AT_VAL to use AT_NAME_PREFIX.
3232	(AT_BISON_OPTION_POPDEFS): Pop AT_DEFINES_IF.
3233	(AT_DATA_SOURCE_PROLOGUE): New.
3234	(AT_DATA_GRAMMAR_PROLOGUE): Use AT_DATA_SOURCE_PROLOGUE.
3235	(AT_DATA_SOURCE): New.
3236	(AT_FULL_COMPILE): New, copied from master branch and extended to
3237	support an additional source file.
3238
32392008-11-17  Joel E. Denny  <jdenny@ces.clemson.edu>
3240
3241	Don't let maintainer-*-check targets force a version update.
3242	* cfg.mk (_is-dist-target): Implement.  maintainer-check* was already
3243	handled.
3244
32452008-11-17  Di-an Jan  <dianj@freeshell.org>
3246
3247	* doc/bison.texinfo: Synchronize ``Detail Node Listing''.
3248	Align menus.  Adjust word wrapping.  Use node names for menu names.
3249	(Examples): Don't abbreviate node names.
3250	(LocalWords): Remove abbreviations.
3251	(Copying): Make description a sentence.
3252	(Java Action Features): Remove period to match the rest of menu.
3253
32542008-11-11  Paolo Bonzini  <bonzini@gnu.org>
3255
3256	* bootstrap.conf: Replace m4/warning.m4 with warnings module.
3257	* configure.ac: Adjust usage.
3258	* lib/Makefile.am: Replace $(WARNING_CFLAGS) with $(WARN_CFLAGS).
3259	* src/Makefile.am: Replace $(WARNING_CFLAGS) with $(WARN_CFLAGS).
3260	* tests/atlocal.in: Replace $(WARNING_*FLAGS) with $(WARN_*FLAGS).
3261
32622008-11-07  Joel E. Denny  <jdenny@ces.clemson.edu>
3263
3264	Don't add a semicolon to actions for %skeleton or %language.
3265	It breaks Java test cases as reported by Akim Demaille.
3266	* src/scan-code.l: Implement.
3267
32682008-11-07  Joel E. Denny  <jdenny@ces.clemson.edu>
3269
3270	Clean up %skeleton and %language priority implementation.
3271	* src/getargs.c (skeleton_prio): Use default_prio rather than 2, and
3272	remove static qualifier because others will soon need to see it.
3273	(language_prio): Likewise.
3274	(getargs): Use command_line_prio rather than 0.
3275	* src/getargs.h (command_line_prio, grammar_prio, default_prio): New
3276	enum fields.
3277	(skeleton_prio): Extern it.
3278	(language_prio): Extern it.
3279	* src/parse-gram.y: Use grammar_prio rather than 1.
3280
32812008-11-04  Akim Demaille  <demaille@gostai.com>
3282
3283	* NEWS: Mention the trailing semicolon in action.
3284
32852008-11-04  Akim Demaille  <demaille@gostai.com>
3286
3287	Reformat NEWS.
3288	* NEWS: Use more outline-mode markup.
3289	Suggested by Jim Meyering.
3290
32912008-11-04  Joel E. Denny  <jdenny@ces.clemson.edu>
3292
3293	Fix user actions without a trailing semicolon.
3294	Reported by Sergei Steshenko at
3295	<http://lists.gnu.org/archive/html/bug-bison/2008-11/msg00001.html>.
3296	* THANKS (Sergei Steshenko): Add.
3297	* src/scan-code.l (SC_RULE_ACTION): Fix it.
3298	* tests/regression.at (Fix user actions without a trailing semicolon):
3299	New test case.
3300
33012008-11-02  Joel E. Denny  <jdenny@ces.clemson.edu>
3302
3303	Initiate further development.
3304	* NEWS: Create an empty section for new entries.
3305	* gnulib: Update submodule to HEAD.
3306
33072008-11-02  Joel E. Denny  <jdenny@ces.clemson.edu>
3308
3309	* NEWS: Version 2.4.
3310
33112008-11-02  Joel E. Denny  <jdenny@ces.clemson.edu>
3312
3313	Prepare for next release.
3314	* NEWS: Briefly mention changes since 2.3b.
3315	* README: Say GNU m4 1.4.6, which we've been requiring in release
3316	announcements already, not 1.4.3, which breaks the build.
3317
33182008-11-02  Joel E. Denny  <jdenny@ces.clemson.edu>
3319
3320	Say %language is experimental.
3321	We're thinking of extending it's effect on output file naming.  See the
3322	thread at
3323	<http://lists.gnu.org/archive/html/bison-patches/2008-10/msg00003.html>.
3324	* NEWS: Say it's experimental.
3325	* doc/bison.texinfo (Decl Summary): Say it's experimental, and so don't
3326	recommend it over %skeleton for now.
3327	(Bison Options): Likewise.
3328	(C++ Bison Interface): Use %skeleton not %language.
3329	(Calc++ Parser): Use %skeleton not %language.
3330	* src/getargs.c (usage): Say it's experimental.
3331
33322008-11-01  Di-an Jan  <dianj@freeshell.org>
3333	    Paolo Bonzini  <bonzini@gnu.org>
3334
3335	Support all Java parser class modifiers.
3336	* data/java.m4 (b4_percent_define_get3): New.
3337	(b4_final_if, b4_strictfp_if): New.
3338	* data/lalr1.java (final, strictfp, extends, implements): Support.
3339	* doc/bison.texinfo (final, strictfp, extends, implements): Add
3340	documentation.
3341	* tests/java.at (AT_CHECK_JAVA_MINIMAL): New.
3342	(AT_CHECK_JAVA_MINIMAL_W_LEXER): New.
3343	(AT_CHECK_JAVA_GREP): New.
3344	(Java parser class modifiers): New test.
3345	(Java parser class extends and implements): New test.
3346
3347	Model exception propagation better with throws and lex_throws.
3348	* data/java.m4 (b4_list2): New.
3349	(throws): Change default.
3350	* data/lalr1.java (yyaction): Add throws.
3351	(parse): Add lex_throws in addition to throws.
3352	* doc/bison.texinfo (throws, lex_throws): Add documentation.
3353	* tests/java.at (Java throws specifications): New test.
3354
3355	Improve documentation for Java parsers.
3356	* doc/bison.texinfo (Java Parsers): Add subsections.
3357	Don't quote first argument of %define.
3358	(Java Bison Interface): Document output files.  Move documentation
3359	of parser class and merge into Java Parser Interface.  Document
3360	features that error out.  Document directives with no effect.
3361	Move note about Javadoc higher.
3362	(Java Semantic Values): Explicitly mention stype.
3363	Document that generic types cannot be used.
3364	(Java Location Values): Use @deftypeivar.  Document constructors.
3365	Correct return value for toString.
3366	(Java Parser Interface): List undocumented constants/fields.
3367	Move documentation of fields added by %parse-param closer to list
3368	of members.  Document that token names are added as fields.
3369	Document constructors accurately.  Remove error method.
3370	(Java Scanner Interface): Move note on %pure-parser to Java Bison
3371	Interface.  Describe %code lexer and yylex accutately.
3372	Remove documentation that does not match the code.
3373	(Java Action Features): New.
3374	(Java Differences): Add reference.  Add item on semantic values.
3375	Add note about @{ ... @}.  Clarify %% epilogue placement.
3376	(Java Declarations Summary): New.
3377
3378	Fix Java skeleton.
3379	* data/java.m4 (b4_prefix): Correct quoting for m4_define_default.
3380	(b4_remove_comma): Quote test argument.
3381	(b4_identification): Remove "bison" field.
3382	* tests/java.at (Java parser class and package names): New test.
3383	(Java %parse-param and %lex-param): New test.
3384	(Java stype, position_class and location_class): New test.
3385
33862008-10-31  Di-an Jan  <dianj@freeshell.org>
3387
3388	* data/lalr1.jave: Update copyright years.
3389	(YYParser): Correct name of "generated from" file in Javadoc:
3390	use b4_file_name instead of @ofile@.
3391	(Location constructor): Correct Javadoc parameter name.
3392	(yylloc): Add missing opening m4 quote after b4_location_if.
3393	This removes a stray [ in the Javadoc of Lexer.getStartPos.
3394	(Lexer.yyerror): Fix incorrect m4 and Javadoc.
3395	(YYParser constructor): Correct Javadoc parameter name.
3396
33972008-10-30  Joel E. Denny  <jdenny@ces.clemson.edu>
3398
3399	Always put auxiliary code files in the same dir as other output files.
3400	* src/files.c (compute_file_name_parts): When the user specifies
3401	--output but not --file-prefix, extract the directory prefix from the
3402	file prefix not from the grammar file name.  This affects the location
3403	of files like location.hh generated by the C++ skeleton.  The includes
3404	in the other output files require this fix.
3405	* tests/output.at (AT_CHECK_OUTPUT): Automatically create directories
3406	for expected output files.
3407	(Output files): Add a test for the above.
3408
34092008-10-29  Joel E. Denny  <jdenny@ces.clemson.edu>
3410
3411	* gnulib: Update submodule to HEAD.
3412
34132008-10-28  Joel E. Denny  <jdenny@ces.clemson.edu>
3414
3415	Update copyright year.
3416	* src/files.c: Here.
3417
34182008-10-28  Di-an Jan  <dianj@freeshell.org>  (tiny change)
3419
3420	Don't overwrite the input file.
3421	* src/files.c (output_file_name_check): Fatal error if using input file
3422	for output.
3423	* tests/output.at: (AT_CHECK_CONFLICTING_OUTPUT): Add return status
3424	argument.
3425	(Conflicting output files): Add test.
3426
34272008-10-28  Akim Demaille  <demaille@gostai.com>
3428
3429	Space changes.
3430	* data/lalr1.cc: Formatting changes.
3431
34322008-10-28  Akim Demaille  <demaille@gostai.com>
3433
3434	Don't define debugging functions when !YYDEBUG.
3435	* data/lalr1.cc (debug_stream, set_debug_stream)
3436	(debug_level_type, debug_level, set_debug_level): Don't
3437	declare them when YYDEBUG is not defined.
3438	The implementation are already YYDEBUG-aware.
3439
34402008-10-28  Akim Demaille  <demaille@gostai.com>
3441
3442	Prefer "continue" for empty loop bodies.
3443	* etc/bench.pl.in: Use "continue" instead of {}.
3444
34452008-10-28  Akim Demaille  <demaille@gostai.com>
3446
3447	Space and comments changes.
3448	* data/c++.m4, data/glr.c, data/lalr1.cc: Copyright year changes.
3449	* data/c.m4, data/lalr1.cc: Space changes.
3450
34512008-10-28  Akim Demaille  <demaille@gostai.com>
3452
3453	Make gnulib a submodule.
3454	* gnulib: New.
3455	* .gitmodules (gnulib): New.
3456
34572008-10-18  Joel E. Denny  <jdenny@ces.clemson.edu>
3458
3459	Fix yyerror_range for user-defined location type in C++.  Reported by
3460	Georg Sauthoff at
3461	<http://lists.gnu.org/archive/html/bug-bison/2008-08/msg00008.html>.
3462	* data/lalr1.cc (parse): Change type of yyerror_range to location_type.
3463	* THANKS (Georg Sauthoff): Add.
3464
34652008-10-18  Joel E. Denny  <jdenny@ces.clemson.edu>
3466
3467	Update several administrative files mainly to facilitate releasing.
3468	* HACKING (Administrivia): Make the git-merge-changelog notes more
3469	helpful.
3470	(Test suite): Don't say lalr1.cc is not exercised in the test suite.
3471	(Release Procedure): Update for git and add numerous details that were
3472	previously missing.
3473	* Makefile.am (EXTRA_DIST): Remove Makefile.cfg and Makefile.maint.
3474	* maint.mk (announcement): Don't list bison as a bootstrap tool so
3475	that announcements don't claim we bootstrapped with whatever bison
3476	happened to be in PATH.  Add flex as a bootstrap tool.
3477	* Makefile.maint: Remove, previously replaced by maint.mk.
3478	* Makefile.cfg: Remove, and migrate settings to...
3479	* cfg.mk: ... here for the sake of `make announcement'.
3480	* bootstrap.conf (gnulib_modules): Add announce-gen.
3481	* README: Say GNU Bison instead of just Bison.  Suggested by Karl
3482	Berry.
3483
34842008-10-08  Di-an Jan  <dianj@freeshell.org>  (tiny change)
3485
3486	Small but important bugfixes for the Java skeleton.
3487	* data/lalr1.java (yyerror): Change Location to b4_location_type.
3488	(yy_symbol_print): Call toString on yyvaluep.
3489
34902008-08-29  Akim Demaille  <demaille@gostai.com>
3491
3492	Clarify UPDATED use.
3493	* doc/bison.texinfo: It refers to the last edition of this file,
3494	not to the release date of Bison.
3495	Reported by Joel E. Denny.
3496
34972008-08-29  Akim Demaille  <demaille@gostai.com>
3498
3499	* README: Update FAQ pointer.
3500	Reported by Joel E. Denny.
3501
35022008-08-27  Eric Blake  <ebb9@byu.net>
3503
3504	Resync m4sugar from autoconf.
3505	* data/m4sugar/m4sugar.m4 (m4_defn, m4_popdef, m4_undefine)
3506	(m4_init): Adjust to latest m4.git changes.
3507	(m4_mapall_sep, _m4_list_cmp, m4_version_compare): Reduce side
3508	effects.
3509	* data/m4sugar/foreach.m4 (_m4_shiftn): Fix off-by-one bug.
3510	(_m4_list_cmp): Reduce side effects.
3511
35122008-08-27  Akim Demaille  <demaille@gostai.com>
3513
3514	Check yyerrok in calc.at.
3515	* tests/calc.at (calc.y): Use yyerrok on "( error )".
3516	(AT_CHECK_CALC): Add a check that ensures that yyerrok works as
3517	expected.
3518
35192008-08-27  Akim Demaille  <demaille@gostai.com>
3520
3521	Support yyerrok in lalr1.cc.
3522	YYBACKUP is still to import back into lalr1.cc.
3523	* data/lalr1.cc (yyerrork, yyclearin, YYRECOVERING): Define.
3524
35252008-08-26  Joel E. Denny  <jdenny@ces.clemson.edu>
3526
3527	For maintainer-check*, don't recompile for a $(VERSION) update.
3528	* cfg.mk: New file.
3529	(_is-dist-target): Override the one in GNUmakefile.
3530	* Makefile.am (EXTRA_DIST): Add cfg.mk.
3531
35322008-08-26  Joel E. Denny  <jdenny@ces.clemson.edu>
3533
3534	Update for recent change to gnulib.
3535	* src/parse-gram.y: Don't include strverscmp.h.  It comes from
3536	string.h now.
3537
35382008-08-15  Eric Blake  <ebb9@byu.net>
3539
3540	Remaining m4sugar merge from autoconf.
3541	* data/m4sugar/m4sugar.m4: Copy entire file from autoconf.
3542	* data/m4sugar/foreach.m4: New file, copied from autoconf.
3543	* data/Makefile.am (dist_m4sugar_DATA): Distribute it.
3544	* src/output.c (output_skeleton): Tell m4 how to find it.
3545
3546	Partial m4sugar merge from autoconf: m4_map.
3547	* data/m4sugar/m4sugar.m4 (m4_fst): Delete.
3548	(m4_map, m4_map_sep, _m4_map): Rewrite more efficiently.
3549	(m4_apply, _m4_apply, m4_mapall, m4_mapall_sep): New macros.
3550	* data/java.m4 (b4_token_enums): Use more efficient short-circuit
3551	for empty list.
3552	* data/c.m4 (b4_token_defines, b4_token_enums, b4_c_ansi_formals):
3553	Likewise.
3554	(b4_parse_param_for): Avoid m4_fst, now that autoconf no longer
3555	declares it.
3556
35572008-08-07  Joel E. Denny  <jdenny@ces.clemson.edu>
3558
3559	Keep .version and PACKAGE_VERSION in sync.
3560	* Makefile.am ($(top_srcdir)/.version): Declare configure as a
3561	dependency, and add comments justifying this in more detail.  Discussed
3562	starting at
3563	<http://lists.gnu.org/archive/html/bison-patches/2008-07/msg00022.html>.
3564
35652008-08-06  Eric Blake  <ebb9@byu.net>
3566
3567	Partial m4sugar merge from autoconf: m4_shiftn.
3568	* data/m4sugar/m4sugar.m4 (m4_shiftn): Faster implementation.
3569	(m4_shift2, m4_shift3): New macros.
3570	(m4_case, m4_bmatch, m4_bpatsubsts, m4_join): Adjust clients.
3571	* data/c.m4 (b4_c_function_def, b4_c_ansi_function_def)
3572	(b4_c_ansi_function_decl, b4_c_function_call): Likewise.
3573	* data/java.m4 (b4_remove_comma): Likewise.
3574
3575	Partial m4sugar merge from autoconf: m4_wrap vs. m4 1.6.
3576	* data/m4sugar/m4sugar.m4 (m4_unquote, m4_wrap_lifo): New macros.
3577	(m4_wrap): Guarantee FIFO order, in spite of m4 1.6.
3578	(m4_init): Consolidate wrapped text into single m4_wrap.
3579	* data/bison.m4 (b4_check_user_names_wrap): Stick with LIFO order
3580	in wrapped text.
3581
35822008-08-05  Eric Blake  <ebb9@byu.net>
3583
3584	Partial m4sugar merge from autoconf: builtins, version.m4.
3585	* data/m4sugar/m4sugar.m4 (changeword): Nuke.
3586	(m4_prepend): Remove, as it is unused and inherently quadratic,
3587	whereas m4_append is linear in newer m4.
3588	(m4_mkstemp): New builtin.
3589	(m4_symbols): Make rename conditional.
3590	(m4_version_prereq): Ensure fatal error if used in bison, which
3591	intentionally lacks version.m4.
3592
3593	Fix comments in m4sugar.
3594	* data/m4sugar/m4sugar.m4: Comment changes, borrowed from autoconf.
3595
35962008-08-02  Joel E. Denny  <jdenny@ces.clemson.edu>
3597
3598	Update for recent .gitignore fix in Gnulib.
3599	* bootstrap: Back out 2008-07-18 hack now that gnulib-tool creates
3600	anchored .gitignore entries.
3601
36022008-08-02  Joel E. Denny  <jdenny@ces.clemson.edu>
3603
3604	Set gnu or gnits strictness.
3605	* configure.ac (AM_INIT_AUTOMAKE): Set gnu strictness during
3606	development and gnits strictness for releases.  Based on Eric Blake's
3607	suggestion at
3608	<http://lists.gnu.org/archive/html/bug-bison/2008-07/msg00019.html>.
3609
36102008-07-31  Paolo Bonzini  <bonzini@gnu.org>
3611
3612	* NEWS: Clarify documentation of %language.
3613
36142008-07-31  Paolo Bonzini  <bonzini@gnu.org>
3615
3616	Support usage of git-merge-changelog.
3617	* .gitattributes: New.
3618	* HACKING: Document usage of git-merge-changelog.
3619	* bootstrap: Install git-merge-changelog entries in .git/config
3620	if appropriate.
3621
36222008-07-27  Joel E. Denny  <jdenny@ces.clemson.edu>
3623
3624	Remove remaining dependence on CVS Id keyword.
3625	* ChangeLog: For the sake of people still using CVS, don't use dollars
3626	when mentioning Id.
3627	* data/xslt/bison.xsl: Remove Id from header comments, where it was
3628	unusual anyway.
3629	* data/xslt/xml2dot.xsl: Likewise.
3630	* data/xslt/xml2text.xsl: Likewise.
3631	* data/xslt/xml2xhtml.xsl: Likewise.
3632	* doc/Doxyfile.in (PROJECT_NUMBER): Don't use ID.
3633	* doc/Makefile.am (neutralize): Remove, no longer needed.
3634	(.x.1): Don't use neutralize.
3635	(edit): Don't substitute for ID.
3636	(Doxyfile): Don't define Id, and thus don't depend on ChangeLog.
3637
36382008-07-27  Joel E. Denny  <jdenny@ces.clemson.edu>
3639
3640	Fix dependence on computed configure variables.
3641	* doc/Makefile.am (common_dep): Depend on $(top_srcdir)/configure not
3642	$(top_srcdir)/configure.ac so that changes to computed variables, such
3643	as PACKAGE_VERSION, are seen.
3644	* tests/Makefile.am ($(srcdir)/package.m4): Likewise.
3645
36462008-07-20  Joel E. Denny  <jdenny@ces.clemson.edu>
3647
3648	Update copyright dates for recent changes.
3649	* Makefile.am: Here.
3650	* src/Makefile.am: Here.
3651	* src/reduce.c: Here.
3652	* tests/reduce.at: Here.
3653
36542008-07-18  Joel E. Denny  <jdenny@ces.clemson.edu>
3655
3656	Use git-version-gen for version names between releases.
3657	* .cvsignore (.tarball-version, GNUmakefile, *~): Add.
3658	* .gitignore (/.tarball-version, /GNUmakefile, /*~): Add.
3659	* .prev-version: New.
3660	* .version.in: Remove.
3661	* ChangeLog: Remove the Id previously used for capturing the CVS
3662	revision.
3663	* GNUmakefile: Remove, now copied from Gnulib.
3664	* Makefile.am: Add code suggested by comments in
3665	build-aux/git-version-gen.
3666	(EXTRA_DIST): Remove GNUmakefile, handled by Gnulib.  Add maint.mk,
3667	.prev-version, and .version.
3668	* NEWS (2.3b+): Rename to...
3669	(?.?): ... this because we're dropping the "+" version naming scheme,
3670	but, in general, we still can't be sure of our next release name.
3671	* bootstrap: Add a quick hack to remove from .gitignore the
3672	GNUmakefile entry that gnulib adds.  We already have a /GNUmakefile
3673	entry.  This should really be fixed in gnulib instead.
3674	* bootstrap.conf (gnulib_modules): Add gnumakefile.
3675	* configure.ac (AC_INIT): Set version name by invoking
3676	build-aux/git-version-gen.
3677	(AC_CONFIG_FILES): Remove .version, now generated by
3678	build-aux/git-version-gen.
3679	* maint.mk: New, copied from coreutils.
3680	* doc/.cvsignore (bison.1): Add.
3681	* doc/.gitignore (/bison.1): Add.
3682	* doc/bison.1: Remove, generated.
3683	* src/.cvsignore (revision.c): Remove.
3684	* src/.gitignore (/revision.c): Remove.
3685	* src/Makefile.am (bison_SOURCES): Remove revision.c and revision.h.
3686	(BUILT_SOURCES): Remove revision.c.
3687	(revision.c): Remove.
3688	* src/getargs.c (version): Don't print revision after the VERSION.
3689	* src/revision.h: Remove.
3690
36912008-07-16  Joel E. Denny  <jdenny@ces.clemson.edu>
3692
3693	Fix untranslatable composition of sentences.  Reported by Goran
3694	Uddeborg at
3695	<http://lists.gnu.org/archive/html/bug-bison/2008-06/msg00000.html>.
3696	* THANKS (Goran Uddeborg): Add.
3697	* src/reduce.c (reduce_print): Report the number of nonterminals and
3698	rules useless in the grammar in separate sentences.
3699	* tests/reduce.at (Useless Rules): Update output.
3700	(Reduced Automaton): Likewise.
3701	(Underivable Rules): Likewise.
3702	(Empty Language): Likewise.
3703
37042008-07-15  Joel E. Denny  <jdenny@ces.clemson.edu>
3705
3706	Fix some .gitignore and .cvsignore problems.
3707	* bootstrap (insert_sorted_if_absent): Replace all uses with...
3708	(insert_vc_ignore): ... this new function, which prepends `/' to all
3709	.gitignore entries before passing them to insert_sorted_if_absent.
3710	* bootstrap.conf (vc_ignore): Set to '.cvsignore .gitignore' so that
3711	.cvsignore files are maintained even though Bison developers run
3712	bootstrap while using Git.
3713	* .cvsignore (*.patch *.log log patches applied): Remove, apparently
3714	unneeded by Bison.
3715	(gnulib): Add.
3716	* .gitignore (/*.patch *.log log patches applied): Remove, broken and
3717	unneeded.  Reported by Eric Blake.
3718	* lib/.gitignore (/*~): Add.
3719	* po/.cvsignore, runtime-po/.cvsignore: Sync with .gitignore.
3720	* examples/calc++/.gitignore (/calc++.exe): Add.  Reported by Eric
3721	Blake.
3722	* src/.gitignore (/bison.exe): Add.  Reported by Eric Blake.
3723
37242008-07-15  Joel E. Denny  <jdenny@ces.clemson.edu>
3725
3726	Improve forward-compatibility with GNU M4.  Reported by Eric Blake at
3727	<http://lists.gnu.org/archive/html/bug-bison/2008-07/msg00000.html>.
3728	* bootstrap.conf (gnulib_modules): Add unsetenv.
3729	* lib/.gitignore, lib/.cvsignore (/unsetenv.c): Add.
3730	* m4/.gitignore, m4/.cvsignore (/environ.m4): Add.
3731	(/setenv.m4): Add.
3732	* src/output.c (output_skeleton): For the m4 invocation, pass -dV as
3733	the first argument because it may become position-dependent, and unset
3734	POSIXLY_CORRECT so Bison's skeletons have access to GNU M4 extensions.
3735	Add comments explaining these issues in more detail.
3736
37372008-07-14  Joel E. Denny  <jdenny@ces.clemson.edu>
3738
3739	Add .gitignore everywhere based on .cvsignore.
3740	* .gitignore: New.
3741	* build-aux/.gitignore: New.
3742	* data/.gitignore: New.
3743	* doc/.gitignore: New.
3744	* etc/.gitignore: New.
3745	* examples/.gitignore: New.
3746	* examples/calc++/.gitignore: New.
3747	* lib/.gitignore: New.
3748	* m4/.gitignore: New.
3749	* po/.gitignore: New.
3750	* runtime-po/.gitignore: New.
3751	* src/.gitignore: New.
3752	* tests/.gitignore: New.
3753
37542008-05-27  Joel E. Denny  <jdenny@ces.clemson.edu>
3755
3756	* NEWS (2.3b+): New section, empty for now.
3757	* configure.ac (AC_INIT): 2.3b -> 2.3b+.
3758
37592008-05-27  Joel E. Denny  <jdenny@ces.clemson.edu>
3760
3761	* NEWS (2.3b): Update release date since there has been a delay in
3762	getting the announcements and tarballs out.
3763
37642008-05-23  Joel E. Denny  <jdenny@ces.clemson.edu>
3765
3766	* NEWS: Version 2.3b.
3767	* configure.ac (AC_INIT): Likewise.
3768	(PACKAGE_COPYRIGHT_YEAR): Update to 2008.
3769
37702008-05-23  Joel E. Denny  <jdenny@ces.clemson.edu>
3771
3772	* HACKING: Don't say don't mention HACKING in the ChangeLog.  We've
3773	been doing it for years.
3774	(Test suite): Mention maintainer-push-check and maintainer-xml-check.
3775	(Release Procedure): Add FIXME about make alpha being unmaintained.
3776
37772008-05-13  Joel E. Denny  <jdenny@ces.clemson.edu>
3778
3779	* data/yacc.c: Reformat m4 a little for readability.
3780	* src/lalr.c (build_relations): Correct comment.
3781
37822008-05-12  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
3783
3784	DJGPP specific issue.
3785	* djgpp/config.sed: Fixes required to run configure scripts generated
3786	by autoconf 2.62.
3787
37882008-05-07  Joel E. Denny  <jdenny@ces.clemson.edu>
3789
3790	* HACKING (Release Procedure): translation@iro.umontreal.ca is now
3791	coordinator@translationproject.org.
3792
37932008-05-06  Joel E. Denny  <jdenny@ces.clemson.edu>
3794
3795	* THANKS: Add Eric Blake.
3796
37972008-04-23  Eric Blake  <ebb9@byu.net>
3798
3799	Revert prior patch, by working around autoconf regression.
3800	* tests/output.at (m4_expand): Add workaround for autoconf 2.62.
3801	("Output file name: ("): Uncomment test.
3802	("Output file name: )"): Likewise.
3803	Based on an idea from Noah Misch.
3804
38052008-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
3806
3807	Work-around an Autoconf 2.62 AT_SETUP bug that was not present in
3808	2.61.  Reported by Juan Manuel Guerrero at
3809	<http://lists.gnu.org/archive/html/bug-bison/2008-04/msg00011.html>.
3810	* tests/output.at ("Output file name: ("): Comment out test case for
3811	now.
3812	("Output file name: )"): Likewise.
3813
38142008-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
3815
3816	* GNUmakefile: Update git-version-gen invocation so make dist
3817	succeeds.
3818
38192008-04-21  Joel E. Denny  <jdenny@ces.clemson.edu>
3820
3821	Update to the current gnulib CVS repository, and fix trigraph handling
3822	in Bison.
3823	* bootstrap: Update gnulib CVS repository URL.
3824	(symlink_to_dir): Encapsulate the code that guarantees the destination
3825	directory exists into...
3826	(check_dst_dir): ... this new function, and...
3827	(cp_mark_as_generated): ... reuse it here so that bootstrap doesn't
3828	fail when copying files into lib/uniwidth/.
3829	* src/output.c (prepare_symbols): When writing yytname muscles, where
3830	symbol names will be encoded in C-string literals, tell quotearg to
3831	escape trigraphs.  This used to be the default in gnulib.
3832	* tests/regression.at (Token definitions): Because of the change in
3833	gnulib's quotearg behavior, string_as_id in parse-gram.y no longer
3834	escapes trigraphs in symbol names.  Thus, yytname no longer has
3835	trigraphs unnecessarily doubly escaped.  Update test case output.
3836	Extend test case to be sure Bison's own error messages will no longer
3837	have trigraphs in symbol names unnecessarily escaped once.
3838
38392008-04-20  Joel E. Denny  <jdenny@ces.clemson.edu>
3840
3841	Fix make dist infinite loop reported by Juan Manuel Guerrero at
3842	<http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00009.html>.
3843	* .cvsignore: Add .version.
3844	* .version.in: New.
3845	* bootstrap.conf (gnulib_modules): Add git-version-gen.
3846	* configure.ac (AC_CONFIG_FILES): Add .version.
3847	* build-aux/.cvsignore: Add git-version-gen.
3848
38492008-03-08  Joel E. Denny  <jdenny@ces.clemson.edu>
3850
3851	* NEWS (2.3a+): Mention that -g now takes an argument.
3852	* doc/bison.texinfo (Bison Options): Reword -W entry a little for
3853	consistency.  Update the -g and -x entries now that they take
3854	arguments.  Use brackets to indicate optional arguments.
3855	* src/getargs.c (usage): Explain the relationship between arguments of
3856	long and short options more completely.  Document --defines and -d
3857	separately since the former takes an argument but, for POSIX Yacc, the
3858	latter does not.
3859	(short_options): Let -W take an optional argument like --warnings.
3860	(getargs): Sort cases.
3861
38622008-02-28  Akim Demaille  <demaille@gostai.com>
3863
3864	* doc/bison.texinfo: Fix a few typos.
3865
38662008-02-28  Akim Demaille  <akim@epita.fr>
3867
3868	* doc/bison.texinfo (Bison Options): Document -W.
3869	Based on Joel E. Denny's NEWS entry, and Automake's documentation.
3870
38712008-02-28  Akim Demaille  <akim@epita.fr>
3872
3873	* src/getargs.c (short_options): Split and sort for readability.
3874	-g and -x take optional arguments, just like their long options.
3875	* build-aux/cross-options.pl: Use /x to make the regexp easier to
3876	understand.
3877	Fix the handling of $opt which resulted in all the argument to be
3878	considered as optional.
3879
38802008-02-22  Joel E. Denny  <jdenny@ces.clemson.edu>
3881
3882	* NEWS (2.3a+): Don't say %language is experimental.  Mention Java and
3883	say its interface is experimental.
3884	* doc/bison.texinfo (Decl Summary): In the %language entry, mention
3885	Java.
3886	(Bison Options): In the -L and --language entry, mention Java.
3887	(Java Bison Interface): Say the interface is experimental.
3888	* src/getargs.c (usage): Mention -L and --language.
3889
3890	* NEWS (2.3a+): Say the push parsing interface is experimental.
3891	* doc/bison.texinfo (Push Decl): Likewise.
3892	(Decl Summary): Likewise in the "%define api.push_pull" entry.
3893	(Push Parser Function): Likewise.
3894	(Pull Parser Function): Likewise.
3895	(Parser Create Function): Likewise.
3896	(Parser Delete Function): Likewise.
3897	(Table of Symbols): Likewise in the yypstate_delete, yypstate_new,
3898	yypull_parse, and yypush_parse entries.
3899
3900	* NEWS (2.3a+): Mention XML support, and say the schema is
3901	experimental.
3902	* doc/bison.texinfo (Bison Options): Mention -x and --xml.
3903	* src/getargs.c (usage): Say the XML schema is experimental.
3904
3905	* NEWS (2.3a+): Say option instead of flag.
3906
39072008-02-21  Wojciech Polak  <polak@gnu.org>
3908
3909	* data/xslt/xml2xhtml.xsl (xsl:template match="/"): Change footer
3910	text.
3911
39122008-02-20  Joel E. Denny  <jdenny@ces.clemson.edu>
3913
3914	Fix impure push parser compile error reported by Bob Rossi at
3915	<http://lists.gnu.org/archive/html/help-bison/2008-02/msg00023.html>.
3916	* data/yacc.c: Clean up whitespace in the output a little.
3917	(yypstate_allocated): Define for impure push parsers regardless of
3918	whether the pull interface is also requested.
3919	* tests/push.at (Push Parsing: Multiple impure instances): Extend to
3920	check impure push parsers without the pull interface.
3921
3922	* data/yacc.c (yypstate_new): Don't try to invoke yyerror since
3923	yyerror takes arguments specified by %parse-param while yypstate_new
3924	does not.
3925	* doc/bison.texinfo (Parser Create Function): Document that
3926	yypstate_new returns 0 for multiple impure parser instances.
3927	* tests/push.at (Push Parsing: Multiple impure instances): Update
3928	expected stderr output.
3929
39302008-02-19  Joel E. Denny  <jdenny@ces.clemson.edu>
3931
3932	* runtime-po/POTFILES.in (push.c): Remove.
3933
39342008-02-17  Joel E. Denny  <jdenny@ces.clemson.edu>
3935
3936	* data/Makefile.am (dist_pkgdata_DATA): Remove push.c.
3937	* data/push.c: Rename to...
3938	* data/yacc.c: ... this, overwriting it.
3939	* etc/bench.pl.in (bench_grammar): `%pure-parser'-> `%define api.pure'.
3940	`%push-pull-parser' -> `%define api.push_pull "both"'.
3941	Remove old yacc.c tests, and update push.c tests to yacc.c.
3942
39432008-02-17  Joel E. Denny  <jdenny@ces.clemson.edu>
3944
3945	* data/bison.m4 (b4_percent_code_get): Output %code block comments like
3946	`"%code top" blocks' instead of `%code "top" blocks'.
3947	* data/push.c: Import yacc.c changes from 2008-01-09 and 2007-08-03.
3948	Clean up whitespace in the output a little.
3949
39502008-02-16  Joel E. Denny  <jdenny@ces.clemson.edu>
3951
3952	Fix documentation problems reported by Tim Josling at
3953	<http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00013.html>.
3954	* NEWS (2.3a+): Mention removal of --no-parser, -n, and %no-parser.
3955	* doc/bison.texinfo (Token Decl): Token numbers are *nonnegative*
3956	integers.  Explain the effect of literal string aliases on error
3957	messages.  Copy token 0 documentation from the C++ skeleton
3958	documentation.
3959
39602008-02-16  Joel E. Denny  <jdenny@ces.clemson.edu>
3961
3962	Accept a token number in a %left, %right, or %nonassoc for POSIX
3963	conformance.  Reported by Tim Josling at
3964	<http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00010.html>.
3965	* NEWS (2.3a+): Mention.
3966	* doc/bison.texinfo (Precedence Decl): Describe how literal strings
3967	and code numbers are treated by precedence declarations.
3968	* src/parse-gram.y (precedence_declaration): Use symbols.prec instead
3969	of symbols.1.
3970	(symbols.prec): New, just like symbols.1 but uses symbol.prec instead
3971	of symbol.
3972	(symbol.prec): New, just like symbol but allows INT.
3973	* src/symtab.c (symbol_user_token_number_set): Remove an aver that no
3974	longer holds.
3975	* tests/regression.at (Token number in precedence declaration): New
3976	test case.
3977
39782008-02-06  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
3979
3980	DJGPP specific issues.
3981	* djgpp/config.bat: Add filenames that are not 8.3 clean and that must
3982	be changed.  Copyright timestamp adjusted.
3983	* djgpp/config.sed: Add filenames that are not 8.3 clean and that must
3984	be changed.  Copyright timestamp adjusted.
3985	* djgpp/config.site: Copyright timestamp adjusted.
3986	* djgpp/config_h.sed: Copyright timestamp adjusted.
3987	* djgpp/djunpack.bat: Copyright timestamp adjusted.
3988	* djgpp/fnchnage.lst: Add filenames that are not 8.3 clean to the
3989	filename translation list.
3990	* djgpp/subpipe.c (init_subpipe): Check the environment variables
3991	TMPDIR, TMP and TEMP, in that order, to determinate where the temp
3992	files shall be created.  Before trying to use the temp dir where the
3993	environment variable points to check that the dir really exists. If
3994	not default to the cwd as temp dir.  Copyright timestamp adjusted.
3995	* djgpp/subpipe.h: Copyright timestamp adjusted.
3996	* djgpp/testsuite.sed: Copyright timestamp adjusted.
3997
39982008-01-30  Paul Eggert  <eggert@cs.ucla.edu>
3999
4000	* doc/bison.texinfo: Update Back-Cover text to reflect new GNU wording.
4001
40022008-01-09  Paul Eggert  <eggert@cs.ucla.edu>
4003
4004	* data/yacc.c (yyparse): Correct the comment when locations aren't used.
4005	Problem reported by Claudio Saavedra in
4006	<http://lists.gnu.org/archive/html/bug-bison/2008-01/msg00003.html>.
4007
40082008-01-05  Wojciech Polak  <polak@gnu.org>
4009
4010	* data/xslt/xml2xhtml.xsl (xsl:template match="/"): Precede an XHTML
4011	document's title with the input grammar file name.
4012
40132007-12-22  Joel E. Denny  <jdenny@ces.clemson.edu>
4014
4015	Automate regression testing of the XML/XSLT implementation.  Discussed
4016	starting at
4017	<http://lists.gnu.org/archive/html/bison-patches/2007-11/msg00021.html>.
4018	* configure.ac (XSLTPROC): New substitution.
4019	* Makefile.am (maintainer-xml-check): New phony target invoking...
4020	* tests/Makefile.am (maintainer-xml-check): ... this new phony target
4021	invoking make maintainer-check with BISON_TEST_XML=1.
4022	* tests/atlocal.in (XSLTPROC): New.
4023	* tests/local.at (AT_BISON_CHECK): New macro to (1) instruct Valgrind
4024	not to report reachable memory when Bison is expected to have a
4025	non-zero exit status and (2) to compare XML/XSLT output with --graph
4026	and --report=all output for every working grammar when
4027	BISON_TEST_XML=1.
4028	(AT_BISON_CHECK_NO_XML): Likewise, but skip XML checks.
4029	(AT_BISON_CHECK_XML): New.
4030	(AT_QUELL_VALGRIND): New.
4031	* tests/testsuite.at (ORIGINAL_AT_CHECK): Remove this and...
4032	(AT_CHECK): ... don't redefine this since this was the old way to
4033	quell Valgrind.
4034	* tests/actions.at: Rewrite all AT_CHECK invocations for bison as
4035	AT_BISON_CHECK invocations.
4036	* tests/c++.at: Likewise.
4037	* tests/calc.at: Likewise.
4038	* tests/conflicts.at: Likewise.
4039	* tests/cxx-type.at: Likewise.
4040	* tests/existing.at: Likewise.
4041	* tests/glr-regression.at: Likewise.
4042	* tests/headers.at: Likewise.
4043	* tests/input.at: Likewise.
4044	* tests/java.at: Likewise.
4045	* tests/output.at: Likewise.
4046	* tests/push.at: Likewise.
4047	* tests/reduce.at: Likewise.
4048	* tests/regression.at: Likewise.
4049	* tests/sets.at: Likewise.
4050	* tests/skeletons.at: Likewise.
4051	* tests/synclines.at: Likewise.
4052	* tests/torture.at: Likewise.
4053	(Big triangle): Use AT_BISON_CHECK_NO_XML instead since this grammar
4054	tends to hang xsltproc.
4055	(Big horizontal): Likewise.
4056
40572007-12-08  Joel E. Denny  <jdenny@ces.clemson.edu>
4058
4059	In XML output, remove redundant class attribute on symbol element.
4060	* data/xslt/bison.xsl (xsl:key name="bison:symbolByName"): New.
4061	* data/xslt/xml2xhtml.xsl (xsl:template match="symbol"): Use it to
4062	look up a symbol to determine whether it's a nonterminal or terminal.
4063	* src/gram.c (rule_rhs_print_xml): Remove class attribute.
4064	* src/state.c (state_rule_lookahead_tokens_print_xml): Likewise.
4065
4066	Add prec/assoc information to XML output.
4067	* src/gram.c (grammar_rules_print_xml): For each rule that has a
4068	%prec, add a percent_prec attribute.
4069	* src/print-xml.c (print_grammar): For each terminal that has a
4070	precedence or associativity, add a prec or assoc attribute.
4071	(xml_indent): New.
4072	(xml_puts): Use xml_indent.
4073	(xml_printf): Use xml_indent.
4074	* src/print-xml.h (xml_indent): Prototype.
4075
4076	* tests/existing.at (GNU pic Grammar): Fix a rule miscopied from
4077	<http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
4078
40792007-12-08  Joel E. Denny  <jdenny@ces.clemson.edu>
4080
4081	* data/xslt/bison.xsl (bison:ruleNumber): Rename to...
4082	(bison:ruleByNumber): ... this for clarity.
4083	* data/xslt/xml2dot.xsl (xsl:template match="item"): Update.
4084	* data/xslt/xml2text.xsl (xsl:template match="item"): Update.
4085	(xsl:template match="reduction"): Update.
4086	(xsl:template match="item"): Update.
4087	(xsl:template match="reduction"): Update.
4088
4089	In the XML output, don't print the list of rules where symbols appear.
4090	Compute it in XSLT instead.  Discussed at
4091	<http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00024.html>.
4092	* data/xslt/bison.xsl (bison:ruleByLhs): New.
4093	(bison:ruleByRhs): New.
4094	* data/xslt/xml2text.xsl (xsl:template match="terminal"): Use
4095	bison:ruleByRhs.
4096	(xsl:template match="terminal/rule"): Remove.
4097	(xsl:template match="nonterminal"): Use bison:ruleByLhs and
4098	bison:ruleByRhs.
4099	(xsl:template match="nonterminal/left/rule|nonterminal/right/rule"):
4100	Remove.
4101	* data/xslt/xml2xhtml.xsl (xsl:template match="terminal"): Use
4102	bison:ruleByRhs and mode="number-link" for rule template.
4103	(xsl:template match="terminal/rule"): Remove.
4104	(xsl:template match="nonterminal"): Use bison:ruleByLhs and
4105	bison:ruleByRhs and mode="number-link" for rule template.
4106	(xsl:template match="nonterminal/left/rule|nonterminal/right/rule"):
4107	Rewrite as...
4108	(xsl:template match="rule" mode="number-link"): ... this.
4109	* src/print-xml.c (print_grammar): Don't print the list of rules.
4110
41112007-12-01  Joel E. Denny  <jdenny@ces.clemson.edu>
4112
4113	Don't let --report affect XML output; always print all information.
4114	Discussed at
4115	<http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00020.html>.
4116	* src/conflicts.c (log_resolution): Implement.
4117	* src/print-xml.c (print_core): Implement.
4118	(print_state): Implement.
4119	(print_xml): Implement.
4120
4121	* NEWS (2.3a+): Fix quotes.
4122	* src/parse-gram.y (prologue_declaration): For consistency with -v,
4123	don't let %verbose clear the list specified by --report.
4124
41252007-11-26  Akim Demaille  <akim@epita.fr>
4126
4127	* data/Makefile.am (dist_pkgdata_DATA): Ship and install bison.xsl.
4128
41292007-11-24  Joel E. Denny  <jdenny@ces.clemson.edu>
4130
4131	In the XML output, list useless and unused symbols and rules with the
4132	useful ones and add a "usefulness" attribute.  Discussed starting at
4133	<http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00017.html>.
4134	* src/gram.c (grammar_rules_partial_print_xml): Remove.
4135	(grammar_rules_print_xml): Print all rules instead of just those
4136	useful in the grammar, and add a "usefulness" attribute.
4137	* src/gram.h (grammar_rules_partial_print_xml): Remove prototype.
4138	* src/print-xml.c (print_rules_useless_in_parser): Remove.
4139	(print_grammar): Print all nonterminals instead of just useful ones,
4140	and add a "usefulness" attribute to nonterminals and terminals.
4141	(print_xml): Don't print a separate "reductions" or
4142	"rules-useless-in-parser" element.
4143	* src/reduce.c (reduce_output): Use reduce_token_unused_in_grammar.
4144	(reduce_xml): Remove.
4145	(reduce_token_unused_in_grammar): New.
4146	(reduce_nonterminal_useless_in_grammar): New.
4147	* src/reduce.h (reduce_xml): Remove prototype.
4148	(reduce_token_unused_in_grammar): Add prototype.
4149	(reduce_nonterminal_useless_in_grammar): Add prototype.
4150	* data/xslt/xml2text.xsl: Update for XML changes.
4151	* data/xslt/xml2xhtml.xsl: Update for XML changes.
4152	* tests/reduce.at (Useless Terminals): Update output.
4153	(Useless Rules): Update output.
4154	(Reduced Automaton): Update output.
4155
4156	Say "Terminals unused in grammar" instead of "Unused terminals".
4157	* NEWS (2.3a+): Update.
4158	* doc/bison.texinfo (Understanding): Update example output.
4159	* src/reduce.c (reduce_output): Implement.
4160	* data/xslt/xml2text.xsl: Implement.
4161	* data/xslt/xml2xhtml.xsl: Implement.
4162
41632007-11-18  Joel E. Denny  <jdenny@ces.clemson.edu>
4164
4165	Accept --report-file=FILE to override the default `.output' filename.
4166	* NEWS (2.3a+): Mention.
4167	* doc/bison.texinfo (Bison Options): Add an entry.
4168	* src/files.c (compute_output_file_names): Don't override
4169	spec_verbose_file if already set.
4170	* src/getargs.c (usage): Document --report-file.
4171	(REPORT_FILE_OPTION): New anonymous enum member.
4172	(long_options): Add entry for it.
4173	(getargs): Add case for it setting spec_verbose_file.
4174
4175	* build-aux/cross-options.pl: Don't record a short option just because
4176	there's an arg.
4177	* doc/.cvsignore: Add yacc.1.
4178
41792007-11-14  Akim Demaille  <akim@epita.fr>
4180
4181	* doc/yacc.1.in: New.
4182	* configure.ac, doc/Makefile.am: Adjust.
4183	* configure.ac (PACKAGE_COPYRIGHT_YEAR): New substitution, and new
4184	config.h symbol.
4185	Use AC_SUBST for assignments too.
4186	* src/getargs.c (version): Use PACKAGE_COPYRIGHT_YEAR.
4187
41882007-11-10  Joel E. Denny  <jdenny@ces.clemson.edu>
4189
4190	* src/gram.c: Remove comments that duplicate comments in gram.h.
4191
4192	When reporting useless rules and nonterminals, say "useless in grammar"
4193	instead of "useless", and say "useless in parser" instead of "never
4194	reduced".  Discussed starting at
4195	<http://lists.gnu.org/archive/html/bison-patches/2007-10/msg00033.html>.
4196	* NEWS (2.3a+): Mention this change.
4197	* data/xslt/xml2text.xsl: Update output text and expected input XML
4198	element names to match changes below.
4199	* data/xslt/xml2xhtml.xsl: Likewise.
4200	(xsl:template match="bison-xml-report"): Add missing entry in Table of
4201	Contents: "Rules useless in parser due to conflicts".
4202	* doc/bison.texinfo (Decl Summary): Reword a little.
4203	(Understanding): Update example output for changes below.
4204	* src/gram.c: (rule_useful_p): Rename to...
4205	(rule_useful_in_grammar_p): ... this.
4206	(rule_useless_p): Rename to...
4207	(rule_useless_in_grammar_p): ... this.
4208	(rule_never_reduced_p): Rename to...
4209	(rule_useless_in_parser_p): ... this.
4210	(grammar_rules_print): Update for renames.
4211	(grammar_rules_print_xml): Update for renames.
4212	(grammar_rules_never_reduced_report): Rename to...
4213	(grammar_rules_useless_report): ... this since it is used for either
4214	kind of useless rule.
4215	* src/gram.h: Reword comments and update function names in prototypes.
4216	* src/main.c (main): Say "rule useless in parser due to conflicts".
4217	* src/print-xml.c (print_rules_never_reduced): Rename to...
4218	(print_rules_useless_in_parser): ... this, and rename output XML
4219	element "rules-never-reduced" to "rules-useless-in-parser".
4220	(print_xml): Update for rename.
4221	* src/print.c (print_results): Say "Rules useless in parser due to
4222	conflicts".
4223	* src/reduce.c (reduce_grammar_tables): Say "rule useless in grammar".
4224	(nonterminals_reduce): Say "nonterminal useless in grammar".
4225	(reduce_output): Say "Nonterminals useless in grammar".
4226	Say "Rules useless in grammar".
4227	(reduce_xml): Rename output XML element "useless" to
4228	"useless-in-grammar".
4229	(reduce_print): Don't report the count of grammatically useless rules
4230	as "rules never reduced" just because %yacc is specified.
4231	In the correct report of this count, say nonterminal(s) and rule(s)
4232	"useless in grammar".
4233	* tests/conflicts.at (S/R in initial): Update expected output.
4234	(Defaulted Conflicted Reduction): Likewise.
4235	(Unreachable States After Conflict Resolution): Likewise.
4236	* tests/existing.at (GNU pic Grammar): Likewise.
4237	* tests/reduce.at (Useless Nonterminals): Likewise.
4238	(Useless Rules): Likewise.
4239	(Reduced Automaton): Likewise.
4240	(Underivable Rules): Likewise.
4241	(Empty Language): Likewise.
4242
42432007-11-09  Joel E. Denny  <jdenny@ces.clemson.edu>
4244
4245	* data/bison.m4 (b4_cat): Put a newline after the end delimiter of the
4246	here document and before the EOF so that BSD's implementation of Bourne
4247	shell doesn't parse the delimiter as part of the here document.
4248	* doc/.cvsignore: Add cross-options.texi.
4249	* src/getargs.c (usage): Add a blank line after the warning categories.
4250
42512007-11-08  Paolo Bonzini  <bonzini@gnu.org>
4252
4253	* data/lalr1.java (Lexer): Remove usage of b4_pure_if.
4254
42552007-11-05  Akim Demaille  <akim@epita.fr>
4256
4257	Remove Id: from bison.1.
4258	* doc/Makefile.am (remove_time_stamp): Include the sed invocation.
4259	(perl -0777 -pi -e 's/\.PP\nId): New.
4260	(.x.1): Use it to ignore the version control revision.
4261
42622007-11-05  Akim Demaille  <demaille@gostai.com>
4263
4264	* build-aux/Makefile.am: Ship cross-options.pl.
4265	* doc/Makefile.am: Always refer to cross-options.texi with
4266	$(srcdir).
4267	(MAINTAINERCLEANFILES): Add it.
4268
42692007-11-04  Akim Demaille  <demaille@gostai.com>
4270
4271	Generate the long/short option cross-table.
4272	* build-aux/cross-options.pl: New.
4273	* doc/Makefile.am (cross-options.texi): New.
4274	* doc/bison.texinfo: Use it.
4275
42762007-11-04  Akim Demaille  <demaille@gostai.com>
4277
4278	Generate bison.1 using help2man.
4279	* doc/common.x, doc/bison.x: New.
4280	* doc/Makefile.am (bison.1, .x.1): New.
4281	The code is taken from autoconf-2.61/man/Makefile.am.
4282	* configure.ac: Look for help2man.
4283
42842007-11-04  Akim Demaille  <demaille@gostai.com>
4285
4286	Complete --help.
4287	* src/getargs.c (usage): Document -W, make it clear that -d,
4288	-g and -x have optional arguments.
4289
42902007-11-04  Akim Demaille  <demaille@gostai.com>
4291
4292	Find sha1sum when named gsha1sum.
4293	* bootstrap (find_tool): New.
4294	($SHA1SUM): New.
4295
42962007-10-28  Joel E. Denny  <jdenny@ces.clemson.edu>
4297
4298	Deprecate %pure-parser and add `%define api.pure'.  Discussed starting
4299	at
4300	<http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00006.html>.
4301	* NEWS (2.3a+): Mention.
4302	* data/bison.m4 (b4_pure_if): Don't define it here.
4303	* data/c.m4 (b4_identification): Depend on individual skeletons to
4304	define b4_pure_flag, b4_push_flag, or b4_pull_flag if they use the
4305	values of the %define variables api.pure or api.push_pull.  Define
4306	YYPURE, YYPUSH, and YYPULL accordingly.
4307	* data/glr.c: Define b4_pure_if based on `%define api.pure' unless
4308	glr.cc has already defined b4_pure_flag.
4309	* data/push.c: Define b4_pure_if based on `%define api.pure'.
4310	Remove YYPUSH and YYPULL since they're back in b4_identification again.
4311	* data/yacc.c: Define b4_pure_if based on `%define api.pure'.
4312	* doc/bison.texinfo (Pure Decl): Update.
4313	(Push Decl): Update.
4314	(Decl Summary): Add api.pure to %define entry.
4315	In %pure-parser entry, say it's deprecated and reference %define.
4316	(Pure Calling): Update.
4317	(Error Reporting): Update.
4318	(C++ Scanner Interface): Update.
4319	(How Can I Reset the Parser): Update.
4320	(Table of Symbols): In %pure-parser entry, say it's deprecated and
4321	reference %define.
4322	* src/getargs.c (pure_parser): Remove global variable.
4323	* src/getargs.h (pure_parser): Remove extern.
4324	* src/output.c (prepare): Don't define pure_flag muscle.
4325	* src/parse-gram.y (prologue_declaration): Implement %pure-parser as a
4326	wrapper around `%define api.pure'.
4327	* tests/calc.at (Simple LALR Calculator): Update.
4328	(Simple GLR Calculator): Update.
4329	* tests/cxx-type.at (GLR: Resolve ambiguity, pure, no locations):
4330	Update.
4331	(GLR: Resolve ambiguity, pure, locations): Update.
4332	(GLR: Merge conflicting parses, pure, no locations): Update.
4333	(GLR: Merge conflicting parses, pure, locations): Update.
4334	* tests/glr-regression.at (Uninitialized location when reporting
4335	ambiguity): Update
4336	* tests/input.at (Unused %define api.pure): New test case.
4337	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Update definition for
4338	AT_PURE_IF and AT_PURE_AND_LOC_IF.
4339	* tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update.
4340
43412007-10-28  Joel E. Denny  <jdenny@ces.clemson.edu>
4342
4343	%define push_pull -> %define api.push_pull.  Discussed starting at
4344	<http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00005.html>.
4345	* data/push.c: Expect the new name.
4346	* data/yacc.c: Likewise.
4347	* doc/bison.texinfo (Push Decl): Update.
4348	(Decl Summary): Update %define entry.
4349	(Push Parser Function): Update.
4350	(Pull Parser Function): Update.
4351	(Parser Create Function): Update.
4352	(Parser Delete Function): Update.
4353	* tests/calc.at (Simple LALR Calculator): Update.
4354	* tests/input.at (%define enum variables): Update.
4355	* tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update.
4356	(Push Parsing: Multiple impure instances): Update.
4357	(Push Parsing: Unsupported Skeletons): Update.
4358	* tests/torture.at (Exploding the Stack Size with Alloca): Update.
4359	(Exploding the Stack Size with Malloc): Update.
4360
4361	* NEWS (2.3a+): Add an entry for the push parser, and clean up the
4362	other entries some.
4363
43642007-10-27  Joel E. Denny  <jdenny@ces.clemson.edu>
4365
4366	For the XML output's terminal element, rename @number to @token-number,
4367	and add @symbol-number.  In the nonterminal element, rename @number to
4368	@symbol-number.  Discussed starting at
4369	<http://lists.gnu.org/archive/html/bison-patches/2007-10/msg00040.html>.
4370	* data/xslt/xml2text.xsl (xsl:template match="terminal"): Update for
4371	renames.
4372	(xsl:template match="nonterminal"): Likewise.
4373	* data/xslt/xml2xhtml.xsl (xsl:template match="terminal"): Likewise.
4374	(xsl:template match="nonterminal"): Likewise.
4375	* src/print-xml.c (print_grammar): Implement.
4376
43772007-10-21  Joel E. Denny  <jdenny@ces.clemson.edu>
4378
4379	* data/xslt/xml2dot.xsl (xsl:template match="automaton/state"): After
4380	2007-10-11 change, the child elements here are items not rules.
4381	(xsl:template match="item"): New.
4382	(xsl:template match="rule"): Update for new reduced itemset.
4383	(xsl:template match="point"): Remove.
4384	(xsl:template match="empty"): For consistency with --graph, don't
4385	output "/* empty */".
4386	* data/xslt/xml2text.xsl (xsl:template match="terminal"): When invoking
4387	line-wrap, don't pass a negative value as first-line-length since this
4388	won't work with the following changes.
4389	(xsl:template name="line-wrap"): Simplify slightly.
4390	(xsl:template name="ws-search"): Eliminate recursion.
4391	* src/print_graph.c (print_core): Don't print a reduction's lookahead
4392	set next to an item whose dot is not at the end of the RHS even if it
4393	happens to be associated with the same rule.
4394
43952007-10-19  Joel E. Denny  <jdenny@ces.clemson.edu>
4396
4397	Add %define lr.keep_unreachable_states.
4398	* NEWS (2.3a+): Mention it in the entry for unreachable state removal.
4399	* doc/bison.texinfo (Decl Summary): Mention it in the %define entry.
4400	* src/main.c (main): Implement it.
4401	* tests/conflicts.at (Unreachable States After Conflict Resolution):
4402	Extend to test it, and fix a typo.
4403
44042007-10-19  Joel E. Denny  <jdenny@ces.clemson.edu>
4405
4406	* NEWS (2.3a+): Add entry for recent .output file lookahead set fix.
4407	* doc/bison.texinfo (Understanding): Remove a bogus lookahead set in
4408	the example .output text.
4409	* tests/regression.at (Extra lookahead sets in report): Improve wording
4410	of comments.
4411
44122007-10-17  Wojciech Polak  <polak@gnu.org>
4413
4414	* src/print-xml.c (print_grammar): Renamed
4415	<terminal> and <nonterminal> attributes:
4416	"type" to "number" and "symbol" to "name".
4417	* data/xslt/xml2text.xsl (xsl:template match="terminal"):
4418	Use new attribute names.
4419	(xsl:template match="nonterminal"): Likewise.
4420	* data/xslt/xml2xhtml.xsl: Likewise.
4421
44222007-10-17  Joel E. Denny  <jdenny@ces.clemson.edu>
4423
4424	* doc/bison.texinfo (Bison Options): Add entry for --print-datadir.
4425	(Option Cross Key): Likewise.
4426
4427	* src/print-xml.c (print_core): Don't print a reduction's lookahead set
4428	next to an item whose dot is not at the end of the RHS even if it
4429	happens to be associated with the same rule.
4430	* src/print.c (print_core): Likewise.
4431	* tests/conflicts.at (Unresolved SR Conflicts): Update output.
4432	(Resolved SR Conflicts): Update output.
4433	* tests/regression.at (Extra lookahead sets in report): New test case.
4434
44352007-10-11  Wojciech Polak  <polak@gnu.org>
4436
4437	* src/print-xml.c (print_core): Remove item set
4438	redundancy.
4439	* data/xslt/bison.xsl (bison:ruleNumber): New key.
4440	Improve processing time. Suggested by Joel E. Denny.
4441	* data/xslt/xml2dot.xsl (xsl:template name="escape"):
4442	Write xsl:param "required" attribute as comment.
4443	* data/xslt/xml2text.xsl (xsl:template match="item"): New.
4444	(xsl:template match="rule"): Support new reduced itemset.
4445	(xsl:template match="point"): Remove.
4446	* data/xslt/xml2xhtml.xsl: Likewise.
4447
44482007-10-09  Joel E. Denny  <jdenny@ces.clemson.edu>
4449
4450	* src/getargs.c (version): Update copyright year.
4451
44522007-10-09  Joel E. Denny  <jdenny@ces.clemson.edu>
4453
4454	Make xml2dot.xsl and --graph produce the same output.
4455	* data/xslt/xml2dot.xsl (xsl:template match="rule"): Use a `&#10;'
4456	instead of a `\n'.  That is, don't add escapes yet or they'll be doubly
4457	escaped later.
4458	(xsl:template name="output-node"): Use the new escape template instead
4459	of the string-replace template directly.
4460	(xsl:template name="output-edge"): Likewise.
4461	(xsl:template name="escape"): New, escapes backslashes and newlines in
4462	addition to quotation marks.
4463	* src/graphviz.c (start_graph, output_node, output_edge): Add
4464	whitespace to output for legibility.
4465
4466	Make xml2text.xsl and --report produce the same output, and remove the
4467	XML "conflicts" element since a conflict summary is easily extracted
4468	from the automaton.
4469	* data/xslt/bison.xsl: New.
4470	(xsl:template match="state" mode="bison:count-conflicts): New.
4471	* data/xslt/xml2text.xsl: Import bison.xsl.
4472	(xsl:template match="bison-xml-report"): Instead of styling the
4473	"conflicts" element, style the "automaton" element with mode
4474	"conflicts".  Unlike the former, the latter lists S/R and R/R
4475	conflicts for a state on the same line.
4476	(xsl:template match="conflicts"): Remove.
4477	(xsl:template match="conflict"): Remove.
4478	(xsl:template match="terminal"): Line-wrap the list of rules in which
4479	the terminal is used.
4480	(xsl:template match="nonterminal"): Likewise for nonterminals.
4481	(xsl:template match="automaton" mode="conflicts"): New.
4482	(xsl:template match="state" mode="conflicts"): New.
4483	(xsl:template name="line-wrap"): New.
4484	(xsl:template name="ws-search"): New.
4485	* data/xslt/xml2xhtml.xsl: Import bison.xsl.
4486	(xsl:template match="bison-xml-report"): Instead of styling the
4487	"conflicts" element, style the "automaton" element with mode
4488	"conflicts."
4489	(xsl:template match="conflicts"): Remove.
4490	(xsl:template match="conflict"): Remove.
4491	(xsl:template match="automaton" mode="conflicts"): New.
4492	(xsl:template match="state" mode="conflicts): New.
4493	* src/conflicts.c (conflicts_output_xml): Remove.
4494	* src/conflicts.h (conflicts_output_xml): Remove prototype.
4495	* src/print-xml.c (print_xml): Don't invoke conflicts_output_xml.
4496	* src/print.c (print_grammar): Consistently wrap at the 66th column so
4497	the corresponding XSLT is easier.  Also, never wrap between a word and
4498	the comma that follows it.
4499
45002007-10-08  Joel E. Denny  <jdenny@ces.clemson.edu>
4501
4502	Improve C++ namespace support.  Discussed starting at
4503	<http://lists.gnu.org/archive/html/help-bison/2007-09/msg00016.html>.
4504	* data/c++.m4: (b4_namespace_ref, b4_namespace_open,
4505	b4_namespace_close): New macros that interpret the %define variable
4506	"namespace" so its value can contain "::" to indicate nested
4507	namespaces.
4508	* data/glr.cc (b4_namespace): Don't define, and replace all uses with
4509	the above macros.
4510	* data/lalr1.cc (b4_namespace): Likewise.
4511	* data/location.cc (b4_namespace): Likewise.
4512	* doc/bison.texinfo (Decl Summary): Move `%define push_pull' entry
4513	inside a new table in the general %define entry.  Document `%define
4514	namespace' there as well.  Point the %name-prefix entry to it since it
4515	explains it more completely in the case of C++.
4516	(C++ Bison Interface): Mention `%define namespace' instead of
4517	%name-prefix.
4518	(Table of Symbols): Remove the `%define push_pull' entry.  The %define
4519	entry suffices.
4520	* tests/c++.at (Relative namespace references): New test case.
4521	(Absolute namespace references): New test case.
4522	(Syntactically invalid namespace references): New test case.
4523	* tests/input.at (C++ namespace reference errors): New test case.
4524
45252007-10-08  Joel E. Denny  <jdenny@ces.clemson.edu>
4526
4527	Add syncline support and location accessor to internal %define
4528	interfaces.
4529	* data/bison.m4 (b4_percent_define_get_loc): New.
4530	(b4_percent_define_get_syncline): New.
4531	(b4_percent_define_flag_if): Use b4_percent_define_get_loc.
4532	(b4_percent_define_default): Record defining location as line 1 rather
4533	than 0 for the sake of synchronizing #line's, and define
4534	b4_percent_define_syncline(VARIABLE).
4535	(b4_percent_define_check_values): Use b4_percent_define_get_loc.
4536	* src/muscle_tab.c (muscle_syncline_grow): New.
4537	(muscle_code_grow): Use muscle_syncline_grow.
4538	(muscle_percent_define_insert): Use muscle_percent_define_get_loc, and
4539	define b4_percent_define_syncline(VARIABLE).
4540	(muscle_percent_define_get_loc): New.
4541	(muscle_percent_define_get_syncline): New.
4542	(muscle_percent_define_flag_if): Use muscle_percent_define_get_loc, and
4543	remove some unused variables.
4544	(muscle_percent_define_default): Record defining location as line 1
4545	rather than 0 for the sake of synchronizing #line's, and define
4546	b4_percent_define_syncline(VARIABLE).
4547	(muscle_percent_define_check_values): Use
4548	muscle_percent_define_get_loc.
4549	* src/muscle_tab.h (muscle_percent_define_get_loc): Prototype.
4550	(muscle_percent_define_get_syncline): Prototype.
4551	* tests/skeletons.at (%define Boolean variables: invalid skeleton
4552	defaults): Update output for location change.
4553	(Complaining during macro argument expansion): Extend to test
4554	b4_percent_define_get_loc and b4_percent_define_get_syncline errors.
4555
45562007-10-07  Joel E. Denny  <jdenny@ces.clemson.edu>
4557
4558	Fix some error-reporting macro bugs.
4559	* data/bison.m4 (b4_cat): New.
4560	(b4_error, b4_error_at): Use b4_cat to send error directives directly
4561	to stdout so they don't become arguments to other macros.  Update
4562	comments and add examples.
4563	(b4_warn, b4_warn_at, b4_complain, b4_complain_at): Update comments and
4564	add examples.
4565	(b4_fatal, b4_fatal_at): Likewise, and invoke m4_exit(1) immediately
4566	after printing the error directive so that M4 doesn't report subsequent
4567	problems that are induced by this problem.
4568	* src/scan-skel.l: Recognize @` digraph outside of directive arguments
4569	instead of just in them.  Recognize @\n in both places.  Both expand to
4570	the empty string.  Needed by b4_cat.
4571	* tests/skeletons.at (Complaining during macro argument expansion):
4572	New test case.
4573	(Fatal errors make M4 exit immediately): New test case.
4574
45752007-10-04  Joel E. Denny  <jdenny@ces.clemson.edu>
4576
4577	Implement --print-datadir.
4578	* src/getargs.c (usage): Mention.
4579	(PRINT_DATADIR_OPTION): New anonymous enum member.
4580	(long_options): Add entry for it.
4581	(getargs): Add case for it calling compute_pkgdatadir.
4582	* src/output.c (output_skeleton): Encapsulate data directory
4583	computation from here...
4584	(prepare): ... and from here...
4585	(compute_pkgdatadir): ... into this new function.
4586	* src/output.h (compute_pkgdatadir): Prototype.
4587
45882007-09-29  Joel E. Denny  <jdenny@ces.clemson.edu>
4589
4590	* src/print-xml.c (escape_bufs): New static global variable
4591	replacing...
4592	(xml_escape_n): ... the static local variable buf here.
4593	(print_xml): Free memory for escape_bufs.
4594	* src/reduce.c (reduce_xml): XML-escape terminal symbol tags.
4595
45962007-09-25  Joel E. Denny  <jdenny@ces.clemson.edu>
4597
4598	Replace `%push-parser' and `%push-pull-parser' with
4599	`%define push_pull "push"' and `%define push_pull "both"'.
4600	`%define push_pull "pull"' is the default.
4601	* doc/bison.texinfo (Push Decl, Push Parser Function,
4602	Pull Parser Function, Parser Create Function, Parser Delete Function):
4603	Update declarations.
4604	(Decl Summary, Table of Symbols): Replace %push-parser and
4605	%push-pull-parser entries with a %define push_pull entry.
4606	* data/bison.m4 (b4_percent_define_check_values): New macro.
4607	(b4_pull_if, b4_push_if, b4_use_push_for_pull_if): Move these
4608	definitions...
4609	* data/c.m4 (b4_identification): ... and the YYPUSH and YYPULL cpp
4610	definitions...
4611	* data/push.c: ... to here and compute them from the value of the
4612	%define variable push_pull.
4613	* data/c-skel.m4: Instead of choosing the push.c skeleton for push
4614	parsing requests here...
4615	* data/yacc.c: ... hack this to switch to push.c any time
4616	b4_use_push_pull_flag or the %define variable push_pull is set.  This
4617	will go away when we mv push.c yacc.c.
4618	* data/c++-skel.m4, data/glr.c, data/java-skel.m4: Don't report that
4619	push parsing is not supported since unused %define variables are
4620	reported anyway.
4621	* src/getargs.c, src/getargs.h (pull_parser, push_parser): Remove.
4622	* src/muscle_tab.h (muscle_percent_define_check_values): Update
4623	comments for consistency with b4_percent_define_check_values.
4624	* src/output.c (prepare): Don't insert b4_pull_flag and b4_push_flag
4625	muscles.
4626	* src/parse-gram.y (PERCENT_PUSH_PARSER, PERCENT_PUSH_PULL_PARSER):
4627	Remove.
4628	(prologue_declaration): Remove %push-parser and %push-pull-parser
4629	rules.
4630	* src/scan-gram.l (%push-parser, %push-pull-parser): Remove rules.
4631	* tests/calc.at: Update declarations.
4632	* tests/input.at (%define enum variables): New test case.
4633	* tests/push.at (Push Parsing: Memory Leak for Early Deletion): Update
4634	declaration.
4635	(Push Parsing: Multiple impure instances): Update declaration.
4636	(Push Parsing: Unsupported Skeletons): New test case.
4637	* tests/torture.at (Exploding the Stack Size with Alloca): Update
4638	declaration.
4639	(Exploding the Stack Size with Malloc): Update declaration.
4640
46412007-09-24  Wojciech Polak  <polak@gnu.org>
4642
4643	Add XSLT transformations.
4644
4645	* data/xslt/xml2dot.xsl: Transform XML into DOT.
4646	* data/xslt/xml2text.xsl: Transform XML into plain text.
4647	* data/xslt/xml2xhtml.xsl: Transform XML into XHTML.
4648	* data/Makefile.am (xsltdir): New variable.
4649	(dist_xslt_DATA): Add xslt/*.xsl files.
4650
46512007-09-23  Paul Eggert  <eggert@cs.ucla.edu>
4652
4653	* src/conflicts.c (log_resolution): Fix indenting bugs I introduced.
4654	Problem reported by Wojciech Polak.
4655	* src/print-xml.c (xml_puts): Work even if LEVEL exceeds INT_MAX/2.
4656	(xml_printf): Undo change I made on 21 September; that is,
4657	indent 2 spaces, not 1.
4658
46592007-09-23  Joel E. Denny  <jdenny@ces.clemson.edu>
4660
4661	Pacify ./configure --enable-gcc-warnings.
4662	* src/print-xml.c, src/print-xml.h (xml_puts): Make third argument
4663	`char const *' instead of `char *'.
4664	* src/state.c (state_rule_lookahead_tokens_print_xml): Remove unused
4665	local variable `sep'.
4666
46672007-09-21  Paul Eggert  <eggert@cs.ucla.edu>
4668
4669	* src/gram.c (rule_rhs_print_xml): Now static, since it isn't used
4670	elsewhere.
4671	* src/print-xml.c: Prefer "const" after types; that's more consistent.
4672	(xml_printf): Indent just 1 space for level.
4673	(e_char, xlate_char): Remove.
4674	(xml_escape_string): Rewrite to avoid undefined behavior (used
4675	storage that was freed from the stack).
4676	(xml_escape_n): Don't bother checking for subscript error.
4677
46782007-09-21  Wojciech Polak  <polak@gnu.org>
4679
4680	Add Bison XML Automaton Report.
4681
4682	Add support for an -x option to generate an XML report.
4683	It is not documented yet.
4684	* src/print-xml.c: New file.
4685	* src/print-xml.h: Likewise.
4686	* lib/timevar.def (TV_XML): New var.
4687	* src/Makefile.am (bison_SOURCES): Add print-xml.c, print-xml.h.
4688	* src/conflicts.c: Include print-xml.h.
4689	(solved_conflicts_xml_obstack): New var.
4690	(log_resolution, conflicts_solve, conflicts_free):
4691	Add support for XML report.
4692	(conflicts_output_val): New function.
4693	* src/conflicts.h (conflicts_output_val): New decl.
4694	* src/files.c (spec_xml_file): New var.
4695	(compute_output_file_names, output_file_names_free): Add XML support.
4696	* src/files.h (spec_xml_file): New decl.
4697	* src/getargs.c (xml_flag): New var.
4698	(usage, short_options, long_options, getargs): Add XML support.
4699	* src/getargs.h (xml_flag): New decl.
4700	* src/gram.c: Include print-xml.h.
4701	(rule_lhs_print_xml, rule_rhs_print_xml):
4702	(grammar_rules_partial_print_xml, grammar_rules_print_xml):
4703	New functions.
4704	* src/gram.h: Declare external ones.
4705	* src/main.c: Include print-xml.h.
4706	(main): Add XML support.
4707	* src/reduce.c: Include print-xml.h.
4708	(reduce_xml): New function.
4709	* src/reduce.h: Declare it.
4710	* src/state.c: Include print-xml.h.
4711	(state_new): Add XML support.
4712	(state_rule_lookahead_tokens_print_xml): New function.
4713	* src/state.h: Declare it.
4714	(struct state): New member solved_conflicts_xml.
4715	* src/symtab.c (symbol_class_get_string): New function.
4716	* src/symtab.h: Declare it.
4717
47182007-09-21  Paul Eggert  <eggert@cs.ucla.edu>
4719
4720	* GNUmakefile: Switch to coreutils's version.
4721	* bootstrap: Likewise.
4722	* Makefile.cfg: Adjust to new GNUmakefile.
4723	* README-hacking: Likewise.
4724
4725	Import from gnulib:
4726
4727	2006-08-18  Paul Eggert  <eggert@cs.ucla.edu>
4728		    Bruno Haible  <bruno@clisp.org>
4729
4730	* m4/bison-i18n.m4 (BISON_I18N): Also handle the case where yacc exists
4731	and is a script that invokes bison. Tighten the code. Add comments.
4732
47332007-08-28  Joel E. Denny  <jdenny@ces.clemson.edu>
4734
4735	Spell "boolean" as "Boolean".  Reported by Akim Demaille.
4736	* data/bison.m4 (b4_percent_define_flag_if): Fix complaint.
4737	* doc/bison.texinfo (Decl Summary): Fix.
4738	* src/muscle_tab.c (muscle_percent_define_flag_if): Fix complaint.
4739	* tests/input.at (Boolean %define variables): Update output.
4740	* tests/skeletons.at (%define boolean variables: invalid skeleton
4741	defaults): Rename to...
4742	(%define Boolean variables: invalid skeleton defaults): ... this and
4743	update output.
4744
47452007-08-17  Joel E. Denny  <jdenny@ces.clemson.edu>
4746
4747	In impure push mode, don't allow more than one yypstate to be allocated
4748	since multiple impure parsers would corrupt yynerrs.
4749	* data/push.c (yypstate_allocated): New static global variable
4750	initialized to 0.
4751	(yypull_parse): If yypstate_new returns 0, don't report it as memory
4752	exhaustion if yypstate_allocated is 1, but still return 2.
4753	(yypstate_new): Invoke yyerror and return 0 if yypstate_allocated is
4754	already 1.  Otherwise, set it to 1.
4755	(yypstate_delete): Set it to 0.
4756	* tests/push.at (Push Parsing: Multiple impure instances): New test
4757	case.
4758
47592007-08-17  Bob Rossi  <bob@brasko.net>
4760
4761	* doc/bison.texinfo (Push Decl): Document the push parser.
4762	(Table of Symbols): Ditto.
4763	(Pure Decl): Ditto.
4764	(Decl Summary): Ditto.
4765	(Multiple Parsers, Push Parser Function, Pull Parser Function,
4766	Parser Create Function, Parser Delete Function):
4767	Add new push parser symbols.
4768	(Table of Symbols): Document push-parser, push-pull-parser,
4769	yypush_parse, yypull_parse, yypstate_new and yypstate_delete.
4770
47712007-08-15  Paul Eggert  <eggert@cs.ucla.edu>
4772
4773	Update to GPLv3.
4774	* doc/gpl-3.0.texi: New file.
4775	* doc/gpl.texi: Remove.
4776	* COPYING, GNUmakefile, HACKING, Makefile.am, Makefile.cfg:
4777	* Makefile.maint, NEWS, PACKAGING, README, README-alpha:
4778	* README-hacking, TODO, bootstrap, bootstrap.conf:
4779	* configure.ac, data/Makefile.am, data/README, data/bison.m4:
4780	* data/c++-skel.m4, data/c++.m4, data/c-skel.m4, data/c.m4:
4781	* data/glr.c, data/glr.cc, data/java-skel.m4, data/java.m4:
4782	* data/lalr1.cc, data/lalr1.java, data/location.cc:
4783	* data/push.c, data/yacc.c, data/m4sugar/m4sugar.m4:
4784	* djgpp/Makefile.maint, djgpp/README.in, djgpp/config.bat:
4785	* djgpp/config.sed, djgpp/config.site, djgpp/config_h.sed:
4786	* djgpp/djunpack.bat, djgpp/subpipe.c, djgpp/subpipe.h:
4787	* djgpp/testsuite.sed, doc/Makefile.am, doc/bison.texinfo:
4788	* doc/fdl.texi, doc/refcard.tex, etc/Makefile.am, etc/README:
4789	* etc/bench.pl.in, examples/Makefile.am, examples/extexi:
4790	* examples/calc++/Makefile.am, lib/Makefile.am, lib/abitset.c:
4791	* lib/abitset.h, lib/bbitset.h, lib/bitset.c, lib/bitset.h:
4792	* lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c:
4793	* lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h:
4794	* lib/ebitset.c, lib/ebitset.h, lib/get-errno.c:
4795	* lib/get-errno.h, lib/lbitset.c, lib/lbitset.h:
4796	* lib/libiberty.h, lib/main.c, lib/subpipe.c, lib/subpipe.h:
4797	* lib/timevar.c, lib/timevar.def, lib/timevar.h:
4798	* lib/vbitset.c, lib/vbitset.h, lib/yyerror.c:
4799	* m4/c-working.m4, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4:
4800	* m4/timevar.m4, src/LR0.c, src/LR0.h, src/Makefile.am:
4801	* src/assoc.c, src/assoc.h, src/closure.c, src/closure.h:
4802	* src/complain.c, src/complain.h, src/conflicts.c:
4803	* src/conflicts.h, src/derives.c, src/derives.h, src/files.c:
4804	* src/files.h, src/flex-scanner.h, src/getargs.c:
4805	* src/getargs.h, src/gram.c, src/gram.h, src/graphviz.c:
4806	* src/lalr.c, src/lalr.h, src/location.c, src/location.h:
4807	* src/main.c, src/muscle_tab.c, src/muscle_tab.h:
4808	* src/nullable.c, src/nullable.h, src/output.c, src/output.h:
4809	* src/parse-gram.c, src/parse-gram.h, src/parse-gram.y:
4810	* src/print.c, src/print.h, src/print_graph.c:
4811	* src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c:
4812	* src/reduce.h, src/relation.c, src/relation.h:
4813	* src/revision.h, src/scan-code.h, src/scan-code.l:
4814	* src/scan-gram.h, src/scan-gram.l, src/scan-skel.h:
4815	* src/scan-skel.l, src/state.c, src/state.h, src/symlist.c:
4816	* src/symlist.h, src/symtab.c, src/symtab.h, src/system.h:
4817	* src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h:
4818	* tests/Makefile.am, tests/actions.at, tests/c++.at:
4819	* tests/calc.at, tests/conflicts.at, tests/cxx-type.at:
4820	* tests/existing.at, tests/glr-regression.at:
4821	* tests/headers.at, tests/input.at, tests/java.at:
4822	* tests/local.at, tests/output.at, tests/push.at:
4823	* tests/reduce.at, tests/regression.at, tests/sets.at:
4824	* tests/skeletons.at, tests/synclines.at, tests/testsuite.at:
4825	* tests/torture.at:
4826	Update to GPLv3.
4827
48282007-08-11  Joel E. Denny  <jdenny@ces.clemson.edu>
4829
4830	Get rid of broken %no-parser, -n, and --no-parser implementation and
4831	documentation.
4832	* TODO: Don't mention them.
4833	* doc/bison.1: Likewise.
4834	* doc/bison.texinfo (Decl Summary): Likewise.
4835	(Bison Options): Likewise.
4836	(Option Cross Key): Likewise.
4837	* src/getargs.c (no_parser_flag): Remove global variable.
4838	(usage): Don't print description of -n and --no-parser.
4839	(long_options): Remove --no-parser entry here.
4840	(getargs): Remove -n case in the switch here.
4841	* src/getargs.h (no_parser_flag): Remove extern.
4842	* tests/regression.at (Web2c Actions): Remove comment that mentions
4843	--no-parser.
4844
48452007-08-11  Joel E. Denny  <jdenny@ces.clemson.edu>
4846
4847	* tests/push.at (Push Parsing: Memory Leak for Early Deletion): Do not
4848	name user variables starting with `yy'.  Just pass NULL instead of a
4849	dummy local &yylval to yypush_parse.
4850	* tests/torture.at (AT_DATA_STACK_TORTURE): Do not name user variables
4851	starting with `yy'.
4852
48532007-08-03  Joel E. Denny  <jdenny@ces.clemson.edu>
4854
4855	* data/yacc.c (yyexhaustedlab): Define it when YYERROR_VERBOSE is
4856	true since it's then always used regardless of whether yyoverflow is
4857	defined.  Reported by Christian Burger at
4858	<http://lists.gnu.org/archive/html/bug-bison/2007-07/msg00031.html>.
4859	* THANKS: Add Christian Burger.
4860
4861	* ChangeLog: For changes in doc/bison.texinfo, consistently reference
4862	node names: say "Decl Summary" not "Bison Declaration Summary".
4863
48642007-07-28  Joel E. Denny  <jdenny@ces.clemson.edu>
4865
4866	* src/muscle_tab.c (muscle_percent_define_flag_if): In order to
4867	determine whether this function has already complained about an invalid
4868	value for a %define boolean variable, don't check whether Bison has
4869	ever examined the value.  As written, the check was a tautology.
4870	Instead, record and check for this complaint using a separate muscle.
4871
48722007-07-27  Joel E. Denny  <jdenny@ces.clemson.edu>
4873
4874	Fix push parsing memory leak reported by Brandon Lucia at
4875	<http://lists.gnu.org/archive/html/bug-bison/2007-07/msg00032.html>.
4876	* THANKS: Add Brandon Lucia.
4877	* data/push.c (yypstate_delete): Free the stack if it was reallocated
4878	but the parse never completed and thus freed it.
4879	* tests/Makefile.am (TESTSUITE_AT): Add push.at.
4880	* tests/testsuite.at: Include push.at.
4881	* test/push.at: New.
4882	(Push Parsing: Memory Leak for Early Deletion): New test case.
4883
48842007-07-17  Joel E. Denny  <jdenny@ces.clemson.edu>
4885
4886	Improve handling of multiple S/R conflicts in the same state and of S/R
4887	conflicts involving multiple reductions.
4888	* src/conflicts.c (resolve_sr_conflict): Don't assign the error action
4889	set for a state here or Bison will abort if it is reassigned on a
4890	later conflicted reduction in the same state.
4891	Similarly, don't finalize and assign the solved conflicts report here
4892	or it will be lost if it is reassigned on a later conflicted reduction
4893	in the same state.
4894	(set_conflicts): Instead, assign them both here after all S/R conflicts
4895	in the state have been fully examined.
4896	* src/print.c (shift_set): Rename to...
4897	(no_reduce_set): ... this.
4898	(print_reductions): Update for rename, and add %nonassoc error action
4899	tokens to no_reduce_set so that, when printing the first remaining
4900	reduction on an error action token, the reduction is enclosed in
4901	brackets.
4902	(print_results): Update for rename.
4903	* tests/conflicts.at (Solved conflicts report for multiple reductions
4904	in a state): New test case.
4905	(%nonassoc error actions for multiple reductions in a state): New test
4906	case.
4907
4908	* src/main.c (main): Don't depend on C99 features.
4909
49102007-07-16  Joel E. Denny  <jdenny@ces.clemson.edu>
4911
4912	* build-aux/.cvsignore: Add compile.
4913	* lib/.cvsignore: Add charset.alias, ref-add.sed, ref-del.sed, and
4914	uniwidth.
4915
49162007-07-10  Joel E. Denny  <jdenny@ces.clemson.edu>
4917
4918	* bootstrap (slurp): Create target directories that don't exist.
4919	Specifically, we need lib/uniwidth/ because of recent Gnulib changes.
4920
49212007-07-09  Joel E. Denny  <jdenny@ces.clemson.edu>
4922
4923	* LR0.c (new_itemsets): Fix wording in comments: say item index rather
4924	than item number.
4925	* closure.c (closure): Likewise.
4926	* state.h (reductions): Comment sorting of rules.
4927	(state): Comment sorting of items.
4928
49292007-07-02  Joel E. Denny  <jdenny@ces.clemson.edu>
4930
4931	Fix C++ test cases after recent Gnulib changes.  Discussed starting at
4932	<http://lists.gnu.org/archive/html/bug-bison/2007-07/msg00000.html>.
4933	* examples/calc++/Makefile.am (DEFAULT_INCLUDES): Override Automake's
4934	definition in order to avoid Gnulib headers since we don't use config.h
4935	here.
4936	* tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): Use AT_DATA_GRAMMAR
4937	rather than AT_DATA so that config.h is included.
4938
49392007-07-01  Joel E. Denny  <jdenny@ces.clemson.edu>
4940
4941	* data/glr.c (yy_yypstack, yypstates, yypdumpstack): Use YYFPRINTF
4942	instead of fprintf.  Guard these functions with #if YYDEBUG instead of
4943	#ifdef YYDEBUG for consistency with all other uses of YYDEBUG in Bison
4944	and so that YYFPRINTF is guaranteed to be defined here.
4945
49462007-05-29  Joel E. Denny  <jdenny@ces.clemson.edu>
4947
4948	* src/muscle_tab.c (muscle_percent_define_invalid_value): Replace
4949	with...
4950	(muscle_percent_define_check_values): ... this more helpful function.
4951	Again, it's not used yet, but it will be.
4952	* src/muscle_tab.h: Likewise.
4953
4954	Improve some comments in parser table construction.
4955	* src/LR0.c (new_itemsets): Explain sorting of itemset and kernel_base.
4956	(generate_states): Don't mention ruleset, which is internal to closure.
4957	* src/closure.c (closure): Explain sorting of core and itemset, which
4958	is required for this function to behave correctly.
4959	* src/closure.h (closure): Mention sorting.
4960
49612007-05-28  Joel E. Denny  <jdenny@ces.clemson.edu>
4962
4963	* src/lalr.c (state_lookahead_tokens_count): For code readability,
4964	move the check for disabled transitions to an aver since conflict
4965	resolution hasn't happened yet.
4966
4967	* src/lalr.c (state_lookahead_tokens_count): Remove the check that
4968	labels a state as inconsistent just because it has error transitions.
4969	The original form of this check appeared in revision 1.1 of lalr.c,
4970	which was committed on 1991-12-21.  Now (at least), changing the
4971	consistency label on such a state appears to have no useful effect in
4972	any of the places it is examined, which I enumerate below.  The key
4973	point to understanding each item in this enumeration is that a state
4974	with an error transition is labelled consistent in the first place only
4975	if it has no rules, so the check cannot matter for states that have
4976	rules.  (1) Labelling a state as inconsistent will cause set_conflicts
4977	to try to identify its conflicts, and a state must have *rules* to have
4978	conflicts.  (2) Labelling a state as inconsistent will affect how
4979	action_row sets the default *rule* for the state.  (3) Labelling a
4980	state as inconsistent will cause build_relations to add lookback edges
4981	to *rules* in that state.
4982	* src/state.h (struct state): Word the comment for member consistent
4983	more carefully.
4984
49852007-05-27  Joel E. Denny  <jdenny@ces.clemson.edu>
4986
4987	Don't depend on C99 features.
4988	* src/conflicts.c (conflicts_update_state_numbers): Fix for-loop.
4989	* src/lalr.c (lalr_update_state_numbers): Fix for-loop.
4990	* src/reader.c (check_and_convert_grammar): Fix for-loop.
4991	* src/state.c (state_mark_reachable_states): Fix for-loop.
4992	(state_remove_unreachable_states): Fix for-loop.
4993
4994	Don't widen struct state with member reachable just to temporarily
4995	record reachability.  Instead, use a local bitset.
4996	* src/state.h (struct state): Remove member.
4997	* src/state.c (state_new): Don't initialize it.
4998	(state_mark_reachable_states): Rename to...
4999	(state_record_reachable_states): ... this, and use bitset.
5000	(state_remove_unreachable_states): Use bitset.
5001
50022007-05-26  Joel E. Denny  <jdenny@ces.clemson.edu>
5003
5004	* src/Makefile.am (yacc): Quote target action commands properly so
5005	that the yacc script isn't corrupt.  Reported by Hans Aberg at
5006	<http://lists.gnu.org/archive/html/bug-bison/2007-05/msg00003.html>.
5007
5008	* data/glr.c (yylval): As in yacc.c, don't extern in the header for
5009	the case of pure parsers.  Reported by Frans Englich at
5010	<http://lists.gnu.org/archive/html/help-bison/2007-05/msg00018.html>.
5011	* THANKS: Add Frans Englich.
5012
5013	* NEWS (2.3a+): In the %code entry, reference section `Bison
5014	Declaration Summary' from the manual now since the %code summary has
5015	moved there.
5016	* doc/bison.texinfo (Prologue Alternatives): Mention that directives
5017	in the rules section must be terminated by semicolons.
5018
50192007-05-20  Joel E. Denny  <jdenny@ces.clemson.edu>
5020
5021	Extend the front-end API for %define variables to more completely
5022	mirror the back-end.  This will be useful in the future.
5023	* data/bison.m4 (b4_percent_define_get, b4_percent_define_ifdef):
5024	Update comments to mention the new front-end counterparts of these
5025	macros.
5026	* src/muscle_tab.c (MUSCLE_COMMON_DECODE): New macro with common code
5027	for muscle_string_decode and muscle_location_decode.
5028	(muscle_string_decode): New static function.
5029	(muscle_location_decode): Use MUSCLE_COMMON_DECODE.
5030	(muscle_percent_define_get, muscle_percent_define_ifdef): New
5031	functions.
5032	(muscle_percent_define_flag_if): Use muscle_percent_define_ifdef and
5033	muscle_percent_define_get to mimic the b4_percent_define_flag_if
5034	implementation more closely.
5035	(muscle_percent_define_invalid_value): New function.
5036	* src/muscle_tab.h (muscle_percent_define_get,
5037	muscle_percent_define_ifdef, muscle_percent_define_invalid_value):
5038	Prototype.
5039
50402007-05-07  Joel E. Denny  <jdenny@ces.clemson.edu>
5041
5042	* NEWS (2.3a+): Mention yesterday's state-removal change.
5043	(2.3a): Remove the %language entry, which was added after 2.3a.
5044	* src/LR0.c, src/closure.c, src/closure.h, src/conflicts.c,
5045	src/conflicts.h, src/lalr.c, src/lalr.h, src/print.c,
5046	src/print_graph.c, src/state.c, src/state.h, tests/conflicts.at,
5047	tests/existing.at: Update copyright date.
5048
50492007-05-06  Joel E. Denny  <jdenny@ces.clemson.edu>
5050
5051	If conflict resolution makes states unreachable, remove those states,
5052	report rules that are then unused, and don't report conflicts in those
5053	states.
5054	* src/conflicts.c, src/conflicts.h (conflicts_update_state_numbers):
5055	New global function.
5056	* src/lalr.c, src/lalr.h (lalr_update_state_numbers): New global
5057	function.
5058	* src/main.c (main): After conflict resolution, remove the unreachable
5059	states and update all data structures that reference states by number.
5060	* src/state.c (state_new): Initialize each state's reachable member to
5061	false.
5062	(state_mark_reachable_states): New static function.
5063	(state_remove_unreachable_states): New global function.
5064	* src/state.h (struct state): Add member bool reachable.
5065	(state_remove_unreachable_states): Prototype.
5066	* tests/conflicts.at (Unreachable States After Conflict Resolution):
5067	New test case.
5068	* tests/existing.at (GNU pic Grammar): Update test case output now that
5069	an unused rule is discovered.
5070
50712007-05-06  Joel E. Denny  <jdenny@ces.clemson.edu>
5072
5073	Minor code cleanup in parser table construction.
5074	* src/LR0.c (new_itemsets): Use item_number_is_symbol_number.
5075	(new_itemsets, save_reductions): Update for rename to nitemset.
5076	* src/closure.c (nritemset): Rename to...
5077	(nitemset): ... this since the "r" appears to meaningless and isn't
5078	used in the comments.
5079	(closure): Update for rename.
5080	* src/closure.h (nritemset): Update extern to...
5081	(nitemset): ... this.
5082	* src/lalr.c (LA): Fix a typo in comments.
5083	* src/print.c (print_core): Update for rename to nitemset.
5084	* src/print_graph.c (print_graph): Likewise.
5085	* src/state.h: Fix some typos in header comments.
5086
50872007-04-04  Paul Eggert  <eggert@cs.ucla.edu>
5088
5089	* THANKS: Use ASCII for Sebastien Fricker's name.  Bison source
5090	still sticks to ASCII.  Sorry!
5091
5092	* README-hacking: New file, taken mostly from coreutils, with changes
5093	for Bison.  Contains much of the contents of:
5094	* README-cvs: Remove.
5095	* bootstrap: Sync from gnulib.
5096	* build-aux/.cvsignore: Remove *.t, mkinstalldirs.
5097	* lib/.cvsignore: Add wchar.h, wctype.h.  Remove exit.h.
5098
50992007-03-10  Joel E. Denny  <jdenny@ces.clemson.edu>
5100
5101	* doc/bison.texinfo (Destructor Decl): Fix typo reported by Sebastian
5102	Setzer.
5103	(Java Differences): Fix some typos.
5104	* THANKS: Add Sebastian Setzer.
5105
51062007-03-07  Paolo Bonzini  <bonzini@gnu.org>
5107
5108	* data/java.m4 (b4_single_class_if): Remove.
5109	(b4_abstract_if): Look at "%define abstract".
5110	(b4_lexer_if): New.
5111	(b4_union_name): Rename...
5112	(b4_yystype): ... to this.  Map to "%define stype".
5113	(b4_rhs_value, b4_parse_param_decl, b4_lex_param_decl,
5114	b4_maybe_throws): Fix quoting.
5115	(b4_lex_param_call): Move below to keep b4_*_param_decl close.
5116	* data/lalr1.java (Lexer interface): Always define.
5117	(Lexer interface within parser class): Remove.
5118	(YYLexer class): New, used when "%code lexer" is present.
5119	(constructor): When "%code lexer" is used, pass %lex-param
5120	to the lexer constructor.
5121	(yylex, yyparse): Remove %lex-param from method invocations
5122	(YYStack, yyaction, yyparse): Rename b4_union_name to b4_yystype.
5123
5124	* doc/bison.texinfo (Java Bison Interface): Mention "%define
5125	abstract".  Rename "%define union_name" to "%define stype".
5126	Rename method names according to previous patch.
5127	(Java Scanner Interface): Describe "%code lexer" instead of
5128	"%pure-parser" and "%define single_class".
5129	(Java Differences): Mention "%code lexer".
5130
5131	* tests/java.at (_AT_DATA_JAVA_CALC_Y): Remove final argument.
5132	Include scanner here, using macros from tests/local.at.
5133	(AT_DATA_CALC_Y): Remove final argument.
5134	(_AT_CHECK_JAVA_CALC): Likewise.
5135	(AT_CHECK_JAVA_CALC): Likewise.  Test all four combinations
5136	of %locations and %error-verbose.
5137	(main): Test with and without %lex-param.
5138	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Push AT_LEXPARAM_IF.
5139	(AT_BISON_OPTION_POPDEFS): Pop it.
5140
51412007-03-07  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
5142
5143	DJGPP spefic issue.  Inhibit the use of disallowed characters for
5144	file name genertion on Win98, WinXP, etc.  These are |<>":?*\
5145	and concern testsuite case 46.
5146	* Makefile.am: djgpp/testsuite.sed added to EXTRA_DIST
5147	* djgpp/testsuite.sed: Inhibit the use of disallowed characters.
5148	* djgpp/config.bat: Inhibit the use of disallowed characters.
5149
51502007-03-02  Joel E. Denny  <jdenny@ces.clemson.edu>
5151
5152	Miscellaneous %define and %code cleanup.
5153	* data/bison.m4 (b4_percent_define_flag_if): Correct comments on how
5154	values are interpreted.
5155	* doc/bison.texinfo (Decl Summary): Clean up and extend %define
5156	documentation a little more.
5157	* src/muscle_tab.c (MUSCLE_USER_NAME_CONVERT,
5158	muscle_percent_define_insert, muscle_percent_code_grow): New
5159	functions/macros.
5160	* src/muscle_tab.h (muscle_percent_define_insert,
5161	muscle_percent_code_grow): Prototype.
5162	* src/parse-gram.y (prologue_declaration): Use
5163	muscle_percent_define_insert and muscle_percent_code_grow when parsing
5164	%define and %code directives.
5165
5166	Make it easy to share %define boolean variables between the front-end
5167	and back-end.  Though not used yet, this will be useful in the future.
5168	* data/bison.m4 (b4_check_user_names): Rewrite comments to talk about
5169	Bison uses of names rather than just skeleton uses of names.
5170	(b4_percent_define_get, b4_percent_define_ifdef): Rename
5171	b4_percent_define_skeleton_variables(VARIABLE) to
5172	b4_percent_define_bison_variables(VARIABLE).
5173	(b4_percent_code_get, b4_percent_code_ifdef): Rename
5174	b4_percent_code_skeleton_qualifiers(QUALIFIER) to
5175	b4_percent_code_bison_qualifiers(QUALIFIER).
5176	(b4_check_user_names_wrap): Update for renames.
5177	* src/muscle_tab.c, src/muscle_tab.h (muscle_percent_define_flag_if,
5178	muscle_percent_define_default): New functions mimicking
5179	b4_percent_define_flag_if and b4_percent_define_default.
5180
5181	For %define variables, report locations for invalid values and
5182	redefinitions.
5183	* data/bison.m4 (b4_percent_define_flag_if): Read
5184	b4_percent_define_loc(VARIABLE) to report the location of an invalid
5185	value for VARIABLE.
5186	(b4_percent_define_default): Save a special location in
5187	b4_percent_define_loc(VARIABLE) in case the default value for VARIABLE
5188	must later be reported as invalid.
5189	* src/muscle_tab.c (muscle_location_grow, muscle_location_decode): New
5190	functions.
5191	(muscle_percent_define_insert): Record the location of VARIABLE in
5192	muscle percent_define_loc(VARIABLE), and use it to report the previous
5193	location for a redefinition.
5194	(muscle_percent_define_flag_if): Update like b4_percent_define_flag_if.
5195	(muscle_percent_define_default): Update like b4_percent_define_default.
5196	(muscle_grow_user_name_list): Rename to...
5197	(muscle_user_name_list_grow): ... this for consistency and use
5198	muscle_location_grow.
5199	* src/muscle_tab.h (muscle_location_grow): Prototype.
5200	* tests/input.at (%define errors): Update expected output.
5201	* tests/skeletons.at (%define boolean variables: invalid skeleton
5202	defaults): New test case.
5203
52042007-02-28  Joel E. Denny  <jdenny@ces.clemson.edu>
5205
5206	* src/print.c (lookahead_set, state_default_rule): Remove.
5207	(print_reductions): Replace state_default_rule invocation with
5208	equivalent use of yydefact, which was computed in token_actions in
5209	tables.c.
5210	(print_results): Don't allocate lookahead_set.
5211
52122007-02-27  Paolo Bonzini  <bonzini@gnu.org>
5213
5214	* data/lalr1.java: Prefix all private members with yy.
5215
52162007-02-24  Joel E. Denny  <jdenny@ces.clemson.edu>
5217
5218	Use YYFPRINTF instead of fprintf where appropriate.  Reported by
5219	Sebastien Fricker at
5220	<http://lists.gnu.org/archive/html/bug-bison/2007-02/msg00035.html>.
5221	* THANKS: Add Sebastien Fricker.
5222	* data/glr.c, data/push.c, data/yacc.c (yy_reduce_print): Implement.
5223	* doc/bison.texinfo (Tracing): Make it clearer that YYFPRINTF must
5224	accept a variable number of arguments.
5225
52262007-02-19  Joel E. Denny  <jdenny@ces.clemson.edu>
5227
5228	* bootstrap: Remove occurrences of .#bootmp from lib/Makefile.
5229
52302007-02-13  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
5231
5232	* djgpp/config.bat: Adjustments concerning the use of autoconf 2.61.
5233	* djgpp/config.sed: Adjustments concerning the use of autoconf 2.61.
5234	* djgpp/config.site: Adjustments concerning the use of autoconf 2.61.
5235
52362007-02-11  Paul Eggert  <eggert@cs.ucla.edu>
5237
5238	Undo my 2007-02-07 change, switching back to the c-strcase module
5239	introduced in the 2007-02-03 change.  Bruno Haible reported that
5240	the 2007-02-07 change would be dangerous in Turkish if we add a
5241	language whose name contains "i", since "i" is not lowercase "I"
5242	in Turkish.
5243	* bootstrap.conf (gnulib_modules): Add c-strcase.  Remove strcase.
5244	* lib/.cvsignore: Add c-ctype.c, c-ctype.h, c-strcase.h,
5245	c-strcasecomp.c, c-strncasecmp.c.  Remove strcasecmp.c, strncasecmp.c.
5246	* m4/.cvsignore: Remove strcase.m4.
5247	* src/getargs.c: Revert 2007-02-07 change, as follows.
5248	Include c-strcase.h.
5249	(language_argmatch): Use c_strcasecmp rather than strcasecmp.
5250
52512007-02-11  Bruno Haible  <bruno@clisp.org>
5252
5253	Enable the Java related testsuite tests when the only Java compiler
5254	found is a gcj < 4.3.  Discussed at
5255	<http://lists.gnu.org/archive/html/bug-bison/2007-02/msg00016.html>.
5256	* configure.ac (gt_JAVACOMP): Don't specify a target_version.
5257
52582007-02-11  Joel E. Denny  <jdenny@ces.clemson.edu>
5259
5260	* data/Makefile.am: Update copyright date.
5261	* data/push.c (yypull_parse): Report memory exhaustion and return 2 if
5262	yypstate_new returns NULL.
5263	(yypstate_new): Return NULL if malloc does.
5264	* src/reader.c (packgram): Move translation of rule actions from the
5265	beginning of packgram to...
5266	(check_and_convert_grammar): ... here right before packgram is invoked
5267	so it's easier to write more complete comments, and remove redundant
5268	code.
5269
52702007-02-10  Joel E. Denny  <jdenny@ces.clemson.edu>
5271
5272	As in semantic actions, make @$ in %initial-action, %destructor, and
5273	%printer imply %locations.
5274	* src/scan-code.l (SC_SYMBOL_ACTION): Set locations_flag = true when
5275	scanning @$.
5276	* tests/actions.at (AT_CHECK_ACTION_LOCATIONS): New macro supporting...
5277	(@$ in %initial-action implies %locations,
5278	@$ in %destructor implies %locations,
5279	@$ in %printer implies %locations): ... these new test cases.
5280
52812007-02-07  Paul Eggert  <eggert@cs.ucla.edu>
5282
5283	Undo most of the 2007-02-03 change, switching to the strcase module
5284	now that gnulib strcase has been fixed.
5285	* bootstrap.conf (gnulib_modules): Remove c-strcase.  Add strcase.
5286	* lib/.cvsignore: Remove c-ctype.c, c-ctype.h, c-strcase.h,
5287	c-strcasecomp.c, c-strncasecmp.c.  Add strcasecmp.c, strncasecmp.c
5288	* m4/.cvsignore: Add strcase.m4.
5289	* src/getargs.c: Revert 2007-02-03 change, as follows.
5290	Don't include c-strcase.h.
5291	(language_argmatch): Use strcasecmp rather than c_strcasecmp.
5292	strcasecmp has "unspecified behavior" outside the POSIX locale,
5293	but it works fine in practice if at least one argument is ASCII,
5294	as is the case in Bison.
5295
52962007-02-07  Paolo Bonzini  <bonzini@gnu.org>
5297
5298	* tests/java.at: Skip tests if only one of javac/java is present.
5299	Reported by Joel E. Denny.
5300	* tests/atlocal.in: Adjust copyright years.
5301
53022007-02-05  Paolo Bonzini  <bonzini@gnu.org>
5303
5304	* data/lalr1.java (Stack): Work around old verifiers that disallow
5305	access to the private fields of an inner class, from the outer class.
5306	We can make Stack's fields public because user code doesn't have access
5307	to the instance of Stack used by parse().  Reported by Paul Eggert.
5308
53092007-02-03  Paul Eggert  <eggert@cs.ucla.edu>
5310
5311	* .cvsignore: Add javacomp.sh, javaexec.sh.  Is this really
5312	the right spot for these files?
5313	* bootstrap.conf (gnulib_modules): Add c-strcase.
5314	* lib/.cvsignore: Add c-ctype.c c-ctype.h, c-strcasecomp.c,
5315	c-strncasecmp.c.
5316	* src/getargs.c: Include c-strcase.h.
5317	(language_argmatch): Use c_strcasecmp rather than strcasecmp,
5318	to avoid unspecified behavior.
5319
53202007-02-01  Joel E. Denny  <jdenny@ces.clemson.edu>
5321
5322	* doc/bison.texinfo (Decl Summary): Correct typo.
5323
53242007-01-30  Paolo Bonzini  <bonzini@gnu.org>
5325
5326	* data/bison.m4 (b4_percent_define_flag_if): Don't treat 0 as false.
5327	Complain if the value does not match empty, "true" or "false".
5328	* data/c++.m4: Adjust default definitions of %define variables.
5329	* data/java.m4: Adjust default definitions of %define variables.
5330	* doc/bison.texinfo (Decl Summary): Adjust the %define entry according
5331	to above behavior.
5332	* tests/input.at (Boolean %define variables): Test new behavior.
5333
53342007-01-29  Paolo Bonzini  <bonzini@gnu.org>
5335
5336	* NEWS: Mention java.
5337	* TODO: Remove things that are done.
5338	* bootstrap.conf: Add javacomp-script and javaexec-script.
5339	* configure.ac: Invoke gt_JAVACOMP and gt_JAVAEXEC.
5340
5341	* data/Makefile.am: Add new files.
5342	* data/java-skel.m4: New.
5343	* data/java.m4: New.
5344	* data/lalr1.java: New.
5345
5346	* doc/bison.texinfo: Put "A Complete C++ Example" under
5347	C++ Parsers.  Add Java Parsers.  Put C++ Parsers and Java Parsers
5348	under Other Languages.
5349
5350	* src/getargs.c (valid_languages): Add Java.
5351	* src/getargs.h (struct bison_language): Update size of string fields.
5352
5353	* tests/Makefile.am: Add java.at.
5354	* tests/atlocal.in: Add CONF_JAVA and CONF_JAVAC.
5355	* tests/java.at: New.
5356	* tests/testsuite.at: Include it.
5357
53582007-01-28  Joel E. Denny  <jdenny@ces.clemson.edu>
5359
5360	Clean up.
5361	* src/scan-skel.l (at_directive_perform): Add at_directive_argc and
5362	at_directive_argv arguments so these no longer have to be global
5363	variables.  Also, update the implementation for the following changes.
5364	(fail_for_at_directive_too_many_args,
5365	fail_for_at_directive_too_few_args): Add at_directive_name argument.
5366	(at_directive_name): Remove as at_directive_argv[0] will be used for
5367	this now.
5368	(AT_DIRECTIVE_ARGC_MAX): Increment to make space in at_directive_argv
5369	for the directive name.
5370	(at_directive_argc, at_directive_argv): Make these local within
5371	skel_lex instead of global.
5372	(INITIAL): Update directive start action for above changes.
5373	(SC_AT_DIRECTIVE_ARG): Rename to...
5374	(SC_AT_DIRECTIVE_ARGS): ... this, and update for above changes.
5375	(SC_AT_DIRECTIVE_SKIP_WS): Update.
5376	(scan_skel): Move yylex_destroy to...
5377	(skel_scanner_free): ... here.
5378	* tests/skeletons.at (installed skeleton file name): Rename to...
5379	(installed skeleton file names): ... this.
5380
53812007-01-27  Joel E. Denny  <jdenny@ces.clemson.edu>
5382
5383	* ChangeLog: For changes in doc/bison.texinfo, consistently reference
5384	node names: say "Table of Symbols" not "Bison Symbols", and say "Decl
5385	Summary" not "Directives".
5386	* doc/bison.texinfo (Decl Summary, Calc++ Parser): Cross-reference the
5387	%code entry in "Decl Summary" rather than the one in "Table of Symbols"
5388	since the former is now the more complete one.
5389	(Prologue Alternatives): Likewise and do the same for %defines.
5390	(Table of Symbols): Add summary of %code, add summary of %define, and
5391	move full %code documentation to...
5392	(Decl Summary): ... here for consistency with other entries in these
5393	sections.
5394	Move %define entry in order to keep this list alphabetized.
5395	Reword %define entry a little to put less emphasis on the skeleton
5396	concept, which most users shouldn't have to think about.
5397
53982007-01-26  Paul Eggert  <eggert@cs.ucla.edu>
5399
5400	Adjust to recent gnulib changes.
5401	* lib/.cvsignore: Remove stpcpy.h, strndup.h, strnlen.h.
5402	Add string.h, string_.h, unistd_.h, wchar_.h.
5403	* m4/.cvsignore: Add gnulib-common.m4, string_h.m4, wchar.m4.
5404	* src/system.h: Don't include <stpcpy.h>; this is now done by
5405	<string.h>.
5406
54072007-01-23  Paolo Bonzini  <bonzini@gnu.org>
5408
5409	Simplify implementation of unqualified %code, implement macros for
5410	uniform treatment of boolean %define flags.  Document %define.
5411	* data/bison.m4 (b4_percent_define_ifdef, b4_percent_define_flag_if,
5412	b4_percent_code_ifdef): New.
5413	(b4_percent_code_get): Map unqualified %code to b4_percent_code().
5414	* data/c++.m4: Define default value for global_tokens_and_yystype.
5415	* data/glr.cc: Likewise.
5416	* data/location.cc: Use b4_percent_define_flag_if.
5417
5418	* doc/bison.texinfo (Decl Summary): Document %define.
5419
5420	* src/parse-gram.y (Unqualified %code): Change muscle name to
5421	b4_percent_code().
5422	(content.opt): Default to empty.
5423
54242007-01-17  Joel E. Denny  <jdenny@ces.clemson.edu>
5425
5426	Implement support for relative and absolute skeleton file names.
5427	Discussed starting at
5428	<http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00071.html>.
5429	* doc/bison.texinfo (Decl Summary): Document in %skeleton entry.
5430	(Bison Options): Document in --skeleton entry.
5431	* src/output.c (output_skeleton): Use strncpy rather than strcpy since
5432	full_skeleton can't necessarily hold all of pkgdatadir.
5433	If the specified skeleton file name contains a `/', don't prepend
5434	pkgdatadir.
5435	* src/parse-gram.y (prologue_declaration): If the specified skeleton
5436	file name contains a `/', prepend the grammar file directory.
5437	* tests/Makefile.am (TESTSUITE_AT): Add skeletons.at.
5438	* skeletons.at: New file.
5439	(relative skeleton file names): New test case.
5440	(installed skeleton file names): New test case.
5441	* tests/testsuite.at: Include skeletons.at.
5442
5443	* bootstrap: Update copyright to 2007.
5444
54452007-01-17  Paolo Bonzini  <bonzini@gnu.org>
5446
5447	* bootstrap: Remove occurrences of .#bootmp from the files.
5448
54492007-01-17  Akim Demaille  <akim@epita.fr>
5450
5451	* doc/bison.texinfo (Calc++ Parser): Don't try to alias
5452	nonterminals.
5453	Use per-type %printer.
5454
54552007-01-17  Joel E. Denny  <jdenny@ces.clemson.edu>
5456
5457	* NEWS, data/c++-skel.m4, data/c++.m4, data/c-skel.m4, data/c.m4,
5458	data/glr.c, data/glr.cc, data/lalr1.cc, data/location.cc,
5459	djgpp/config.site, src/files.c, src/files.h, src/main.c,
5460	src/muscle_tab.c, src/muscle_tab.h, src/parse-gram.y, src/reader.h,
5461	src/scan-skel.h, src/scan-skel.l, tests/actions.at, tests/calc.at,
5462	tests/glr-regression.at, tests/input.at, tests/local.at,
5463	tests/output.at, tests/torture.at: Update copyright to 2007.
5464
54652007-01-16  Akim Demaille  <akim@epita.fr>
5466
5467	* doc/bison.texinfo (Calc++ Parsing Driver): Let "parse" return an
5468	error code.
5469	(Calc++ Scanner): Exit with failure if we can't open the input
5470	file.
5471	Accept "-" standing for stdin.
5472	(Calc++ Top Level): Print the result only if the parsing was
5473	successful.
5474
54752007-01-16  Akim Demaille  <akim@epita.fr>
5476
5477	* data/lalr1.cc (yy_reduce_print_): Add a missing end-of-line.
5478
54792007-01-15  Paolo Bonzini  <bonzini@gnu.org>
5480	and Joel E. Denny  <jdenny@ces.clemson.edu>
5481
5482	Clean up %define and %code implementation in M4 some.  Most
5483	importantly, rename all related macros to be in the b4_percent_define
5484	and b4_percent_code namespaces.  Also, complete support for `.' in
5485	%define variable names and %code qualifiers.
5486	* data/bison.m4 (b4_check_user_names): Check for special
5487	"SKELETON-NAMESPACE(name)" macros instead of using two nested
5488	m4_foreach loops.
5489	(b4_get_percent_define, b4_get_percent_code): Rename to...
5490	(b4_percent_define_get, b4_percent_code_get): ... these.
5491	Extend documentation with examples.
5492	For SKELETON-NAMESPACE (as documented for b4_check_user_names), use
5493	b4_percent_define_skeleton_variables and
5494	b4_percent_code_skeleton_qualifiers.
5495	Expect any value for the %define variable `foo' to be stored in the
5496	macro named `b4_percent_define(foo)'; expect any %code blocks for the
5497	qualifier `foo' to be stored in a macro named `b4_percent_code(foo)';
5498	expect any unqualified %code blocks to be stored in a macro named
5499	`b4_percent_code_unqualified'.
5500	Use m4_indir so that %define variable names and %code qualifiers can
5501	contain `.', which is allowed by the grammar parser.
5502	(b4_percent_define_default): New macro to set a default value for a
5503	%define variable.
5504	(m4_wrap): Update wrapped code, and fix some underquoting.
5505	(b4_check_user_names_wrap): Update and define outside the m4_wrap.
5506	Expect grammar uses of %define variables and %code qualifiers to be
5507	defined in b4_percent_define_user_variables and
5508	b4_percent_code_user_qualifiers.
5509	* data/c++.m4: Use b4_percent_define_default rather than
5510	m4_define_default.  Fix some underquoting.  Skeleton usage of %define
5511	variable define_location_comparison now implies skeleton usage of
5512	%define variable filename_type.
5513	* data/glr.c, data/glr.cc, data/lalr1.cc, data/location.cc,
5514	data/push.c, data/yacc.c: Update macro names.
5515	* src/parse-gram.y (prologue_declaration, grammar_declaration): Update
5516	muscle names.
5517
55182007-01-14  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
5519
5520	DJGPP specific issues.
5521
5522	* djgpp/config.site: Set ac_cv_path_mkdir to a sane DJGPP specific
5523	default.  Set gl_cv_absolute_wctype_h to a sane DJGPP specific default.
5524
55252007-01-09  Joel E. Denny  <jdenny@ces.clemson.edu>
5526
5527	* tests/glr-regression.at: Use AT_PARSER_CHECK rather than AT_CHECK to
5528	run parsers in all tests so that Valgrind is invoked during
5529	maintainer-check-valgrind.
5530	(Duplicate representation of merged trees): Free all semantic values.
5531	(Duplicated user destructor for lookahead): Likewise.
5532
55332007-01-09  Joel E. Denny  <jdenny@ces.clemson.edu>
5534
5535	* tests/local.at (AT_PARSER_CHECK): Add a PRE argument to specify a
5536	command-line prefix.
5537	* tests/torture.at (Exploding the Stack Size with Alloca): Stderr is
5538	ignored, so use that PRE to set --log-fd=1 in VALGRIND_OPTS so we don't
5539	miss Valgrind messages.
5540	(Exploding the Stack Size with Malloc): Likewise.
5541
55422007-01-09  Joel E. Denny  <jdenny@ces.clemson.edu>
5543
5544	Ignore YYSTACK_USE_ALLOCA for push parsers since the stacks can't be
5545	locals.  Reported by Juan Manuel Guerrero at
5546	<http://lists.gnu.org/archive/html/bug-bison/2007-01/msg00000.html>.
5547	* data/push.c: Enclose the #ifdef YYSTACK_USE_ALLOCA in b4_push_if.
5548	Fix some indentation also.
5549	* tests/torture.at (Exploding the Stack Size with Alloca): Add comment
5550	explaining this issue.
5551
55522007-01-09  Paolo Bonzini  <bonzini@gnu.org>
5553	and Joel E. Denny  <jdenny@ces.clemson.edu>
5554
5555	Simplify union and prologue handling, and escape union and lex/parse
5556	params with digraphs.
5557	* data/bison.m4 (b4_pre_prologue, b4_post_prologue): Set their default
5558	values to the empty string since these are no longer guaranteed
5559	initialized by the front-end.
5560	* data/glr.c, data/glr.cc, data/lalr1.cc, data/push.c, data/yacc.c: Add
5561	braces around b4_user_stype since this is no longer done by the
5562	front-end.
5563	* src/files.c, src/files.h (pre_prologue_obstack,
5564	post_prologue_obstack): Remove.
5565	* src/muscle_tab.c (muscle_pair_list_grow): Don't duplicate header
5566	comments here.  Use MUSCLE_OBSTACK_SGROW so that values are escaped
5567	with digraphs.  This fixes lex params and parse params.
5568	* src/muscle_tab.h (muscle_pair_list_grow): Update comments.
5569	* src/output.c (prepare): Remove muscle insertion of the prologues.
5570	(output): Remove freeing of pre_prologue_obstack and
5571	post_prologue_obstack.
5572	* src/parse-gram.y (prologue_declaration): Use muscle_code_grow rather
5573	than prologue_augment for prologue parsing so you don't need prologue
5574	obstacks.
5575	(grammar_declaration): For %union RHS, use `braceless' instead of
5576	"{...}" so that braces are already stripped and code is escaped with
5577	digraphs.
5578	* src/reader.c (prologue_augment): Remove.
5579	(reader): Remove initialization of pre_prologue_obstack and
5580	post_prologue_obstack.
5581	* src/reader.h (prologue_augment): Remove.
5582
5583	* data/c.m4: Remove stray parenthesis.
5584
55852007-01-08  Joel E. Denny  <jdenny@ces.clemson.edu>
5586
5587	Remove quotes from variables names in %define directives and from
5588	qualifiers in %code directives, and restrict the characters that are
5589	allowed in them to M4-friendly ones.  For %define, continue to support
5590	the quoted form as a deprecated feature.  Discussed starting at
5591	<http://lists.gnu.org/archive/html/bison-patches/2007-01/msg00023.html>.
5592	* NEWS (2.3a+): Add entry for the change to %define.  Update entry for
5593	%code.
5594	* doc/bison.texinfo (Prologue Alternatives): Update.
5595	(Decl Summary): In %defines entry, update mention of `%code requires'
5596	and `%code provides'.
5597	(C++ Location Values): Update %define uses.
5598	(Calc++ Parser Interface): Likewise.
5599	(Calc++ Parser): Likewise, and update `%code requires' uses.
5600	(Table of Symbols): Update %code documentation.
5601	* src/parse-gram.y (prologue_declaration): For %define variables, use
5602	`variable' instead of `STRING'.
5603	(grammar_declaration): For %code qualifiers, use `ID' instead of
5604	`STRING'.
5605	(variable): New nonterminal that takes an `ID' or a `STRING'.
5606	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Update %code
5607	and %define uses.
5608	* tests/calc.at (_AT_DATA_CALC_Y): Update %define use.
5609	* tests/input.at (Reject unused %code qualifiers): Update %code uses.
5610	(%define errors): Update %define uses.
5611
56122007-01-08  Joel E. Denny  <jdenny@ces.clemson.edu>
5613
5614	* src/parse-gram.y (prologue_declaration): Use MUSCLE_INSERT_STRING
5615	instead of muscle_insert for %define values so that M4-special
5616	characters are replaced with digraphs.
5617	* tests/input.at (%define errors): Extend to check weird values.
5618
56192007-01-08  Joel E. Denny  <jdenny@ces.clemson.edu>
5620
5621	Instead of having skeletons declare all valid %define variables and
5622	%code qualifiers, provide macros that retrieve the associated values
5623	and build these lists automatically.  Thus Bison will now warn when a
5624	variable or qualifier is not used by the skeleton in the current
5625	invocation regardless of whether it might sometimes be used by that
5626	skeleton in other invocations.  Also, move all %define value macros to
5627	the b4_percent_define_ namespace, and remove the %define "NAME" {CODE}
5628	form, which is replaced by %code.
5629	* data/bison.m4 (b4_check_for_unrecognized_names): Rename to...
5630	(b4_check_user_names): ... this, and change the series of valid name
5631	arguments to a single list argument for names used in the skeleton
5632	similar to the existing list argument for names used in the grammar.
5633	Warn instead of complaining.
5634	(b4_get_percent_define, b4_get_percent_code): New to retrieve %define
5635	values and %code code, to format %code code properly, and to build
5636	lists of all %define variables and %code qualifiers used in the
5637	skeleton: b4_skeleton_percent_define_variables and
5638	b4_skeleton_percent_code_qualifiers.
5639	(b4_check_percent_define_variables, b4_check_percent_code_qualifiers):
5640	Remove, and...
5641	(m4_wrap): ... m4_wrap b4_check_user_names invocations instead so that
5642	the skeleton names lists can finish building first.  In place of
5643	b4_used_percent_define_variables and b4_used_percent_code_qualifiers,
5644	expect the lists b4_user_percent_define_variables and
5645	b4_user_percent_code_qualifiers.
5646	* data/c++.m4: Where setting default values for b4_parser_class_name,
5647	b4_location_type, b4_filename_type, b4_namespace, and
5648	b4_define_location_comparison, update their names to the
5649	b4_percent_define_ namespace.
5650	* data/glr.c: Don't use b4_check_percent_define_variables and
5651	b4_check_percent_code_qualifiers.  Use b4_get_percent_code.
5652	* data/glr.cc, data/lalr1.cc: Likewise, and use b4_get_percent_define.
5653	(b4_parser_class_name, b4_namespace): Define these using
5654	b4_get_percent_define for parser_class_name and namespace.
5655	* data/location.cc: Use b4_get_percent_define.
5656	* data/push.c: Don't use b4_check_percent_define_variables and
5657	b4_check_percent_code_qualifiers.  Use b4_get_percent_code.
5658	* data/yacc.c: Likewise, and don't call m4_exit in
5659	b4_use_push_for_pull_if or m4_wrap code will never execute.
5660	* src/muscle_tab.c, src/muscle_tab.h (muscle_grow_used_name_list):
5661	Rename to...
5662	(muscle_grow_user_name_list): ... this for consistency with the
5663	terminology used in bison.m4.
5664	* src/parse-gram.y (prologue_declaration): Prepend "percent_define_" to
5665	%define variable names, and rename muscle used_percent_define_variables
5666	to user_percent_define_variables.
5667	(grammar_declaration): Rename muscle used_percent_code_qualifiers to
5668	user_percent_code_qualifiers.
5669	(content): Remove.
5670	(content.opt): Replace content RHS with STRING RHS so %define "NAME"
5671	{CODE} form is no longer accepted.
5672	* tests/input.at (Reject bad %code qualifiers): Rename to...
5673	(Reject unused %code qualifiers): ... this, and update test output.
5674	(%define error): Update test output.
5675
56762007-01-07  Joel E. Denny  <jdenny@ces.clemson.edu>
5677
5678	Check for unrecognized %define variables similar to checking for
5679	unrecognized %code qualifiers.  Check for redefined %define variables.
5680	* data/bison.m4 (b4_check_for_unrecognized_names): New macro that
5681	generalizes...
5682	(b4_check_percent_code_qualifiers): ... this, which now wraps it.
5683	(b4_check_percent_define_variables): New, also wraps it.
5684	* data/glr.c: Unless glr.cc is wrapping glr.c, declare no valid %define
5685	variables using b4_check_percent_define_variables.
5686	* data/glr.cc, data/lalr1.cc: Declare the valid %define variables as
5687	all those exercised in the test suite and all those listed in the
5688	`Default values' section of c++.m4.  Are there others?
5689	* data/push.c, data/yacc.c: Declare no valid %define variables.
5690	* src/muscle_tab.c, src/muscle_tab.h (muscle_find_const): New function,
5691	similar to muscle_find, but it works even when the muscle stores a
5692	const value.
5693	(muscle_grow_used_name_list): New function for constructing the used
5694	name list muscles that b4_check_for_unrecognized_names requires.
5695	* src/parse-gram.y (prologue_declaration): Warn if a variable is
5696	%define'd more than once.  Define the b4_used_percent_define_variables
5697	muscle with muscle_grow_used_name_list.
5698	(grammar_declaration): Abbreviate %code code with
5699	muscle_grow_used_name_list.
5700	* tests/input.at (%define errors): New.
5701
57022007-01-06  Joel E. Denny  <jdenny@ces.clemson.edu>
5703
5704	Provide warn_at, complain_at, and fatal_at function callbacks to the
5705	skeletons, and use this for %code qualifier complaints.
5706	* data/bison.m4 (b4_error_at): New, invoked by...
5707	(b4_warn_at, b4_complain_at, b4_fatal_at): ... these new macros to wrap
5708	the skeleton scanner's new @warn_at(...@), @complain_at(...@), and
5709	@fatal_at(...@) directives.
5710	(b4_check_percent_code_qualifiers): Rewrite to expect locations for
5711	qualifiers in b4_used_percent_code_qualifiers and to use
5712	b4_complain_at.
5713	* src/location.c, src/location.h (boundary_set_from_string): New global
5714	function.
5715	* src/muscle_tab.c, src/muscle_tab.h (muscle_boundary_grow): New global
5716	function.
5717	* src/parse-gram.y (grammar_declaration): Add locations for qualifiers
5718	to b4_used_percent_code_qualifiers.
5719	* src/scan-skel.l (fail_for_at_directive_too_few_args): New static
5720	function.
5721	(AT_DIRECTIVE_ARGC_MAX): Increase for boundary arguments.
5722	(lineno): Rename to...
5723	(out_lineno): ... this so I don't misunderstand it again.
5724	(SC_AT_DIRECTIVE_SKIP_WS): Don't increment out_lineno for newlines
5725	here; these newlines are in the input but not the output file.
5726	(SC_AT_DIRECTIVE_ARG): Likewise.  Extract directive execution to...
5727	(at_directive_perform): ... this new static function, and add handling
5728	of new @warn_at(...@), @complain_at(...@), and @fatal_at(...@)
5729	directives.
5730	* tests/input.at (Reject bad %code qualifiers): Update test output with
5731	locations and extend.
5732
5733	* tests/output.at (Output file name: [, Output file name: ]): Remove
5734	bogus comment about these tests failing.
5735
57362007-01-06  Joel E. Denny  <jdenny@ces.clemson.edu>
5737
5738	Clean up b4_check_percent_code_qualifiers a little.
5739	* data/bison.m4 (b4_check_percent_code_qualifiers): Expect qualifiers
5740	in b4_used_percent_code_qualifiers to be double-M4-quoted.  Rewrite
5741	documentation and add examples.
5742	* src/parse-gram.y (grammar_declaration): Double-M4-quote those
5743	qualifiers here.
5744
57452007-01-05  Joel E. Denny  <jdenny@ces.clemson.edu>
5746
5747	Don't use m4_divert since it makes m4_divert_push and m4_divert_pop
5748	unreliable -- especially when they're hidden inside another macro.
5749	* data/bison.m4, data/c++-skel.m4, data/c++.m4, data/c-skel.m4,
5750	data/c.m4: Remove m4_divert(-1).
5751	* data/glr.c, data/glr.cc, data/lalr1.cc, data/location.cc,
5752	data/push.c, data/yacc.c: Likewise, and replace m4_divert(0) with
5753	m4_divert_push(0) and m4_divert_pop(0).
5754	* src/output.c (output_skeleton): Don't add an m4_divert_push(0) and
5755	an m4_wrap([m4_divert_pop(0)]) to the M4.  Diversion -1, which is
5756	pushed and popped by m4sugar, should be first on the stack.
5757
5758	Provide warn, complain, and fatal function callbacks to the skeletons.
5759	This provides more flexibility than m4_fatal, improves the error
5760	message format, and captures messages for translation.  Discussed
5761	starting at
5762	<http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00063.html>.
5763	* data/bison.m4 (b4_error): New, invoked by...
5764	(b4_warn, b4_complain, b4_fatal): ... these new macros to wrap the
5765	skeleton scanner's new @warn(...@), @complain(...@), and @fatal(...@)
5766	directives.  Because these M4 macros might be called when the current
5767	diversion is -1 or 0, m4_divert_push and m4_divert_pop is used; thus
5768	the previous removal of uses of m4_divert, which caused trouble.
5769	(b4_check_percent_code_qualifiers): Use b4_complain instead of
5770	m4_fatal to report unrecognized %code qualifiers.
5771	* data/c++-skel.m4: Use b4_complain instead of m4_fatal to report C++
5772	push parser requests.
5773	* data/glr.c: Use b4_complain instead of m4_fatal to report
5774	non-deterministic push parser requests.
5775	Update @output usage to @output(...@) form.
5776	* data/glr.cc, data/lalr1.cc: Use b4_fatal instead of m4_fatal to
5777	report missing %defines.  Update @output usage to @output(...@) form.
5778	* data/location.cc, data/push.c, data/yacc.c: Update @output usage to
5779	@output(...@) form.
5780	* src/main.c (main): Invoke skel_scanner_free.
5781	* src/scan-skel.h (skel_scanner_free): Prototype new function.
5782	* src/scan-skel.l (FLEX_NO_OBSTACK): Don't define; we now need the
5783	obstack_for_string from flex-scanner.h.
5784	(YY_DECL): Use to declare skel_lex static.
5785	(decode_at_digraphs): Remove; now handled in the new
5786	SC_AT_DIRECTIVE_ARG start condition.
5787	(fail_for_at_directive_too_many_args, fail_for_invalid_at): New static
5788	functions.
5789	(at_directive_name, AT_DIRECTIVE_ARGC_MAX, at_directive_argc,
5790	at_directive_argv): New static globals.
5791	(INITIAL): Use fail_for_invalid_at.
5792	Don't parse `@output file_name\n' or `@basename(...@)'.  Instead,
5793	recognize the start of a generalized `@directive(...@)' form and
5794	start...
5795	(SC_AT_DIRECTIVE_ARG): ... this new start condition to parse the
5796	directive args (using the new obstack_for_string), to decode the
5797	contained @ diagraphs, and to perform the directive.  It recognizes
5798	@basename(...@), @warn(...@), @complain(...@), @fatal(...@), and
5799	@output(...@).
5800	(SC_AT_DIRECTIVE_SKIP_WS): New start condition started by
5801	SC_AT_DIRECTIVE_ARG to skip whitespace after the argument delimiter,
5802	`@,'.
5803	(scan_skel): Initialize obstack_for_string on the first call.
5804	(skel_scanner_free): New function to free obstack_for_string.
5805	* tests/input.at (Reject bad %code qualifiers): Update test output.
5806
58072007-01-04  Joel E. Denny  <jdenny@ces.clemson.edu>
5808
5809	Consolidate the 4 prologue alternative directives (%code, %requires,
5810	%provides, and %code-top) into a single %code directive with an
5811	optional qualifier field.  Discussed at
5812	<http://lists.gnu.org/archive/html/bison-patches/2007-01/msg00012.html>.
5813	* NEWS (2.3a+): Rewrite the existing entry for the prologue
5814	alternatives.
5815	* doc/bison.texinfo (Prologue Alternatives): Update.
5816	(Decl Summary): Update to %code "requires" and %code "provides".
5817	(Calc++ Parser): Update to %code "requires".
5818	(Table of Symbols): Remove entries for %requires, %provides, and
5819	%code-top.  Rewrite %code entry, and add a %code "QUALIFIER" entry.
5820	* data/bison.m4 (b4_user_provides, b4_user_requires): Remove as these
5821	are replaced by b4_percent_code_provides and b4_percent_code_requires,
5822	which are skeleton-specific.
5823	(b4_check_percent_code_qualifiers): New.  A skeleton can use this to
5824	declare what %code qualifiers it supports and to complain if any other
5825	qualifiers were used in the grammar.
5826	* data/glr.cc: Update to use b4_user_code([b4_percent_code_requires])
5827	and b4_user_code([b4_percent_code_provides]) in place of
5828	b4_user_requires and b4_user_provides.
5829	* data/glr.c, data/lalr1.cc, data/push.c, data/yacc.c: Likewise.
5830	Add b4_user_code([b4_percent_code_top]) and
5831	b4_user_code([b4_percent_code]).
5832	Invoke b4_check_percent_code_qualifiers.
5833	* src/parse-gram.y (PERCENT_CODE_TOP, PERCENT_PROVIDES,
5834	PERCENT_REQUIRES): Remove.
5835	(grammar_declaration): Remove RHS's for %code-top, %provides, and
5836	%requires.  Rewrite the %code RHS as the unqualified form defining the
5837	muscle b4_percent_code.  Add another RHS for the qualified %code form,
5838	which defines muscles of the form b4_percent_code_QUALIFIER and the
5839	b4_used_percent_code_qualifiers muscle.
5840	* src/scan-gram.l (PERCENT_CODE_TOP, PERCENT_PROVIDES,
5841	PERCENT_REQUIRES): Remove.
5842	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Update to use
5843	%code "requires" and %code "provides".
5844	* tests/input.at (Reject bad %code qualifiers): New.
5845
58462007-01-03  Joel E. Denny  <jdenny@ces.clemson.edu>
5847
5848	Use the new code_props interface for destructors and printers.
5849	* src/symtab.h (symbol, semantic_type): Remove destructor_location and
5850	printer_location members, and change the type of the destructor and
5851	printer members to code_props.
5852	(symbol_destructor_set, symbol_destructor_get, symbol_printer_set,
5853	symbol_printer_get, semantic_type_destructor_set,
5854	semantic_type_printer_set, default_tagged_destructor_set,
5855	default_tagless_destructor_set, default_tagged_printer_set,
5856	default_tagless_printer_set): Use code_props in arguments and return
5857	types in place of char const * and location.
5858	(symbol_destructor_location_get, symbol_printer_location_get): Remove
5859	since the locations are now contained in the return of
5860	symbol_destructor_get and symbol_printer_get.
5861	* src/output.c (symbol_destructors_output, symbol_printers_output):
5862	Replace with...
5863	(symbol_code_props_output): ... this to eliminate duplicate code.
5864	(output_skeleton): Update to use symbol_code_props_output.
5865	* src/reader.c (symbol_should_be_used): Update use of
5866	symbol_destructor_get.
5867	* src/symlist.c (symbol_list_destructor_set, symbol_list_printer_set):
5868	Update uses of the various _destructor_set and _printer_set functions.
5869	* src/symtab.c: (default_tagged_destructor_location,
5870	default_tagless_destructor_location, default_tagged_printer_location,
5871	default_tagless_printer_location): Remove since we...
5872	(default_tagged_destructor, default_tagless_destructor,
5873	default_tagged_printer, default_tagless_printer): ... change the type
5874	of these to code_props.
5875	(symbol_new, semantic_type_new, symbol_destructor_set,
5876	semantic_type_destructor_set, symbol_destructor_get,
5877	symbol_printer_set, semantic_type_printer_set, symbol_printer_get,
5878	symbol_check_alias_consistency, default_tagged_destructor_set,
5879	default_tagless_destructor_set, default_tagged_printer_set,
5880	default_tagless_printer_set): Update.
5881	(symbol_destructor_location_get, symbol_printer_location_get): Remove.
5882	(SYMBOL_CODE_PRINT): New similar to SYMBOL_ATTR_PRINT but for
5883	code_props members.
5884	(symbol_print): Use SYMBOL_CODE_PRINT.
5885
58862007-01-03  Joel E. Denny  <jdenny@ces.clemson.edu>
5887
5888	Use the new code_props interface for rule actions.
5889	* src/symlist.h (symbol_list): Replace action, action_location, and
5890	used members with a code_props action_props member.
5891	* src/reader.c (symbol_should_be_used, grammar_rule_check,
5892	grammar_midrule_action, grammar_current_rule_merge_set,
5893	grammar_current_rule_symbol_append, packgram): Update.
5894	* src/scan-code.h (translate_rule_action): Remove, no longer used.
5895	* src/scan-code.l (handle_action_dollar): Update.
5896	(translate_rule_action): Remove, no longer used.
5897	* src/symlist.c (symbol_list_sym_new, symbol_list_syms_print): Update.
5898
58992007-01-02  Joel E. Denny  <jdenny@ces.clemson.edu>
5900
5901	Use the new code_props interface in parse-gram.y.
5902	* src/parse-gram.y (prologue_declaration, braceless, epilogue.opt):
5903	Update all uses of translate_* functions to use the new code_props
5904	interface and to use gram_scanner_last_string_free and
5905	code_scanner_last_string_free where possible.
5906	(grammar_declaration): symbol_list_destructor_set and
5907	symbol_list_printer_set now perform the translation, so don't do it
5908	here.  Use gram_scanner_last_string_free where possible.
5909	* src/scan-code.h, src/scan-code.l (translate_symbol_action,
5910	translate_code): Remove, no longer used.
5911	* src/symlist.h, src/symlist.c (symbol_list_destructor_set,
5912	symbol_list_printer_set): Perform code translation here rather than
5913	depending on the caller to do so.
5914
5915	* src/symlist.h (struct symbol_list): Correct some documentation typos.
5916	* src/scan-gram.h (gram_last_string): Remove declaration.
5917	* src/scan-gram.l (last_string): Declare it static.
5918
59192007-01-02  Joel E. Denny  <jdenny@ces.clemson.edu>
5920
5921	Encapsulate code properties and related functionality for the various
5922	destructors, printers, and actions into a code_props structure and
5923	interface.  This patch merely implements code_props in scan-code.h and
5924	scan-code.l.  Future patches will rewrite other modules to use it.
5925	Discussed starting at
5926	<http://lists.gnu.org/archive/html/bison-patches/2006-11/msg00020.html>.
5927	* src/location.h (EMPTY_LOCATION_INIT): Define so that it's easier to
5928	consistently initialize const structs that have an empty location
5929	field.
5930	* src/location.c (empty_location): Initialize with EMPTY_LOCATION_INIT
5931	to ensure consistency.
5932	* src/scan-code.h (code_props): New structure.
5933	(code_props_none_init, CODE_PROPS_NONE_INIT, code_props_none): New
5934	function, macro, and const global variable for initializing a
5935	code_props with no code.
5936	(code_props_plain_init, code_props_symbol_action_init,
5937	code_props_rule_action_init, code_props_translate_code): The rest of
5938	the new code_props functional interface.  Among other things, the init
5939	functions set the code_props kind field so that
5940	code_props_translate_code will know whether to behave like
5941	translate_symbol_action, translate_rule_action, or translate_code.
5942	These old translate functions must remain until all other modules are
5943	updated to use the new code_props interface.
5944	(code_scanner_last_string_free): New function similar to
5945	gram_scanner_last_string_free.
5946	(code_scanner_free): Add documentation.
5947	* src/scan-code.l: Implement the new interface.
5948	(code_lex): Make it static, add a code_props* argument, and remove the
5949	rule argument.
5950	(last_string): New static global similar to the one in scan-gram.l.
5951	(SC_RULE_ACTION): Update to use the code_props* argument to code_lex
5952	instead of rule.
5953	(SC_SYMBOL_ACTION): For $$, set the is_value_used member of the
5954	code_props since Bison may one day use this information for destructors
5955	and printers.
5956	(<*><<EOF>>): Use STRING_FINISH so that last_string is set.
5957	(handle_action_dollar): Use symbol_list_n_get and set used flag
5958	directly since symbol_list_n_used_set is removed.
5959	(translate_action): Add a code_props* argument and remove the rule,
5960	action, and location arguments.  Pass the code_props* on to code_lex.
5961	(translate_rule_action, translate_symbol_action, translate_code):
5962	Rewrite as wrappers around the new code_props interface.
5963	* src/symlist.h, src/symlist.c (symbol_list_n_used_set): Remove since
5964	it would eventually need to break the encapsulation of code_props.
5965
59662007-01-01  Joel E. Denny  <jdenny@ces.clemson.edu>
5967
5968	* etc/.cvsignore: New.
5969
59702007-01-01  Joel E. Denny  <jdenny@ces.clemson.edu>
5971
5972	Add maintainer-push-check to run maintainer-check using push parsing in
5973	place of pull parsing where available.
5974	* Makefile.am (maintainer-push-check): New.
5975	* data/bison.m4 (b4_use_push_for_pull_if): New.
5976	* data/push.c: Redefine b4_push_if and b4_use_push_for_pull_if
5977	appropriately based on their existing values.
5978	(yypush_parse): Don't print push-parser-specific diagnostics if push
5979	parsing is being used in place of pull parsing.
5980	* data/yacc.c: If push parsing should replace pull parsing, redirect to
5981	push.c.
5982	* src/output.c (prepare): Check BISON_USE_PUSH_FOR_PULL environment
5983	variable, and insert b4_use_push_for_pull_flag into muscles.
5984	* tests/Makefile.am (maintainer-push-check): New.
5985
59862006-12-31  Joel E. Denny  <jdenny@ces.clemson.edu>
5987
5988	* data/push.c (yypush_parse): Set yynew = 1 at the end of a parse
5989	(whether successful or failed) so that yypush_parse can be invoked
5990	again to start a new parse using the same yypstate.
5991	* tests/torture.at (AT_DATA_STACK_TORTURE): For push mode, extend to
5992	check multiple yypull_parse invocations on the same yypstate.  For pull
5993	mode, extend to check multiple yyparse invocations.
5994	(Exploding the Stack Size with Alloca): Extend to try with
5995	%push-pull-parser.
5996	(Exploding the Stack Size with Malloc): Likewise.
5997
5998	* tests/calc.at (Simple LALR Calculator): Don't specify
5999	%skeleton "push.c" since %push-pull-parser implies that now.
6000	* tests/headers.at (export YYLTYPE): Don't check for the push
6001	declarations.  Otherwise, this test case can't be used to see if push
6002	mode can truly emulate pull mode.
6003	* tests/input.at (Torturing the Scanner): Likewise.
6004	* tests/local.at (AT_YACC_OR_PUSH_IF, AT_PUSH_IF): Remove.
6005	(AT_YYERROR_SEES_LOC_IF): Rather than AT_YACC_OR_PUSH_IF, use
6006	AT_YACC_IF, which now includes the case of push mode since %skeleton
6007	need not be used for push mode.  This will be more intuitive once
6008	push.c is renamed to yacc.c.
6009
60102006-12-31  Joel E. Denny  <jdenny@ces.clemson.edu>
6011
6012	For push mode, convert yyparse from a macro to a function, invoke yylex
6013	instead of passing a yylexp argument to yypull_parse, and don't
6014	generate yypull_parse or yyparse unless %push-pull-parser is declared.
6015	Discussed starting at
6016	<http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00163.html>.
6017	* data/bison.m4 (b4_pull_if): New.
6018	* data/c.m4 (b4_identification): Define YYPULL similar to YYPUSH.
6019	* data/push.c: Improve M4 quoting a little.
6020	(b4_generate_macro_args, b4_parenthesize): Remove.
6021	(yyparse): If there's a b4_prefix, #define this to b4_prefix[parse]
6022	any time a pull parser is requested.
6023	Don't #define this as a wrapper around yypull_parse.  Instead, when
6024	both push and pull are requested, make it a function that does that
6025	same thing.
6026	(yypull_parse): If there's a b4_prefix, #define this to
6027	b4_prefix[pull_parse] when both push and pull are requested.
6028	Don't define this as a function unless both push and pull are
6029	requested.
6030	Remove the yylexp argument and hard-code yylex invocation instead.
6031	* etc/bench.pl.in (bench_grammar): Use %push-pull-parser instead of
6032	%push-parser.
6033	* src/getargs.c (pull_parser): New global initialized to true.
6034	* getargs.h (pull_parser): extern it.
6035	* src/output.c (prepare): Insert pull_flag muscle.
6036	* src/parse-gram.y (PERCENT_PUSH_PULL_PARSER): New token.
6037	(prologue_declaration): Set both push_parser and pull_parser = true for
6038	%push-pull-parser.  Set push_parser = true and pull_parser = false for
6039	%push-parser.
6040	* src/scan-gram.l: Don't accept %push_parser as an alternative to
6041	%push-parser since there's no backward-compatibility concern here.
6042	Scan %push-pull-parser.
6043	* tests/calc.at (Simple LALR(1) Calculator): Use %push-pull-parser
6044	instead of %push-parser.
6045	* tests/headers.at (export YYLTYPE): Make yylex static, and don't
6046	prototype it in the module that calls yyparse.
6047	* tests/input.at (Torturing the Scanner): Likewise.
6048	* tests/local.at (AT_PUSH_IF): Check for %push-pull-parser as well.
6049
60502006-12-26  Joel E. Denny  <jdenny@ces.clemson.edu>
6051
6052	Update etc/bench.pl.  Optimize push mode a little (the yyn change
6053	deserves most of the credit).
6054	* Makefile.am (SUBDIRS): Add etc subdirectory.
6055	* configure.ac (AC_CONFIG_FILES): Add etc/bench.pl and etc/Makefile.
6056	* data/push.c (b4_declare_parser_state_variables): Move yyn, yyresult,
6057	yytoken, yyval, and yyloc declarations to...
6058	(yyparse or yypush_parse): ... here to improve performance.  For
6059	yypush_parse invocations after the first, be sure to assign yyn its old
6060	value again.
6061	(yypstate_new): Don't bother initializing the yyresult field since the
6062	initial value isn't used.
6063	(yyn, yyresult, yytoken, yyval, yyloc): For each NAME in this list,
6064	remove the #define that, in push mode, set it to yyps->NAME.
6065	* etc/Makefile.am: New.
6066	* etc/bench.pl: Remove and build it instead from...
6067	* etc/bench.pl.in: ... this new file.  Use @abs_top_builddir@ to invoke
6068	"tests/bison" from the build directory by default rather than just
6069	invoking "bison" from $PATH.
6070	(calc_grammar): Update push parser code: don't declare yylval globally,
6071	don't define yyparse_wrapper, and don't #define yyparse.
6072	(bench_grammar): Update to check all working combinations of yacc.c,
6073	push.c, impure, pure, pull, and push.
6074
60752006-12-25  Joel E. Denny  <jdenny@ces.clemson.edu>
6076
6077	For push mode, add pull wrappers around yypush_parse.
6078	* data/push.c: (b4_generate_macro_args, b4_parenthesize): New macros.
6079	(yypull_parse): New function wrapping yypush_parse.
6080	(yyparse): New #define wrapping yypull_parse.
6081	* tests/calc.at (_AT_DATA_CALC_Y): Call yyparse even when %push-parser
6082	is declared.
6083	* tests/headers.at (export YYLTYPE): Make yylex global.  For push mode,
6084	prototype yylex in the module that calls yyparse, and don't prototype
6085	yyparse there.  Otherwise, the yyparse expansion won't compile.
6086	* tests/input.at (Torturing the Scanner): Likewise.
6087
60882006-12-25  Joel E. Denny  <jdenny@ces.clemson.edu>
6089
6090	Enable push parsers to operate in impure mode.  Thus, %push-parser no
6091	longer implies %pure-parser.  The point of this change is to move
6092	towards being able to test the push parser code by running the entire
6093	test suite as if %push-parser had been declared.
6094	* data/push.c (yypush_parse): For impure mode, remove the
6095	yypushed_char, yypushed_val, and yypushed_loc arguments.
6096	Instead, declare these as local variables initialized to the global
6097	yychar, yylval, and yylloc.
6098	For the first yypush_parse invocation only, restore the initial values
6099	of these global variables when it's time to read a token since they
6100	have been overwritten.
6101	* src/parse-gram.y (prologue_declaration): Don't set pure_parser for
6102	%push-parser.
6103	* tests/calc.at (Simple LALR(1) Calculator): Always declare
6104	%pure-parser along with %push-parser since this test case was designed
6105	for pure push parsers.
6106	* tests/local.at (AT_PURE_OR_PUSH_IF): Remove unused.
6107	(AT_YACC_OR_PUSH_IF): New.
6108	(AT_YYERROR_SEES_LOC_IF): Fix enough that the test suite passes, but
6109	add a note that it's still wrong for some cases (as it has been for a
6110	while).
6111	(AT_PURE_LEX_IF): Use AT_PURE_IF instead of AT_PURE_OR_PUSH_IF since
6112	%push-parser no longer implies %pure-parser.
6113
61142006-12-20  Joel E. Denny  <jdenny@ces.clemson.edu>
6115
6116	Remove some unnecessary differences between the pull parser code and
6117	the push parser code.  This patch enables yynerrs in push mode.
6118	* data/push.c: Reformat M4 a little.
6119	(b4_yyerror_range): Remove and convert all uses to just yyerror_range.
6120	(b4_declare_scanner_communication_variables): Don't omit yynerrs just
6121	because push mode is on.  Instead, if pure mode is on, move yynerrs
6122	to...
6123	(b4_declare_parser_state_variables): ... here.
6124	(yynerrs, yyerror_range): For push mode, #define each NAME in this list
6125	to yyps->NAME so it can be used in yypush_parse.
6126	(yypush_parse): Don't omit uses of yynerrs in push mode.
6127
61282006-12-20  Joel E. Denny  <jdenny@ces.clemson.edu>
6129
6130	Fix bug such that the first pushed token's value and location are
6131	sometimes overwritten (sometimes by %initial-action) before being used.
6132	* data/push.c (yypush_parse): Rename arguments yynchar, yynlval, and
6133	yynlloc to yypushed_char, yypushed_val, and yypushed_loc for clarity.
6134	For the first yypush_parse invocation, initialize yychar to YYEMPTY to
6135	more closely mimic the pull parser logic.
6136	Don't copy the pushed token to yychar, yylval, and yylloc until it's
6137	time to read a token, which is after any initialization of yylval and
6138	yylloc.
6139	(gottoken): Rename label to...
6140	(yyread_pushed_token): ... for clarity and to avoid infringing on the
6141	user namespace.
6142
61432006-12-20  Joel E. Denny  <jdenny@ces.clemson.edu>
6144
6145	Rearrange initialization of the parser state variables so that the
6146	skeleton doesn't have to have a copy for pull mode and another for push
6147	mode.  This patch also fixes at least a bug such that yylloc was not
6148	initialized (with b4_location_initial_line and
6149	b4_location_initial_column) upon calling yypush_parse.  However, that
6150	initialization now overwrites the first token's location;
6151	%initial-action assigning @$ already did the same thing, and both bugs
6152	will be fixed in a later patch.
6153	* data/push.c (b4_yyssa): Remove and convert all uses to just yyssa.
6154	(b4_declare_parser_state_variables): Remove initialization of yytoken,
6155	yyss, yyvs, yyls, and yystacksize.
6156	(yypstate_new): Remove initialization of some yypstate fields: yystate,
6157	yyerrstatus, yytoken, yyss, yyvs, yyls, yystacksize, yyssp, yyvsp, and
6158	yylsp.
6159	(yyssa, yyvsa, yylsa): For push mode, #define each NAME in this list to
6160	yyps->NAME so it can be used in yypush_parse.
6161	(yyparse or yypush_parse): For yypush_parse, don't print the
6162	"Starting parse" diagnostic for invocations after the first.
6163	Add initialization of yytoken, yyss, yyvs, yyls, and yystacksize; for
6164	yypush_parse, only do it for the first invocation.
6165	Allow yystate, yyerrstatus, yyssp, yyvsp, yylsp, and yylloc
6166	initialization to occur in yypush_parse but only on the first
6167	invocation.
6168
61692006-12-19  Joel E. Denny  <jdenny@ces.clemson.edu>
6170
6171	* data/push.c: Add CPP guards around push parser declarations in both
6172	the header and the code file.
6173	In the code file, move the push parser declarations to the same place
6174	they appear in the header file.
6175	Clean up the M4 some, especially the inconsistent underquoting in
6176	some b4_c_function_def and b4_c_function_decl uses.
6177
61782006-12-19  Joel E. Denny  <jdenny@ces.clemson.edu>
6179
6180	Encapsulate the push parser state variables into an M4 macro so the
6181	push skeleton doesn't have to list them again for pull mode's yyparse.
6182	For push mode, remove yypush_parse's local equivalents of these
6183	variables to eliminate unnecessary copying between the two sets at
6184	run-time.  This patch also fixes at least a bug related to multiple
6185	%initial-action invocations in push mode.
6186	* data/push.c (b4_declare_parser_variables): Rename to...
6187	(b4_declare_scanner_communication_variables): ... this for clarity and
6188	update both uses.
6189	(b4_declare_yyparse_variables): Remove and move its contents to the one
6190	spot where it was invoked.
6191	(b4_declare_parser_state_variables): New macro containing the parser
6192	state variables required by push mode.
6193	(struct yypstate): Replace all fields but yynew with
6194	b4_declare_parser_state_variables.
6195	(yystate, yyn, yyresult, yyerrstatus, yytoken, yyss, yyssp, yyvs,
6196	yyvsp, yyls, yylsp, yystacksize, yyval, yyloc): For push mode, #define
6197	each NAME in this list to yyps->NAME so it can be used in yypush_parse.
6198	(yyparse or yypush_parse): For yyparse in pull mode, replace local
6199	parser state variable declarations with
6200	b4_declare_parser_state_variables.
6201	Don't initialize parser state variables when calling yypush_parse since
6202	yypstate_new already does that.
6203	Invoke the user's initial action only upon the first yypush_parse
6204	invocation.
6205	Remove all code that copies between the local parser state variables
6206	and the yypstate.
6207
62082006-12-19  Joel E. Denny  <jdenny@ces.clemson.edu>
6209
6210	* data/push.c (union yyalloc): Rename yyss, yyvs, and yyls fields to
6211	prevent a name collision in a future patch where these names will
6212	sometimes be #define'd.
6213	(YYSTACK_RELOCATE): Add an argument to select a union yyalloc field
6214	since it no longer has the same name as the existing argument.
6215	(yyparse or yypush_parse): Update all uses of YYSTACK_RELOCATE.
6216
62172006-12-19  Paolo Bonzini  <bonzini@gnu.org>
6218	and Joel E. Denny  <jdenny@ces.clemson.edu>
6219
6220	* doc/bison.texinfo (Decl Summary): In the %language entry, mention
6221	that the argument is case-insensitive, and there's no `=' here.
6222	For the %skeleton entry, mention that %language is better.
6223	(Bison Options): Likewise for --language and --skeleton.  Move the
6224	--skeleton entry so that the `Tuning the parser' section is sorted
6225	alphabetically on long options.
6226	(C++ Bison Interface): Don't use the word skeleton.  Don't explain the
6227	%language directive in detail here; cross-reference the %language
6228	documentation instead.
6229	(Calc++ Parser): Use `%require "@value{VERSION}"' rather than
6230	`%require "2.3b"' so that the example is always up-to-date.
6231	(Table of Symbols): Add entries for %language and %skeleton.
6232	* examples/extexi (normalize): Instead of replacing every %require
6233	argument with the current Bison version, just substitute for
6234	`@value{VERSION}'.  This guarantees that we're testing what actually
6235	appears in the documentation.
6236	* examples/calc++/Makefile.am ($(calc_extracted)): Use `$(VERSION)'
6237	rather than `@VERSION@'.
6238
62392006-12-18  Paul Eggert  <eggert@cs.ucla.edu>
6240
6241	* NEWS: Reword the %language news a bit, and put it earlier.
6242
6243	* src/getargs.c (skeleton_arg): Last arg is now location const *.
6244	Rewrite to simplify the logic.
6245	(language_argmatch): Likewise.
6246	(program_name): We now own this var.
6247	* src/getargs.h (struct bison_language): Use char[] rather than
6248	const char *.
6249
6250	* doc/bison.texinfo (Decl Summary, Bison Options): Don't claim
6251	Java is supported.
6252	* src/complain.c (program_name): Remove decl; no longer needed.
6253	* src/main.c (program_name): Remove; now belongs to getargs.
6254
62552006-12-18  Paolo Bonzini  <bonzini@gnu.org>
6256
6257	* NEWS: Document %language.
6258
6259	* data/Makefile.am (dist_pkgdata_DATA): Add c-skel.m4, c++-skel.m4.
6260
6261	* data/c-skel.m4, data/c++-skel.m4: New files.
6262	* data/glr.c: Complain on push parsers.
6263
6264	* doc/bison.texinfo (C++ Parser Interface): Prefer %language
6265	over %skeleton.
6266	(Decl Summary): Document %language and %skeleton.
6267	(Command line): Document -L.
6268
6269	* examples/extexi: Rewrite %require directive.
6270	* examples/calc++/Makefile.am: Pass VERSION to extexi.
6271
6272	* src/files.c (compute_exts_from_gc): Look in language structure
6273	for .y extension.
6274	(compute_file_name_parts): Check whether .tab should be added.
6275	* src/getargs.c (valid_languages, skeleton_prio, language_prio):
6276	(language, skeleton_arg, language_argmatch): New.
6277	(long_options): Add --language.
6278	(getargs): Use skeleton_arg, add -L/--language.
6279	* src/getargs.h: Include location.h.
6280	(struct bison_language, language, skeleton_arg, language_argmatch): New.
6281	* src/output.c (prepare): Pick default skeleton from struct language.
6282	Don't dispatch C skeletons here.
6283	* src/parse-gram.y (PERCENT_LANGUAGE): New.
6284	(prologue_declaration): Add "%language" rule, use skeleton_arg.
6285	* src/scan-gram.l ("%language"): New rule.
6286
6287	* tests/calc.at: Test %skeleton and %language.
6288	* tests/local.at (AT_SKEL_CC_IF): Look for %language.
6289	(AT_GLR_IF): Look for %skeleton "glr.cc".
6290	(AT_LALR1_CC_IF, AT_GLR_CC_IF): Rewrite.
6291	(AT_YACC_IF): Reject %language.
6292
62932006-12-18  Paul Eggert  <eggert@cs.ucla.edu>
6294
6295	* src/symtab.h (struct semantic_type): Remove the tag 'semantic_type',
6296	since it wasn't used; only the typedef name 'semantic_type' is needed.
6297	Also, omit trailing white space.
6298
6299	* bootstrap: Sync from coreutils.
6300	(gnulib_extra_files): Add build-aux/announce.gen.
6301	(slurp): Adjust .gitignore files like .cvsignore files.
6302	* build-aux/announce-gen: Remove from CVS, since bootstrap
6303	now creates this.
6304
63052006-12-16  Joel E. Denny  <jdenny@ces.clemson.edu>
6306
6307	Make %push-parser imply %pure-parser.  This fixes several bugs; see
6308	<http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00148.html>.
6309	* src/parse-gram.y (prologue_declaration): For %push-parser, also set
6310	pure_parser = true.
6311	* data/push.c: Don't bother testing b4_push_if when deciding whether
6312	to expand b4_declare_parser_variables globally.
6313	(yypush_parse): Likewise in here.
6314
6315	* data/push.c (yypush_parse): Add b4_parse_param to arguments.
6316	(yy_reduce_print): Reformat M4 for readability.
6317
63182006-12-15  Bob Rossi  <bob@brasko.net>
6319	and Joel Denny  <jdenny@ces.clemson.edu>
6320
6321	* data/push.c (yypstate): Add typedef, and update all uses of
6322	struct yypstate to just yypstate.
6323	* tests/calc.at (_AT_DATA_CALC_Y): Update here as well.
6324
63252006-12-14  Bob Rossi  <bob@brasko.net>
6326
6327	* data/push.c (yypush_parse): Declare prototype regardless of
6328	%locations option.
6329
63302006-12-14  Bob Rossi  <bob@brasko.net>
6331
6332	* data/push.c (yyparse): Remove the prototype and the #define when in
6333	push-parser mode.
6334
63352006-12-13  Bob Rossi  <bob@brasko.net>
6336
6337	* data/push.c (yypstate_init): Rename to...
6338	(yypstate_new): ... this and use b4_c_function_def.
6339	(yypstate_delete): New.
6340	(yypush_parse): Change parameters yynval and yynlloc to be const.
6341	* tests/calc.at (_AT_DATA_CALC_Y): Use new yypstate_new and
6342	yypstate_delete functions.
6343
63442006-12-13  Joel E. Denny  <jdenny@ces.clemson.edu>
6345
6346	* configure.ac (AC_PREREQ): Require Autoconf 2.61 because of our
6347	strange test case titles.  Reported by Bob Rossi.
6348
63492006-12-13  Paul Eggert  <eggert@cs.ucla.edu>
6350
6351	* TODO: Add pointer to Sylvain Schmitz's work on static detection
6352	of potential ambiguities in GLR grammers.
6353
63542006-12-12  Joel E. Denny  <jdenny@ces.clemson.edu>
6355
6356	* tests/testsuite.at (AT_CHECK): When checking if $1 starts with
6357	`bison ', use m4_index instead of m4_substr since chopping up a string
6358	containing M4-special characters causes problems here.
6359
6360	Fix a couple of bugs related to special characters in user-specified
6361	file names, and make it easier for skeletons to compute output file
6362	names with the same file name prefix as Bison-computed output file
6363	names.
6364	* data/glr.cc, data/push.c, data/yacc.c: In @output, use
6365	b4_parser_file_name and b4_spec_defines_file instead of
6366	@output_parser_name@ and @output_header_name@, which are now redundant.
6367	* data/glr.c, data/lalr1.cc: Likewise.  Also, in header #include's, use
6368	b4_parser_file_name, b4_spec_defines_file, and the new
6369	@basename(FILENAME@) instead of @output_parser_name@ and
6370	@output_header_name@, which inappropriately escaped the file names as
6371	C string literals.
6372	* src/files.c (all_but_ext): Remove static qualifier.
6373	(compute_output_file_names): Move `free (all_but_ext)' to...
6374	(output_file_names_free): ... here since all_but_ext is needed later.
6375	* src/files.h (all_but_ext): Extern.
6376	* src/muscle_tab.h (MUSCLE_INSERT_STRING_RAW): New macro that does
6377	exactly what MUSCLE_INSERT_STRING used to do.
6378	(MUSCLE_INSERT_STRING): Use MUSCLE_OBSTACK_SGROW so that M4-special
6379	characters are escaped properly.
6380	* src/output.c (prepare): Define muscle file_name_all_but_ext as
6381	all_but_ext.
6382	For pkgdatadir muscle, maintain previous functionality by using
6383	MUSCLE_INSERT_STRING_RAW instead of MUSCLE_INSERT_STRING.  The problem
6384	is that b4_pkgdatadir is used inside m4_include in the skeletons, so
6385	digraphs would never be expanded.  Hopefully no one has M4-special
6386	characters in his Bison installation path.
6387	* src/scan-skel.l: Don't parse @output_header_name@ and
6388	@output_parser_name@ anymore since they're now redundant.
6389	In @output, use decode_at_digraphs.
6390	Parse a new @basename command that invokes last_component.
6391	(decode_at_digraphs): New.
6392	(BASE_QPUTS): Remove unused.
6393	* tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): New macro.
6394	(Output file name): New tests.
6395
63962006-12-09  Joel E. Denny  <jdenny@ces.clemson.edu>
6397
6398	Warn about output files that are generated by the skeletons and that
6399	conflict with other output files.
6400	* data/glr.c: Don't generate the header file here when glr.cc does.
6401	* src/files.c (file_names, file_names_count): New static globals.
6402	(compute_output_file_names): Invoke output_file_name_check for files
6403	not generated by the skeletons and remove existing checks.
6404	(output_file_name_check): New function that warns about conflicting
6405	output file names.
6406	(output_file_names_free): Free file_names.
6407	* src/files.h (output_file_name_check): Declare.
6408	* src/scan-skel.l: Invoke output_file_name_check for files generated by
6409	the skeletons.
6410	* tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): New.
6411	(Conflicting output files): New tests.
6412
64132006-12-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6414
6415	* doc/bison.texinfo: Fix a couple of typos.
6416
64172006-12-08  Bob Rossi  <bob@brasko.net>
6418
6419	* data/push.c: (yypvarsinit, yypvars, struct yypvars, yypushparse):
6420	Rename to...
6421	(yypstate_init, yypstate, struct yypstate, yypush_parse): ... these and
6422	update all uses.
6423	(b4_yyssa, b4_yyerror_range, yypstate_init): Rename pv to yyps.
6424	(yypush_parse): Rename yypvars argument to yyps and remove redundant
6425	local pv.
6426	(yypstate_init, yypush_parse): Declare in Bison-generated header file.
6427	* tests/calc.at (_AT_DATA_CALC_Y): Use newly named functions.
6428
64292006-12-07  Bob Rossi  <bob@brasko.net>
6430	and Joel Denny  <jdenny@ces.clemson.edu>
6431
6432	* data/push.c (yypvarsinit): Change return type from void* to struct
6433	yypvars*. No longer cast to void* on return.
6434	(struct yypvars): Remove yylen since it need not be remembered between
6435	yypushparse invocations.
6436	(yypushparse): Don't copy between yylen and pv->yylen.
6437
64382006-12-05  Bob Rossi  <bob@brasko.net>
6439
6440	* data/push.c (yychar_set, yylval_set, yylloc_set): Delete.
6441	(yypushparse): Add yynchar, yynlval, yynlloc parameters.
6442	(b4_declare_parser_variables): Do not declare yynerrs for push mode.
6443	(struct yypvars): Remove b4_declare_parser_variables.
6444	(yypvarsinit): Remove init code for removed variables.
6445	(global scope): Do not declare b4_declare_parser_variables if
6446	push or pure mode.
6447	(yypushparse): Add b4_declare_parser_variables.
6448	Init new local variables, and remove init code for removed
6449	yypvars variables.
6450	(yyparse): Delete.
6451	* tests/calc.at (_AT_DATA_CALC_Y): Call yypushparse for push mode
6452	and yyparse for other modes.
6453	(AT_CHECK_CALC_LALR): Added '%skeleton "push.c"' for push tests.
6454	* tests/local.at (AT_PUSH_IF, AT_PURE_OR_PUSH_IF): Added.
6455	(AT_YYERROR_SEES_LOC_IF): push-parser makes this false.
6456	(AT_PURE_LEX_IF): True if pure or push parser.
6457
64582006-12-05  Joel E. Denny  <jdenny@ces.clemson.edu>
6459
6460	Document Yacc prologue alternatives and default %destructor's and
6461	%printer's as experimental.  Don't mention Java yet.  Discussed at
6462	<http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00002.html>.
6463	* NEWS (2.3a+): Say they're experimental.  Remove any mention of Java.
6464	(2.3a): Annotate this entry to say the old forms of these features were
6465	also experimental.
6466	* doc/bison.texinfo (Prologue Alternatives, Freeing Discarded Symbols,
6467	Table of Symbols): Say they're experimental.  Comment out any mention
6468	of Java (we'll want this back eventually).
6469
64702006-12-01  Joel E. Denny  <jdenny@ces.clemson.edu>
6471
6472	Support a file name argument to %defines.  Deprecate `=' in
6473	%file-prefix, %name-prefix, and %output.  Discussed at
6474	<http://lists.gnu.org/archive/html/help-bison/2006-09/msg00001.html>.
6475	* NEWS (2.3a+): Mention.
6476	* doc/bison.texinfo (Decl Summary, Table of Symbols): Add entry for new
6477	form of %defines, and remove `=' from entries for %file-prefix,
6478	%name-prefix, and %output.
6479	* src/parse-gram.y (prologue_declaration): Implement.
6480	* tests/calc.at (Simple LALR Calculator, Simple GLR Calculator, Simple
6481	LALR1 C++ Calculator, Simple GLR C++ Calculator): Remove the `=' from
6482	all but one occurrence of %name-prefix.
6483	* tests/headers.at (export YYLTYPE): Remove the `=' from %name-prefix.
6484	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Likewise.
6485	* tests/output.at (AT_CHECK_OUTPUT): Remove the `=' from all but one
6486	occurrence of each of %file-prefix and %output.  Add check for %defines
6487	with argument.
6488	* tests/reduce.at (Useless Terminals, Useless Nonterminals,
6489	Useless Rules, Reduced Automaton, Underivable Rules, Empty Language):
6490	Remove the `=' from %output.
6491
64922006-11-21  Joel E. Denny  <jdenny@ces.clemson.edu>
6493
6494	Don't escape $ in test case titles since Autoconf 2.61 now does that
6495	correctly.
6496	* tests/actions.at (Default %printer and %destructor are not for error
6497	or $undefined): Here.
6498	(Default %printer and %destructor are not for $accept): Here.
6499	* tests/input.at (Invalid $n and @n): Here.
6500
65012006-11-20  Joel E. Denny  <jdenny@ces.clemson.edu>
6502
6503	Rename <!> to <>.  Discussed starting at
6504	<http://lists.gnu.org/archive/html/bison-patches/2006-11/msg00039.html>.
6505	* NEWS (2.3a+): Update.
6506	* doc/bison.texinfo (Freeing Discarded Symbols, Table of Symbols):
6507	Update.
6508	* src/parse-gram.y (TYPE_TAG_NONE, generic_symlist_item): Implement.
6509	* src/scan-gram.l (INITIAL): Implement.
6510	* src/symlist.c (symbol_list_default_tagless_new): Update comment.
6511	* src/symlist.h (symbol_list, symbol_list_default_tagless_new): Update
6512	comment.
6513	* tests/actions.at (Default tagless %printer and %destructor,
6514	Default tagged and per-type %printer and %destructor,
6515	Default %printer and %destructor are not for error or $undefined,
6516	Default %printer and %destructor are not for $accept,
6517	Default %printer and %destructor for mid-rule values): Update.
6518	* tests/input.at (Default %printer and %destructor redeclared,
6519	Unused values with default %destructor): Update.
6520
65212006-11-17  Joel E. Denny  <jdenny@ces.clemson.edu>
6522
6523	Don't let %prec take a nonterminal.
6524	* src/reader.c (grammar_current_rule_prec_set): Make the %prec symbol a
6525	token.
6526	* tests/input.at (%prec takes a token): New test checking that %prec
6527	won't take a nonterminal.
6528
65292006-11-10  Joel E. Denny  <jdenny@ces.clemson.edu>
6530
6531	* tests/testsuite.at (AT_CHECK): Don't miss an exit value of 0 because
6532	it was double-quoted.
6533	* src/Makefile.am (YACC): Use --warnings=all,error so that Bison's own
6534	grammar is maintained with Bison's highest standards.
6535	* src/getargs.c: Fix some typos in Doxygen comments.
6536
65372006-11-10  Joel E. Denny  <jdenny@ces.clemson.edu>
6538
6539	Fix memory leaks in scanners generated by at least Flex 2.5.9 and
6540	later.  Reported by Paul Eggert in
6541	<http://lists.gnu.org/archive/html/bison-patches/2006-11/msg00014.html>.
6542	* src/flex-scanner.h (yylex_destroy): Define for Flex before 2.5.9.
6543	* src/scan-code.l (translate_action): Don't bother invoking
6544	yy_delete_buffer (YY_CURRENT_BUFFER) before creating the first buffer.
6545	(code_scanner_free): Instead of invoking
6546	yy_delete_buffer (YY_CURRENT_BUFFER) directly, invoke yylex_destroy,
6547	which frees more.
6548	* src/scan-gram.l (gram_scanner_free): Likewise.
6549	* src/scan-skel.l (scan_skel): Likewise.
6550
65512006-11-09  Joel E. Denny  <jdenny@ces.clemson.edu>
6552
6553	* src/files.c (tr): Change return type to void.
6554	* src/muscle_tab.c (muscle_insert): Free storage in case muscle_grow
6555	has been called previously for the same key.
6556	(muscle_find): Return storage instead of value so that
6557	--enable-gcc-warnings doesn't produce warnings that the return discards
6558	const.  aver that the value and storage are the same since storage
6559	could potentially be NULL when value is not.
6560	* tests/testsuite.at (AT_CHECK): Treat an unspecified exit value the
6561	same as 0.
6562
65632006-11-08  Paul Eggert  <eggert@cs.ucla.edu>
6564
6565	* bootstrap.conf (excluded_files): Exclude m4/codeset.m4 (undoing
6566	the earlier change today), m4/intl.m4, m4/intldir.m4.  This gives
6567	us a slightly cleaner distribution, and also works.
6568	* m4/.cvsignore: Add inline.m4, wint_t.m4 to accommodate recent
6569	gnulib changes.
6570
65712006-11-08  Joel E. Denny  <jdenny@ces.clemson.edu>
6572	and Paul Eggert  <eggert@cs.ucla.edu>
6573
6574	Don't let Bison leak memory except when it complains.
6575	* src/files.h (parser_file_name, spec_verbose_file, spec_graph_file):
6576	(spec_defines_file, dir_prefix): Now char *, not const char *,
6577	since they are freed.
6578	* src/files.c: Likewise.
6579	(all_but_ext, all_but_tab_ext, src_extension, header_extension):
6580	Likewise.
6581	(tr): Now operates in-place.  All uses changed.
6582	(compute_exts_from_gf, compute_exts_from_src): Don't leak temporary
6583	values.
6584	(compute_file_name_parts, compute_output_file_names): Don't store
6585	read-only data in variables that will be freed.
6586	(compute_output_file_names): Free all_but_ext, all_but_tab_ext,
6587	src_extension, and header_extension.
6588	(output_file_names_free): New public function to free
6589	spec_verbose_file, spec_graph_file, spec_defines_file,
6590	parser_file_name, and dir_prefix.
6591	* src/getargs.c (getargs): Don't store read-only data in variables that
6592	will be freed.
6593	* src/main.c (main): Invoke output_file_names_free, code_scanner_free
6594	(which previously existed but was unused), and quotearg_free.
6595	* src/muscle_tab.h (muscle_insert): value arg is now a `char const *'.
6596	* src/muscle_tab.c: Likewise.
6597	(muscle_entry): Make the value char const *,
6598	and add a new storage member that is char * and can be freed.
6599	(muscle_entry_free): New private function.
6600	(muscle_init): Use it instead of free.
6601	(muscle_insert, muscle_grow): Update and use new storage member.
6602	(muscle_code_grow): Free the string passed to muscle_grow
6603	since it's not needed anymore.
6604	* src/parse-gram.y (%union): Make `chars' member a `char const *', and
6605	add a new `char *code' member.
6606	("{...}"): Declare semantic type as code.
6607	* src/scan-code.h (translate_rule_action):
6608	(translate_symbol_action, translate_code, translate_action): Return
6609	`char const *' rather than `char *' since external code should not free
6610	these strings.
6611	* src/scan-code.l: Likewise.
6612	* src/scan-gram.l (<SC_BRACED_CODE>): Use val->code for BRACED_CODE,
6613	which is "{...}" in the parser.
6614	* tests/Makefile.am (maintainer-check-valgrind): Set
6615	VALGRIND_OPTS='--leak-check=full --show-reacheable=yes' before invoking
6616	Valgrind.
6617	* tests/calc.at (_AT_DATA_CALC_Y): fclose the FILE* so Valgrind doesn't
6618	complain.
6619	* tests/testsuite.at (AT_CHECK): Redefine so that running Bison and
6620	expecting a non-zero exit status sets --leak-check=summary and
6621	--show-reachable=no for Valgrind.  Bison unabashedly leaks memory in
6622	this case, and we don't want to hear about it.
6623
66242006-11-08  Paul Eggert  <eggert@cs.ucla.edu>
6625
6626	* bootstrap (runtime-po/Makevars): Derive from po/Makevars
6627	instead of from the template, to simplify configuration a bit.
6628	* bootstrap.conf (excluded_files): Don't exclude m4/codeset.m4
6629	and m4/wint_t.m4, as they are needed with the latest gnulib.
6630
66312006-10-31  Joel E. Denny  <jdenny@ces.clemson.edu>
6632
6633	Disable unset/unused mid-rule value warnings by default, and recognize
6634	--warnings=midrule-values to enable them.  Discussed starting at
6635	<http://lists.gnu.org/archive/html/help-bison/2006-10/msg00030.html>.
6636	* NEWS (2.3a+): Mention.
6637	* src/getargs.c, src/getargs.h (warnings_args, warnings_types, enum
6638	warnings): Add entry for midrule-values subargument.
6639	* src/reader.c (symbol_should_be_used): Don't return true just because
6640	the value is a set/used mid-rule value unless
6641	--warnings=midrule-values was specified.
6642	* tests/input.at (Unused values, Unused values before symbol
6643	declarations): Run tests with and without --warnings=midrule-values.
6644
6645	* src/reader.c (check_and_convert_grammar): Use symbol_list_free rather
6646	than LIST_FREE directly.
6647
66482006-10-31  Joel E. Denny  <jdenny@ces.clemson.edu>
6649
6650	Finish implementing --warnings=error, which should not be implied by
6651	--warnings=all (or by its synonyms -W and --warnings without
6652	subarguments).
6653	* src/complain.c (set_warning_issued): New function to report that
6654	warnings are being treated as errors and to record an error if so.
6655	Invoke...
6656	(warn_at, warn): ... here.
6657	* src/getargs.c (warnings_args, warnings_types): Reorder so that
6658	"error - warnings are errors" does not appear above "all - all of the
6659	above".
6660	(getargs): For -W and --warnings without subarguments, don't let
6661	FLAGS_ARGMATCH set warnings_error in warnings_flag.
6662	* src/getargs.h (enum warnings): Unset warnings_error in warnings_all.
6663
66642006-10-31  Joel E. Denny  <jdenny@ces.clemson.edu>
6665
6666	* src/getargs.c (flags_argmatch): Don't cause segmentation fault for
6667	empty subargument list.  For example: `bison  --warnings=  parser.y'.
6668
66692006-10-21  Joel E. Denny  <jdenny@ces.clemson.edu>
6670
6671	* data/push.c, data/yacc.c: Make sure there's a newline at the end of
6672	the parser header file so that gcc doesn't warn.
6673
66742006-10-21  Joel E. Denny  <jdenny@ces.clemson.edu>
6675
6676	Split the default %destructor/%printer into two kinds: <*> and <!>.
6677	Discussed starting at
6678	<http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00060.html>.
6679	* NEWS (2.3a+): Mention.
6680	* doc/bison.texinfo (Freeing Discarded Symbols): Document this and the
6681	previous change today related to mid-rules.
6682	(Table of Symbols): Remove %symbol-default and add <*> and <!>.
6683	* src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): Remove.
6684	(TYPE_TAG_ANY): Add as <*>.
6685	(TYPE_TAG_NONE): Add as <!>.
6686	(generic_symlist_item): Remove RHS for %symbol-default and add RHS's
6687	for <*> and <!>.
6688	* src/scan-gram.l (PERCENT_SYMBOL_DEFAULT): Remove.
6689	(TYPE_TAG_ANY, TYPE_TAG_NONE): Add.
6690	* src/symlist.c (symbol_list_default_new): Split into tagged and
6691	tagless versions.
6692	(symbol_list_destructor_set, symbol_list_printer_set): Split
6693	SYMLIST_DEFAULT case into SYMLIST_DEFAULT_TAGGED and
6694	SYMLIST_DEFAULT_TAGLESS.
6695	* src/symlist.h: Update symbol_list_default*_new prototypes.
6696	(symbol_list.content_type): Split enum value SYMLIST_DEFAULT into
6697	SYMLIST_DEFAULT_TAGGED and SYMLIST_DEFAULT_TAGLESS.
6698	* src/symtab.c (default_destructor, default_destructor_location,
6699	default_printer, default_printer_location): Split each into tagged and
6700	tagless versions.
6701	(symbol_destructor_get, symbol_destructor_location_get,
6702	symbol_printer_get, symbol_printer_location_get): Implement tagged
6703	default and tagless default cases.
6704	(default_destructor_set, default_printer_set): Split each into tagged
6705	and tagless versions.
6706	* src/symtab.h: Update prototypes.
6707	* tests/actions.at (Default %printer and %destructor): Rename to...
6708	(Default tagless %printer and %destructor): ... this, and extend.
6709	(Per-type %printer and %destructor): Rename to...
6710	(Default tagged and per-type %printer and %destructor): ... this, and
6711	extend.
6712	(Default %printer and %destructor for user-defined end token): Extend.
6713	(Default %printer and %destructor are not for error or $undefined):
6714	Update.
6715	(Default %printer and %destructor are not for $accept): Update.
6716	(Default %printer and %destructor for mid-rule values): Extend.
6717	* tests/input.at (Default %printer and %destructor redeclared): Extend.
6718	(Unused values with default %destructor): Extend.
6719
67202006-10-21  Joel E. Denny  <jdenny@ces.clemson.edu>
6721
6722	Don't apply the default %destructor/%printer to an unreferenced midrule
6723	value.  Mentioned at
6724	<http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00104.html>.
6725	* src/symtab.c (dummy_symbol_get): Name all dummy symbols initially
6726	like $@n instead of just @n so that the default %destructor/%printer
6727	logic doesn't see them as user-defined symbols.
6728	(symbol_is_dummy): Check for both forms of the name.
6729	* src/reader.c (packgram): Remove the `$' from each midrule symbol
6730	name for which the midrule value is referenced in any action.
6731	* tests/actions.at (Default %printer and %destructor for mid-rule
6732	values): New test.
6733	* tests/regression.at (Rule Line Numbers, Web2c Report): Update output
6734	for change to dummy symbol names.
6735
67362006-10-20  Joel E. Denny  <jdenny@ces.clemson.edu>
6737
6738	Warn about unset midrule $$ if the corresponding $n is used.
6739	* src/reader.c (symbol_should_be_used): Check midrule parent rule for
6740	$n usage.
6741	(packgram): Before invoking grammar_rule_check on any rule, make sure
6742	all actions have already been scanned in order to set `used' flags.
6743	Otherwise, checking that a midrule's $$ is set will not always work
6744	properly because the midrule check must forward-reference the midrule's
6745	parent rule.
6746	* tests/input.at (AT_CHECK_UNUSED_VALUES): Extend to check the new
6747	warning.
6748
67492006-10-20  Joel E. Denny  <jdenny@ces.clemson.edu>
6750
6751	More improvements to the documentation of the prologue alternatives:
6752	* NEWS (2.3a+): Mention the new `Prologue Alternatives' section in the
6753	Bison manual.
6754	* doc/bison.texinfo (Prologue Alternatives): Correct some errors.  Add
6755	some text to clarify the relative importance of the new directives and
6756	to show how these directives may be viewed as code labels.
6757
67582006-10-16  Joel E. Denny  <jdenny@ces.clemson.edu>
6759
6760	Similar to the recently removed %before-header, add %code-top as the
6761	alternative to the pre-prologue.  Mentioned at
6762	<http://lists.gnu.org/archive/html/bison-patches/2006-10/msg00063.html>.
6763	Also, let the prologue alternatives appear in the grammar section.
6764	* src/parse-gram.y (PERCENT_CODE_TOP): New token.
6765	(prologue_declaration): Move the existing prologue alternatives to...
6766	(grammar_declaration): ... here and add %code-top.
6767	* src/scan-gram.l (PERCENT_CODE_TOP): New token.
6768
6769	Clean up and extend documentation for the prologue alternatives.
6770	* NEWS (2.3a+): Describe prologue alternatives.
6771	* doc/bison.texinfo (Prologue): Move discussion of prologue
6772	alternatives to...
6773	(Prologue Alternatives): ... this new section, and extend it to discuss
6774	all 4 directives in detail.
6775	(Table of Symbols): Clean up discussion of prologue alternatives and
6776	add %code-top.
6777
67782006-10-16  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
6779
6780	DJGPP specific issues.
6781
6782	* djgpp/config.bat: config.hin has been moved to lib. Adjust
6783	config.bat accordingly.
6784	* djgpp/config.sed: Adjust config.sed for the use of autoconf 2.60.
6785	* djgpp/config.site: Likewise.
6786
67872006-10-16  Paolo Bonzini  <bonzini@gnu.org>
6788
6789	Replace %*-header with %provides, %requires, %code.  See discussion at
6790	http://lists.gnu.org/archive/html/bison-patches/2006-10/msg00002.html
6791
6792	* data/bison.m4 (b4_user_requires, b4_user_provides): New.
6793	(b4_user_start_header): Remove.
6794	* data/glr.c: Use new macros instead of b4_*start_header
6795	and b4_*end_header.
6796	* data/glr.cc: Likewise.
6797	* data/lalr1.cc: Likewise.
6798	* data/push.c: Likewise.
6799	* data/yacc.c: Likewise.
6800
6801	* doc/bison.texinfo: Remove %before-header, rename
6802	%{start,end,after}-header to %requires, %provides, %code.
6803
6804	* src/parse-gram.y: Likewise (also rename token names accordingly).
6805	* src/scan-gram.l: Likewise.
6806	* tests/actions.at: Likewise.
6807
68082006-10-14  Paul Eggert  <eggert@cs.ucla.edu>
6809
6810	* lib/Makefile.am (AM_CFLAGS): Remove $(WERROR_CFLAGS).
6811	Problem reported by Joel E. Denny.
6812
68132006-10-14  Jim Meyering  <jim@meyering.net>
6814
6815	(Sync from coreutils.)
6816	Work also when the working directory (with e.g. coreutils sources)
6817	is version controlled with git, rather than CVS.
6818	* bootstrap (CVS_only_file): Test for the existence of README-cvs,
6819	rather than CVS.
6820	In messages and comments, say e.g., "checked-out sources",
6821	rather than "CVS sources".
6822	(version_controlled_file): New function.  Work for git as well as
6823	for CVS.  Don't use grep's -q option.
6824	(slurp): Call it here, in place of CVS-specific code.
6825
68262006-10-14  Joel E. Denny  <jdenny@ces.clemson.edu>
6827
6828	Fix testsuite for ./configure --enable-gcc-warnings:
6829	* configure.ac (gcc-warnings): Move -Wall before -Wno-sign-compare.
6830	Otherwise, gcc 4.1.0 (at least) warns about sign comparisons in
6831	__AT_CHECK_PRINTER_AND_DESTRUCTOR in tests/actions.at.
6832	* test/input.at (Torturing the Scanner): #include <stdlib.h> for abort.
6833	* test/regression.at (Diagnostic that expects two alternatives):
6834	Likewise.
6835
68362006-10-12  Paul Eggert  <eggert@cs.ucla.edu>
6837
6838	* bootstrap.conf (gnulib_modules): Add config-h.
6839	* djgpp/subpipe.c: Include <config.h> unconditionally; don't
6840	worry about HAVE_CONFIG_H.
6841	* lib/abitset.c: Likewise.
6842	* lib/bitset.c: Likewise.
6843	* lib/bitset_stats.c: Likewise.
6844	* lib/bitsetv-print.c: Likewise.
6845	* lib/bitsetv.c: Likewise.
6846	* lib/ebitset.c: Likewise.
6847	* lib/get-errno.c: Likewise.
6848	* lib/lbitset.c: Likewise.
6849	* lib/subpipe.c: Likewise.
6850	* lib/timevar.c: Likewise.
6851	* lib/vbitset.c: Likewise.
6852	* lib/bitset.c: Include "bitset.h" first, to test interface.
6853	* lib/bitset_stats.c: Include "bitset_stats.h" first.
6854	* lib/bitsetv-print.c: Include "bitsetv-print.h" first.
6855	* lib/bitsetv.c: Include "bitsetv.h" first.
6856	* lib/get-errno.c: Include "get-errno.h" first.
6857	* m4/.cvsignore: Add config-h.m4.
6858	* tests/actions.at (Default %printer and %destructor for ...):
6859	Adjust expected line numbers in output to reflect removal of #if
6860	HAVE_CONFIG_H lines.
6861	* tests/glr-regression.at (Missed %merge type warnings when ...):
6862	Likewise.
6863	* tests/regression.at (Braced code in declaration in rules section):
6864	Likewise.
6865	* tests/atlocal.in (CPPFLAGS): Don't define HAVE_CONFIG_H.
6866	* tests/local.at (AT_DATA_GRAMMAR_PROLOGUE):
6867	Include <config.h> unconditionally.
6868
6869	* bootstrap: Sync from coreutils, as follows:
6870
6871	2006-10-11  Paul Eggert  <eggert@cs.ucla.edu>
6872
6873	* bootstrap (symlink_to_gnulib): Fix bug: the dot_dots shell
6874	variable was sometimes used without being initialized.  This
6875	messed up the installation of the INSTALL file in some cases.
6876
6877	2006-10-09  Paul Eggert  <eggert@cs.ucla.edu>
6878
6879	* bootstrap (usage, main program, symlink_to_gnulib): Add option
6880	--copy.  Inspired by a suggestion from Bruno Haible.
6881
6882	2006-10-03  Jim Meyering  <jim@meyering.net>
6883
6884	* bootstrap: Undo last change to this file, since now gnulib-tool
6885	sticks with the automake default in generating dependencies.
6886
68872006-10-12  Paul Eggert  <eggert@cs.ucla.edu>
6888
6889	* configure.ac: Use AC_PROG_CC_STDC; this is more modern than
6890	the old AC_PROG_CC / AM_PROG_CC_STDC combination.
6891
6892	* doc/bison.1: Add copyright notice.
6893
6894	* data/glr.c: Don't include <stdarg.h>; not used.
6895
6896	* NEWS: The -g and --graph options now output graphs in Graphviz
6897	DOT format, not VCG format.
6898	* doc/bison.1: Likewise.
6899	* doc/bison.texinfo (Understanding, Bison Options): Likewise.
6900	* THANKS: Add Satya Kiran Popuri, who proposed the initial version
6901	of this change in
6902	<http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00158.html>.
6903	* TODO: Remove Graphviz entry.
6904	* src/Makefile.am (bison_SOURCES): Add graphviz.c and graphviz.h;
6905	remove vcg.c, vcg.h, vcg_defaults.h.
6906	* src/vcg.c, src/vcg.h, src/vcg_defaults.h: Remove.
6907	* src/graphviz.c, src/graphviz.h: New files.
6908	* src/files.c (compute_output_file_names): Output .dot, not .vcg.
6909	* src/files.h: Make comment more generic.
6910	* src/main.c (main): Likewise.
6911	* src/print_graph.h: Likewise.
6912	* src/getargs.c (usage): Make usage description more generic.
6913	* src/print_graph.c: Include graphviz.h rather than vcg.h.
6914	(static_graph, fgraph): Remove.  All uses changed to pass
6915	arguments instead of sharing a static var.
6916	(print_core, print_actions, print_state, print_graph):
6917	Output graphviz format rather than VCG format.
6918	* tests/.cvsignore: Remove *.vcg; add *.dot.
6919	* tests/output.at: Expect *.dot files, not *.vcg files.
6920
6921	* data/Makefile.am (dist_pkgdata_DATA): Add bison.m4; this
6922	accommodates the 2006-10-08 change.
6923
69242006-10-11  Bob Rossi  <bob@brasko.net>
6925
6926	* data/push.c (yypushparse, yypvarsinit, yypvars): Wrap in b4_push_if.
6927	(b4_yyssa, b4_yyerror_range): New macros.
6928	(struct yypvars): Remove yyssa_ptr and yyerror_range_ptr fields.
6929	(yypvarsinit): Remove init of removed fields.
6930	(yypushparse): Remove use of removed fields; use new macros instead.
6931
69322006-10-11  Paul Eggert  <eggert@cs.ucla.edu>
6933
6934	* data/push.c (yypushparse): Fix memory leak if yymsg is malloced
6935	in a push parser.  Reindent slightly to match yacc.c better.
6936
69372006-10-11  Bob Rossi  <bob@brasko.net>
6938
6939	* data/push.c (struct yypvars): Remove yymsgbuf, yymsgbuf_ptr, yymsg,
6940	yymsg_alloc fields.
6941	(yypvarsinit, yypushparse): Remove init of removed fields.
6942	(yypushparse): Use yymsgbuf instead of yymsgbuf_ptr.
6943
69442006-10-09  Paul Eggert  <eggert@cs.ucla.edu>
6945
6946	* THANKS: Add Paolo Bonzini and Bob Rossi.
6947
69482006-10-08  Paolo Bonzini  <bonzini@gnu.org>
6949
6950	* data/c.m4 (b4_copyright, b4_epilogue, b4_location_initial_column,
6951	b4_location_initial_line, p4_parse_param, b4_ints_in, b4_flag_if,
6952	b4_define_flag_if and uses, b4_basename, b4_syncline, b4_user_code,
6953	b4_define_user_cde and uses): Remove.
6954	(b4_comment, b4_prefix, b4_sync_start): New.
6955	* data/bison.m4: New file, with most of the content removed from c.m4.
6956	* src/muscle_tab.h: Use "do {...} while(0)" throughout.
6957	* src/output.c (output_skeleton): Pass bison.m4.
6958	(prepare): Pass glr_flag and nondeterministic_flag.  Pass prefix
6959	only if specified.
6960
69612006-10-05  Paul Eggert  <eggert@cs.ucla.edu>
6962
6963	Fix test failure reported by Tom Lane in
6964	<http://lists.gnu.org/archive/html/bug-bison/2006-10/msg00000.html>
6965	and try to make such failures easier to catch in the future.
6966	* data/glr.c (YYTRANSLATE): Don't check for nonpositive arg;
6967	that's now the caller's responsibility.
6968	(yyprocessOneStack, yyrecoverSyntaxError, yyparse):
6969	Set yychar = YYEOF if it's negative.
6970	* tests/actions.at (yylex): Abort if asked to read past EOF.
6971	* tests/conflicts.at (yylex): Likewise.
6972	* tests/cxx-type.at (yylex): Likewise.
6973	* tests/glr-regression.at (yylex): Likewise.
6974	* tests/input.at (yylex): Likewise.
6975	* tests/regression.at (yylex): Likewise.
6976	* tests/torture.at (yylex): Likewise.
6977
69782006-10-01  Paul Eggert  <eggert@cs.ucla.edu>
6979
6980	Fix problems with translating English-language diagnostics.
6981	* bootstrap: Fix bug introduced in recent bootstrap changes, with
6982	respect to bison-runtime pot generation.  The YY_ stuff
6983	wasn't being captured.
6984	* bootstrap.conf (XGETTEXT_OPTIONS_RUNTIME): New var.
6985	* po/POTFILES.in: Add src/location.c, src/scan-code.l.
6986	* runtime-po/POTFILES.in: Add data/push.c.
6987
69882006-09-29  Paul Eggert  <eggert@cs.ucla.edu>
6989
6990	Merge bootstrap changes from coreutils.
6991
6992	2006-09-28  Jim Meyering  <jim@meyering.net>
6993
6994	Automatically generated dependencies are important even
6995	when all of the sources in a directory come from gnulib.
6996	* bootstrap (gnulib_tool): Remove the "no-dependencies" automake
6997	option that gnulib-tool adds to what becomes our lib/gnulib.mk.
6998
6999	2006-09-23  Jim Meyering  <jim@meyering.net>
7000
7001	* bootstrap (gnulib_tool_options): Add "--local-dir gl".
7002
7003	2006-09-20  Paul Eggert  <eggert@cs.ucla.edu>
7004
7005	* bootstrap: Add support for --force.
7006	(usage): New function.  Describe usage less tersely.
7007	(CVS_only_file): New var.
7008
70092006-09-21  Paul Eggert  <eggert@cs.ucla.edu>
7010
7011	* data/push.c (YYPUSH_MORE): Make it an enum instead.
7012	(yypushparse): Use YYPUSH_MORE instead of the mystery constant.
7013	Adjust white space and comments to match GNU style better.
7014
70152006-09-20  Bob Rossi  <bob@brasko.net>
7016
7017	* data/push.c (yyresult_get): Remove function.
7018	(YYPUSH_MORE): Add #define.
7019	(yypushparse): Modify return value.
7020
70212006-09-20  Paul Eggert  <eggert@cs.ucla.edu>
7022
7023	* stamp-h.in: Remove; no longer needed.
7024	* .cvsignore: Replace autom4te.cache and config.cache with *.cache.
7025	Remove config.h, config.hin, intl (no longer created).
7026	* lib/.cvsignore: Add config.h, config.hin, configmake.h, inttypes.h,
7027	stamp-h1.
7028
7029	Sync bootstrap from coreutils, as follows:
7030
7031	2006-09-18  Paul Eggert  <eggert@cs.ucla.edu>
7032
7033	* bootstrap (symlink_to_gnulib): New function.
7034	(cp_mark_as_generated): Use it, to prefer symlinks-to-gnulib
7035	to copies-of-gnulib.
7036	(cp_mark_as_generated, slurp, gnulib_files):
7037	Avoid making a copy if it's the same as the old version.
7038	(gnulib_files): Add support for this variable (used by Bison).
7039
70402006-09-20  Paul Eggert  <eggert@cs.ucla.edu>
7041
7042	* src/getargs.c (usage): Rework to use conventions similar to
7043	coreutils, to make translation a bit easier and the code a bit
7044	smaller.  Problem reported by Tim Van Holder.
7045
70462006-09-15  Paul Eggert  <eggert@cs.ucla.edu>
7047
7048	Use some of gnulib's new modules, taken from coreutils.
7049
7050	* bootstrap: Sync from coreutils, except add support for gnulib_files.
7051	* bootstrap.conf: New file.
7052	(gnulib_modules): Add configmake, inttypes, unistd.
7053	(XGETTEXT_OPTIONS): Add complain, complain_at,
7054	fatal, fatal_at, warn, warn_at, unexpected_end.
7055	* configure.ac (AC_CONFIG_HEADERS): config.h is now in lib, not here.
7056	(gl_USE_SYSTEM_EXTENSIONS): Remove; gl_EARLY now does this.
7057	(gl_EARLY): Add.
7058	(AM_STDBOOL_H): Remove; gl_INIT now dows this.
7059	(gl_INIT): Add
7060	(GNULIB_AUTOCONF_SNIPPET): Remove.
7061	(AM_GNU_GETTEXT): Add; require formatstring macros since that's
7062	the pickiest.
7063	* lib/.cvsignore: Add inttypes_.h.
7064	* lib/Makefile.am: Include gnulib.mk first so we can append to it.
7065	(AM_CFLAGS): Add WERROR_CFLAGS, to be more like coreutils.
7066	(BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES): Remove
7067	no-longer-necessary initializations.
7068	(lib_SOURCES): Remove, replacing by libbison_a_SOURCES.
7069	* lib/subpipe.c: Include <unistd.h> unconditionally, now that we
7070	use the unistd module.
7071	* src/system.h: Likewise.
7072	* m4/.cvsignore: Remove *_gl.m4, gnulib.m4, inttypes_h.m4, uintmax_t.m4,
7073	ulonglong.m4.  Add gettext.m4, gnulib-cache.m4, gnulib-comp.m4,
7074	gnulib-tool.m4, inttypes-h.m4, inttypes-pri.m4, inttypes.m4.
7075	* src/Makefile.am (DEFS): Remove, since configmake does this for us.
7076	(AM_CPPFLAGS): Remove -I../lib, since Automake does that for us.
7077	* src/system.h: Include inttypes.h unconditionally, now that we
7078	use the inttypes module.  Don't bother to include stdint.h, since
7079	inttypes.h now does that for us.
7080	(LOCALEDIR): Remove, now that we use the configmake module.
7081	* src/getargs.c: Include configmake.h.
7082	* src/main.c: Likewise.
7083	* src/output.c: Likewise.
7084	* tests/atlocal.in (CPPFLAGS): Include from $abs_top_builddir/lib,
7085	not from $abs_top_builddir, since config.h moved.
7086
7087
7088	Port to GCC 2.95.  First two problems reported by Michael Deutschmann in
7089	<http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00018.html>.
7090
7091	* src/parse-gram.y (symbol_declaration): Don't put statements
7092	before declarations; it's not portable to C89.
7093	* src/scan-code.l (handle_action_at): Likewise.
7094
7095	* src/scan-code.l: Always initialize braces_level; the old code
7096	left it uninitialized and therefore had undefined behavior.
7097
7098	Don't attempt to redefine 'assert', since it runs afoul of
7099	systems where standard headers (mistakenly) include <assert.h>.
7100	Instead, define and use our own alternative, called 'aver'.
7101	* src/reader.c: Don't include assert.h, since we no longer
7102	use assert.
7103	* src/scan-code.l: Likewise.
7104	* src/system.h (assert): Remove, replacing with....
7105	(aver): New function, taking a bool arg.  All uses changed.
7106	* src/tables.c (pack_vector): Ensure that aver arg is bool,
7107	not merely an integer.
7108
71092006-09-15  Bob Rossi  <bob@brasko.net>
7110
7111	Add support for push parsing.  Based on the original work of
7112	Odd Arild Olsen <oao@fibula.no>.
7113	* data/Makefile.am (dist_pkgdata_DATA): Add push.c.
7114	* data/c.m4 (YYPUSH): New.
7115	(b4_push_if): New macro.  Use it instead of #ifdef YYPUSH.
7116	* data/push.c: New file.
7117	* src/getargs.c (push_parser): New var.
7118	* src/getargs.h (push_parser): New declaration.
7119	* src/output.c (prepare): Add macro insertion of `push_flag'.
7120	* src/parse-gram.y (PERCENT_PUSH_PARSER): New token.
7121	(prologue_declaration): Parse %push-parser.
7122	* src/scan-gram.l: Scan new PERCENT_PUSH_PARSER token.
7123	* tests/calc.at (_AT_CHECK_CALC_ERROR): Add "Return" and "Now" to
7124	list of removed lines from the traces observed.
7125	(AT_CHECK_CALC_LALR): Added push parser tests.
7126
71272006-09-13  Paul Eggert  <eggert@cs.ucla.edu>
7128
7129	* NEWS: Version 2.3a.
7130	* configure.ac (AC_INIT): Likewise.
7131
7132	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Remove
7133	"#define YYSTYPE int" that caused "make maintainer-check" to fail
7134	due to header ordering dependencies.  I don't know why the #define
7135	was there.
7136
7137	Fix glr.cc and lalr1.cc's use of YYDEBUG so that there's zero
7138	runtime cost when YYDEBUG is not defined, and so that some tests
7139	that used to fail now work.  Problem and initial suggestion by
7140	Paolo Bonzini.
7141	* data/c++.m4 (b4_parse_param_cons): Omit leading ','.
7142	* data/glr.cc (b4_parser_class_name):
7143	Initialize yycdebug_ only if YYDEBUG.  Also, initialize yydebug_.
7144	(debug_level, set_debug_level): Affect yydebug_, not ::yydebug.
7145	(yydebug_) [YYDEBUG]: New member.
7146	(yycdebug_): Now defined only if YYDEBUG.
7147	* data/lalr1.cc (yydebug_, yycdebug_): Now defined only if YYDEBUG.
7148	(YYCDEBUG) [!YYDEBUG]: Don't use yydebug_ and yycdebug_.
7149	(b4_parser_class_name): Initialize yydebug_ and yycdebug_ only
7150	if YYYDEBUG.
7151	(debug_stream, set_debug_stream, debug_level, set_debug_level):
7152	Define only if YYDEBUG.
7153	* tests/calc.at (_AT_DATA_CALC_Y) [!YYDEBUG]: Omit call to
7154	set_debug_level.
7155	* tests/regression.at (_AT_DATA_DANCER_Y) [!YYDEBUG]: Likewise.
7156	* tests/calc.at (AT_CHECK_CALC_GLR_CC): Uncomment calls to
7157	AT_CHECK_CALC_GLR_CC that are working now.
7158
71592006-09-12  Paul Eggert  <eggert@cs.ucla.edu>
7160
7161	* data/glr.cc (YYERROR_VERBOSE, YYTOKEN_TABLE): Remove.
7162	We don't need them in glr.cc, and glr.c defines them.
7163	Defining YYERROR_VERBOSE to 0 here breaks glr.c, since glr.c
7164	assumes that defining it to anything is the same as defining
7165	it to 1.  Problem reported by Paolo Bonzini.
7166
71672006-09-12  Paolo Bonzini  <bonzini@gnu.org>  (tiny change)
7168
7169	* data/c.m4 (b4_null, b4_case): Define.
7170	* src/output.c (prepare_symbols): Use b4_null.
7171	(user_actions_output): Use b4_case.
7172
71732006-09-11  Paul Eggert  <eggert@cs.ucla.edu>
7174
7175	* data/glr.c (b4_shared_declarations): Put start-header first,
7176	before any #includes that we generate, so that feature-test
7177	macros work.  Problem reported by Michael Deutschmann in
7178	<http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00004.html>.
7179	* data/lalr1.cc: Likewise.
7180	* doc/bison.texinfo (Prologue): Document that feature-test macros
7181	should be defined before any Bison declarations.
7182	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Put defns
7183	that depend on location.hh after, not before, Bison decls, since
7184	we now include location.hh after the first user prologue.
7185
7186	* doc/bison.texinfo (Calc++ Parser): Fix memory leak reported by
7187	Sander Brandenburg in
7188	<http://lists.gnu.org/archive/html/bug-bison/2006-09/msg00002.html>.
7189	Also, fix minor white space and comment issues.
7190	(Prologue): Mention that it's better to define feature-test macros
7191	before Bison declarations.  Problem reported by Michael Deutschmann.
7192
7193	* README-cvs: Fix typo: "&" should be "&&".  Problem reported
7194	by Jim Meyering.
7195	* m4/.cvsignore: Add argmatch.m4.  Remove obstack.m4, strerror_r.m4.
7196	This adjusts to recent gnulib changes.
7197
71982006-09-04  Joel E. Denny  <jdenny@ces.clemson.edu>
7199
7200	Finish implementation of per-type %destructor/%printer.  Discussed
7201	starting at
7202	<http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html>
7203	and
7204	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>.
7205	* NEWS (2.3+): Add a description of this feature to the default
7206	%destructor/%printer description.
7207	* doc/bison.texinfo (Freeing Discarded Symbols): Likewise.
7208	* src/symlist.c (symbol_list_destructor_set, symbol_list_printer_set):
7209	Invoke semantic_type_destructor_set or semantic_type_printer_set when a
7210	list node contains a semantic type.
7211	* src/symtab.c, src/symtab.h: Extend with a table that associates
7212	semantic types with their %destructor's and %printer's.
7213	(semantic_type_from_uniqstr, semantic_type_get,
7214	semantic_type_destructor_set, semantic_type_printer_set): New functions
7215	composing the public interface of that table.
7216	(symbol_destructor_get, symbol_destructor_location_get,
7217	symbol_printer_get, symbol_printer_location_get):  If there's no
7218	per-symbol %destructor/%printer, look up the per-type before trying
7219	the default.
7220	* tests/actions.at (Per-type %printer and %destructor): New test case.
7221	* tests/input.at (Default %printer and %destructor redeclared):
7222	Extend to check that multiple occurrences of %symbol-default in a
7223	single %destructor/%printer declaration is an error.
7224	(Per-type %printer and %destructor redeclared, Unused values with
7225	per-type %destructor): New test cases.
7226
72272006-09-04  Joel E. Denny  <jdenny@ces.clemson.edu>
7228
7229	Require default %destructor/%printer to be declared using
7230	%symbol-default instead of an empty symbol list, and start working on
7231	new per-type %destructor/%printer.  Discussed at
7232	<http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00007.html>.
7233	* NEWS (2.3+): Add %symbol-default to example.
7234	* bison.texinfo (Freeing Discarded Symbols): Likewise.
7235	(Table of Symbols): Add entry for %symbol-default.
7236	* src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): New token.
7237	(generic_symlist, generic_symlist_item): New nonterminals for creating
7238	a list in which each item is a symbol, semantic type, or
7239	%symbol-default.
7240	(grammar_declaration): Use generic_symlist in %destructor and %printer
7241	declarations instead of symbols.1 or an empty list.
7242	(symbol_declaration, precedence_declaration, symbols.1): Update actions
7243	for changes to symbol_list.
7244	* src/reader.c: Update for changes to symbol_list.
7245	* src/scan-code.l: Likewise.
7246	* src/scan-gram.l: Scan new PERCENT_SYMBOL_DEFAULT token.
7247	* src/symlist.c, src/symlist.h: Extend such that a list node may
7248	represent a semantic type or a %symbol-default in addition to just an
7249	ordinary symbol.  Add switched functions for setting %destructor's and
7250	%printer's.
7251	* tests/actions.at, tests/input.at: Add %symbol-default to all default
7252	%destructor/%printer declarations.
7253
72542006-08-23  Joel E. Denny  <jdenny@ces.clemson.edu>
7255
7256	Whether the default %destructor/%printer applies to a particular symbol
7257	isn't a question of whether the user *declares* that symbol (in %token,
7258	for example).  It's a question of whether the user by any means
7259	*defines* the symbol at all (by simply using a char token, for
7260	example).  $end is defined by Bison whereas any other token with token
7261	number 0 is defined by the user.  The error token is always defined by
7262	Bison regardless of whether the user declares it with %token, but we
7263	may one day let the user define error as a nonterminal instead.
7264	* NEWS (2.3+): Say "user-defined" instead of "user-declared".
7265	* doc/bison.texinfo (Freeing Discarded Symbols): Likewise, and document
7266	the meaning of "user-defined".
7267	* tests/actions.at (Default %printer and %destructor for user-declared
7268	end token): Rename to...
7269	(Default %printer and %destructor for user-defined end token): ...
7270	this.
7271
7272	* src/symtab.c (symbol_destructor_get, symbol_printer_get): In the
7273	computation of whether to apply the default, don't maintain a list of
7274	every Bison-defined symbol.  Instead, just check for a first character
7275	of '$', which a user symbol cannot have, and check for the error token.
7276
72772006-08-21  Joel E. Denny  <jdenny@ces.clemson.edu>
7278
7279	Don't apply the default %destructor or %printer to the error token,
7280	$undefined, or $accept.  This change fits the general rule that the
7281	default %destructor and %printer are only for user-declared symbols,
7282	and it solves several difficulties that are described in the new test
7283	cases listed below.
7284	* src/symtab.c (symbol_destructor_get, symbol_printer_get): Implement.
7285	* tests/actions.at (Default %printer and %destructor are not for error
7286	or $undefined, Default %printer and %destructor are not for $accept):
7287	New test cases.
7288
72892006-08-19  Joel E. Denny  <jdenny@ces.clemson.edu>
7290
7291	Allow %start after the first rule.
7292	* src/reader.c (grammar_current_rule_begin): Don't set the start symbol
7293	when parsing the first rule.
7294	(check_and_convert_grammar): Search for it here after all grammar
7295	declarations have been parsed.  Skip midrules, which have dummy LHS
7296	nonterminals.
7297	* src/symtab.c (symbol_is_dummy): New function.
7298	* src/symtab.h (symbol_is_dummy): Declare it.
7299	* tests/input.at (%start after first rule): New test.
7300
73012006-08-18  Joel E. Denny  <jdenny@ces.clemson.edu>
7302
7303	Redo some of the previous commit: add back the ability to use
7304	non-aliased/undeclared string literals since it might be useful to
7305	those declaring %token-table.
7306	* src/reader.c (check_and_convert_grammar): Undo changes in previous
7307	commit: don't worry about complaints from symbols_pack.
7308	* src/symtab.c (symbol_new, symbol_class_set,
7309	symbol_check_alias_consistency): Undo changes in previous commit: count
7310	each string literal as a new symbol and token, assign it a symbol
7311	number, and don't complain about non-aliased string literals.
7312	(symbols_pack): Since symbol_make_alias still does not decrement symbol
7313	and token counts but does still set aliased tokens to the same number,
7314	symbol_pack_processor now leaves empty slots in the symbols array.
7315	Remove those slots.
7316	* tests/regression.at (Undeclared string literal): Remove test case
7317	added in previous commit since non-aliased string literals are allowed
7318	again.
7319	(Characters Escapes, Web2c Actions): Undo changes in previous commit:
7320	remove unnecessary string literal declarations.
7321	* tests/sets.at (Firsts): Likewise.
7322
73232006-08-18  Joel E. Denny  <jdenny@ces.clemson.edu>
7324
7325	Don't allow an undeclared string literal, but allow a string literal to
7326	be used before its declaration.
7327	* src/reader.c (check_and_convert_grammar): Don't invoke packgram if
7328	symbols_pack complained.
7329	* src/symtab.c (symbol_new): Don't count a string literal as a new
7330	symbol.
7331	(symbol_class_set): Don't count a string literal as a new token, and
7332	don't assign it a symbol number since symbol_make_alias does that.
7333	(symbol_make_alias): It's not necessary to decrement the symbol and
7334	token counts anymore.  Don't assume that an alias declaration occurs
7335	before any uses of the identifier or string, and thus don't assert that
7336	one of them has the highest symbol number so far.
7337	(symbol_check_alias_consistency): Complain if there's a string literal
7338	that wasn't declared as an alias.
7339	(symbols_pack): Bail if symbol_check_alias_consistency failed since
7340	symbol_pack asserts that every token has been assigned a symbol number
7341	although undeclared string literals have not.
7342	* tests/regression.at (String alias declared after use, Undeclared
7343	string literal): New test cases.
7344	(Characters Escapes, Web2c Actions): Declare string literals as
7345	aliases.
7346	* tests/sets.at (Firsts): Likewise.
7347
73482006-08-14  Joel E. Denny  <jdenny@ces.clemson.edu>
7349
7350	In the grammar scanner, STRING_FINISH unclosed constructs and return
7351	them to the parser in order to improve error messages.
7352	* src/scan-gram.l (SC_ESCAPED_STRING, SC_ESCAPED_CHARACTER,
7353	SC_BRACED_CODE, SC_PROLOGUE): Implement.
7354	* tests/input.at (Unclosed constructs): New test case.
7355	* tests/regression.at (Invalid inputs): Update now that unclosed %{ is
7356	seen.
7357
7358	* src/scan-gram.h, src/scan-gram.l (gram_last_braced_code_loc): Remove
7359	unused global.
7360
73612006-08-13  Joel E. Denny  <jdenny@ces.clemson.edu>
7362
7363	Handle string aliases for character tokens correctly.
7364	* src/symtab.c (symbol_user_token_number_set): If the token has an
7365	alias, check and set its alias's user token number instead of its own,
7366	which is set to indicate the alias.  Previously, every occurrence of
7367	the character token in the grammar overwrote that alias indicator with
7368	the character code.
7369	* tests/input.at (String aliases for character tokens): New test.
7370
73712006-08-12  Joel E. Denny  <jdenny@ces.clemson.edu>
7372
7373	* src/parse-gram.y: Add `%expect 0' so we don't overlook conflicts.
7374
73752006-08-11  Paul Eggert  <eggert@cs.ucla.edu>
7376
7377	* bootstrap: Put in need-ngettext argument to AM_GNU_GETTEXT,
7378	to prevent failures when building on older platforms.
7379	Check for autopoint failure.
7380	Set XGETTEXT_OPTIONS to values that check for C format strings,
7381	so that translators are warned about them (this also helps
7382	prevent core dumps).
7383
7384	* lib/subpipe.c (create_subpipe): Use new gnulib pipe_safer
7385	function, since it simplifies our code a bit.
7386
7387	* configure.ac (AC_ARG_ENABLE): Use -Wextra -Wno-sign-compare
7388	rather than -W, so we don't get bogus warnings about sign comparisons.
7389	Add -Wpointer-arith, since that warning is useful (it reports code
7390	that does not conform to C89 and that some compilers reject).
7391	* data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c: Undo latest change,
7392	since it's no longer needed.
7393
73942006-08-10  Joel E. Denny  <jdenny@ces.clemson.edu>
7395
7396	Clean up scanners a bit.
7397	* src/flex-scanner.h (FLEX_NO_OBSTACK): New macro that blocks obstack
7398	definitions so gcc won't warn when obstack_for_string is unused.
7399	* src/scan-code.l: config.h and system.h are already #include'd by
7400	scan-code-c.c, so get rid of them here.
7401	* src/scan-gram.l: Likewise.
7402	* src/scan-skel.l: Likewise, and use flex-scanner.h without obstack
7403	definitions rather than duplicating the rest of it.
7404	* src/scan-gram-c.c, scan-skel-c.c: #include "system.h".
7405
74062006-08-09  Joel E. Denny  <jdenny@ces.clemson.edu>
7407
7408	Suppress signed/unsigned comparison warnings for yycheck.
7409	* data/c.m4 (b4_safest_int_type): New macro.
7410	* data/glr.c, data/lalr1.cc: Wherever you compare yycheck[i] against
7411	a signed int type, cast it to b4_safest_int_type first.
7412	* data/yacc.c: Likewise.
7413	(b4_safest_int_type): Overwrite the one from c.m4 since b4_int_type is
7414	also overwritten.
7415
74162006-08-09  Ralf Wildenhues <Ralf.Wildenhues@gmx.de>  (tiny change)
7417
7418	* doc/bison.texinfo: Fix some typos.
7419
74202006-08-02  Paul Eggert  <eggert@cs.ucla.edu>
7421
7422	* m4/.cvsignore: Add inttypes_h.m4,lib-ld.m4, lib-prefix.m4,
7423	po.m4, stdint_h.m4, uintmax_t.m4, ulonglong.m4, warning.m4.
7424
7425	* bootstrap (gnulib_tool): Stop using --assume-autoconf;
7426	the latest gnulib does this a different way.
7427	(get_translations): Sharuzzaman Ahmat Raslan reported that the ms
7428	translation was patched, so stop omitting it.
7429
74302006-07-29  Joel E. Denny  <jdenny@ces.clemson.edu>
7431
7432	Enable declaration of default %printer/%destructor.  Make the parser
7433	use these for all user-declared grammar symbols for which the user does
7434	not declare a specific %printer/%destructor.  Thus, the parser uses it
7435	for token 0 if the user declares it but not if Bison generates it as
7436	$end.  Discussed starting at
7437	<http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html>,
7438	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>,
7439	and
7440	<http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00019.html>.
7441	* NEWS (2.3+): Mention.
7442	* doc/bison.texinfo (Actions in Mid-Rule): It's no longer impossible to
7443	declare a %destructor for a mid-rule's semantic value.  It's just
7444	impossible to declare one specific to it.
7445	(Freeing Discarded Symbols): Mention that @$ can be used in %destructor
7446	code.  Describe default %destructor form.
7447	* src/parse-gram.y (grammar_declaration): Parse default
7448	%printer/%destructor declarations.
7449	* src/output.c (symbol_destructors_output): Use symbol_destructor_get
7450	and symbol_destructor_location_get rather than accessing the destructor
7451	and destructor_location members of struct symbol.
7452	(symbol_printers_output): Likewise but for %printer's.
7453	* src/reader.c (symbol_should_be_used): Likewise but for %destructor's
7454	again.
7455	* src/symtab.c (default_destructor, default_destructor_location,
7456	default_printer, default_printer_location): New static global
7457	variables to record the default %destructor and %printer.
7458	(symbol_destructor_get, symbol_destructor_location_get,
7459	symbol_printer_get, symbol_printer_location_get): New functions to
7460	compute the appropriate %destructor and %printer for a symbol.
7461	(default_destructor_set, default_printer_set): New functions to set the
7462	default %destructor and %printer.
7463	* src/symtab.h: Prototype all those new functions.
7464	* tests/actions.at (Default %printer and %destructor): New test to
7465	check that the right %printer and %destructor are called, that they're
7466	not called for $end, and that $$ and @$ work correctly.
7467	(Default %printer and %destructor for user-declared end token): New
7468	test to check that the default %printer and %destructor are called for
7469	a user-declared end token.
7470	* tests/input.at (Default %printer and %destructor redeclared, Unused
7471	values with default %destructor): New tests to check related grammar
7472	warnings and errors.
7473
74742006-07-29  Joel E. Denny  <jdenny@ces.clemson.edu>
7475
7476	Clean up handling of %destructor for the end token (token 0).
7477	Discussed starting at
7478	<http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00019.html>
7479	and
7480	<http://lists.gnu.org/archive/html/help-bison/2006-07/msg00013.html>.
7481
7482	Make the skeletons consistent in how they pop the end token and invoke
7483	its %destructor.
7484	* data/glr.c (yyrecoverSyntaxError, yyparse): Don't pop the start
7485	state, which has token number 0, since this would invoke the
7486	%destructor for the end token.
7487	* data/lalr1.cc (yy::parser::parse): Don't check for the final state
7488	until after shifting the end token, or else it won't be popped.
7489	* data/yacc.c (yyparse): Likewise.
7490
7491	* data/glr.c (yyparse): Clear the lookahead after shifting it even when
7492	it's the end token.  Upon termination, destroy an unshifted lookahead
7493	even when it's the end token.
7494	* data/lalr1.cc (yy::parser::parse): Likewise.
7495	* data/yacc.c (yyparse): Likewise.
7496
7497	* src/reader.c (packgram): Don't check rule 0.  This suppresses unused
7498	value warnings for the end token when the user gives the end token a
7499	%destructor.
7500
7501	* tests/actions.at (Printers and Destructors): Test all the above.
7502
75032006-07-24  Paul Eggert  <eggert@cs.ucla.edu>
7504
7505	Update to latest gnulib and gettext versions.
7506	* bootstrap (gnulib-modules): Remove hard-locale, stdio-safer.
7507	Add fopen-safer.
7508	(gnulib_files): Add m4/warning.m4.  Don't worry about files
7509	overwritten by autopoint.
7510	Replace gt_INTL_SUBDIR_CORE with an empty body in m4/gettext_gl.m4.
7511	Suppress "id", "ms", "tr" translations for now, since gettext 0.15
7512	rejects them.
7513	Don't use autoreconf; instead, invoke autopoint etc. by hand,
7514	so that we can remove the intl files at a better time.
7515	(intl_files_to_remove): Remove aclocal.m4, since it gets
7516	rebuilt anyway.  Remove m4/inttypes_h.m4, m4/inttypes.m4,
7517	m4/isc-posix.m4, m4/lib-ld.m4, m4/lib-prefix.m4, m4/po.m4,
7518	m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4.
7519	Add m4/inttypes-h.m4, m4/lock.m4, m4/visibility.m4.
7520	Remove datarootdir hack; no longer needed.
7521	* configure.ac: Use gl_WARNING_CFLAGS rather than BISON_WARNING.
7522	(AM_GNU_GETTEXT_VERSION): Bump from 0.12 to 0.15.
7523	* lib/.cvsignore: Remove hard-locale.c, hard-locale.h, strdup.c,
7524	strdup.h.
7525	* m4/.cvsignore: Remove hard-locale.m4, strdup.m4.
7526	* m4/warning.m4: Remove from CVS, since we now use gnulib's version.
7527
75282006-07-20  Paul Eggert  <eggert@cs.ucla.edu>
7529
7530	* bootstrap: Adjust to today's change to gnulib-tool by invoking
7531	it with --assume-autoconf='latest-stable'.
7532
75332006-07-13  Joel E. Denny  <jdenny@ces.clemson.edu>
7534
7535	* src/parse-gram.y (grammar_declaration): Don't confuse Doxygen (at
7536	least 1.4.7 and 1.4.4) by putting a #line between `typedef union
7537	YYSTYPE' and `{'.
7538	* src/muscle_tab.h (muscle_grow): Replace the header comments with
7539	those from muscle_tab.c since the old ones are misleading.
7540
75412006-07-13  Akim Demaille  <akim@epita.fr>
7542
7543	Support %define "KEY" {VALUE}.
7544	* src/scan-code.h, src/scan-code.l (translate_action)
7545	(translate_rule_action, translate_symbol_action, translate_code):
7546	Return char *, not const char *.
7547	* src/parse-gram.y (declaration): Rename as...
7548	(prologue_declaration): this.
7549	(string_content): Remove this nonterminal, use STRING.
7550	(braceless, content, content.opt): New nonterminal.
7551	Use them.
7552	(%define): Now accept content.opt, i.e., accept also BRACED_CODE
7553	as value.
7554	* src/scan-gram.l (getargs.h): Don't include it.
7555
75562006-07-12  Paul Eggert  <eggert@cs.ucla.edu>
7557
7558	* data/lalr1.cc (YYCDEBUG): Use 'if (yydebug_) (*yycdebug_)'
7559	rather than a for-loop that declares a local bool variable.  This
7560	should work around a compatibility problem with a Cray x1e C++
7561	compiler reported by Hung Nguyen in
7562	<http://lists.gnu.org/archive/html/help-bison/2006-07/msg00022.html>.
7563	The for-loop was introduced in the 2004-11-17 change but I don't
7564	know why it was needed.
7565
75662006-07-12  Akim Demaille  <akim@epita.fr>
7567
7568	* data/c.m4: Comment changes.
7569
75702006-07-10  Akim Demaille  <akim@lrde.epita.fr>
7571
7572	* src/complain.c (error_message, ERROR_MESSAGE): New.
7573	To factor...
7574	(fatal_at, fatal, warn_at, warn, complain_at, complain): these.
7575	* src/complain.h, src/complain.c (warning_issued): Remove, unused.
7576
75772006-07-09  Paul Eggert  <eggert@cs.ucla.edu>
7578
7579	* NEWS: Instead of %union, you can define and use your own union type
7580	YYSTYPE if your grammar contains at least one <type> tag.
7581	Your YYSTYPE need not be a macro; it can be a typedef.
7582	* doc/bison.texinfo (Value Type, Multiple Types, Location Type):
7583	(Union Decl, Decl Summary): Document this.
7584	* data/glr.c (YYSTYPE): Implement this.
7585	* data/glr.cc (YYSTYPE): Likewise.
7586	* data/lalr1.cc (YYSTYPE): Likewise.
7587	* data/yacc.c (YYSTYPE): Likewise.
7588	* src/output.c (prepare): Output tag_seen_flag.
7589	* src/parse-gram.y (declaration, grammar_declaration):
7590	Use 'union_seen' rather than 'typed' to determine whether
7591	%union has been seen, since grammars can now be typed without
7592	%union.
7593	(symbol_declaration, type.opt, symbol_def):
7594	Keep track of whether a tag has been seen.
7595	* src/reader.c (union_seen, tag_seen): New vars.
7596	(typed): remove.
7597	* src/reader.h (union_seen, tag_seen, typed): Likewise.
7598	* src/scan-code.l (untyped_var_seen): New variable.
7599	(handle_action_dollar): Adjust to above changes.
7600	(handle_action_dollar, handle_action_at):
7601	Improve overflow checking for outlandish numbers.
7602	* tests/input.at (AT_CHECK_UNUSED_VALUES): Redo test to
7603	avoid new diagnostics generated by above changes.
7604	* tests/regression.at (YYSTYPE typedef): Add test to check
7605	for type tags without %union.
7606
7607	* src/symlist.c (symbol_list_length): Return int, not unsigned
7608	int, since callers expect int.  This may need to get revisited
7609	once we have proper integer overflow checking.
7610
7611	* src/scan-gram.h (gram_scanner_cursor): Remove decl, since this
7612	object is now static.
7613
7614	* src/getargs.c (flags_argmatch): Return void, not int,
7615	to pacify ./configure --enable-gcc-warnings.
7616
7617	* src/flex-scanner.h (STRING_FREE): Don't use FLEX_PREFIX (last_string)
7618	since last_string is already defined to FLEX_PREFIX (last_string).
7619
76202006-07-09  Akim Demaille  <akim@lrde.epita.fr>
7621
7622	Implement --warnings/-W.
7623	* src/getargs.c (report_argmatch, trace_argmatch): Remove,
7624	replaced by...
7625	(flags_argmatch, FLAGS_ARGMATCH): this new function and macro.
7626	Adjust callers.
7627	* src/getargs.h, src/getargs.c (warnings, warnings_flags)
7628	(warnings_args, warnings_types): New.
7629	(getargs, short_options, long_options): Accept -W/--warnings.
7630	Sort the options by alphabetical order, upper case letter right
7631	before its lower case.
7632
76332006-07-09  Joel E. Denny  <jdenny@ces.clemson.edu>
7634
7635	Change %merge result type clash warnings to errors.  Discussed at
7636	<http://lists.gnu.org/archive/html/bison-patches/2006-07/msg00026.html>.
7637	* src/reader.c (record_merge_function_type): Use complain_at.
7638	* tests/glr-regression.at (Missed %merge type warnings when LHS type is
7639	declared later): Update test case results.
7640
76412006-07-09  Akim Demaille  <akim@lrde.epita.fr>
7642
7643	* src/getargs.h, src/getargs.c: Swap --report and --trace handling
7644	to be in alphabetical order.
7645	(trace_args): Spelling fixes.
7646
76472006-07-09  Paul Eggert  <eggert@cs.ucla.edu>
7648
7649	* data/yacc.c (YYID, yy_stack_print): Prefix local vars with "yy"
7650	so they don't collide with user-defined macros.
7651	(yy_stack_print): Don't assume that yytype_int16 promotes to int;
7652	this was never guaranteed, and now that we're using gnulib stdint,
7653	which defines int_fast16_t to long int, the problem is exposed.
7654
76552006-07-08  Paul Eggert  <eggert@cs.ucla.edu>
7656
7657	* data/c.m4 (b4_basename): Simplify a bit, since we don't
7658	need the full POSIX semantics (and weren't implementing them
7659	anyway).
7660
7661	Adjust to Autoconf 2.60 and today's gnulib.
7662	* bootstrap (gnulib_modules): Add stdint.
7663	Remove special case for m4/onceonly_2_57.m4, since gnulib-tool
7664	no longer copies it.
7665	(intl_files_to_remove): Remove m4/longlong.m4 and m4/wchar_t.m4,
7666	since stdint needs the former and wcwidth (which is now required
7667	by mbswidth) needs the latter.
7668	Append 'datarootdir = @datarootdir@' to po/Makefile.in.in, to
7669	work around a compatibility glitch between gettext 0.14.6 and
7670	Autoconf 2.60.
7671	* configure.ac (AC_PREREQ): Require Autoconf 2.60.
7672	Do not check for uintptr_t, since new stdint module does the right
7673	thing.
7674	* lib/.cvsignore: Remove alloca.c, alloca.h, alloca_.h.
7675	Add stdint.h, stdint_.h, wcwidth.h.
7676	* m4/.cvsignore: Remove alloca.m4, onceonly.m4.
7677	Add absolute-header.m4, double-slash-root.m4, longlong.m4,
7678	stdint.m4, wchar_t.m4, wcwidth.m4.
7679	* src/files.c: Include <dirname.h> and <stdio-safer.h> in the
7680	usual order for ../lib/*.h files.
7681	(file_name_split): Use last_component, not base_name, to adjust
7682	to gnulib changes.
7683	* src/parse-gram.h: Include <strverscmp.h> in the usual order
7684	for ../lib/*.h files.
7685	(YYTYPE_INT16, YYTYPE_INT8, YYTYPE_UINT16, YYTYPE_UINT8):
7686	Define unconditionally, since we now assume the stdint module.
7687	* src/scan-skel.l: Include <dirname.h>.
7688	(BASE_QPUTS): Use last_component, not base_name.
7689	* src/system.h: Include <unlocked-io.h> in the usual order
7690	for ../lib/*.h files.  Include <stdint.h> unconditionally,
7691	since we now use the stdint module.
7692	(uintptr_t): Declare if UINTPTR_MAX is not defined, not
7693	HAVE_UINTPTR_T, since we now use the stdint module.
7694	(base_name): Remove decl, since files now include <dirname.h>
7695	to get the decl.
7696
76972006-07-08  Akim Demaille  <akim@lrde.epita.fr>
7698
7699	* data/c.m4 (b4_location_initial_column, b4_location_initial_line):
7700	New, default to 1.
7701	* data/yacc.c, data/glr.c, data/location.cc: Use them.
7702	* NEWS, doc/bison.texinfo: The initial column and line are 1 by
7703	default.
7704	* tests/calc.at: Adjust.
7705
77062006-07-08  Akim Demaille  <akim@lrde.epita.fr>
7707
7708	* data/c.m4 (b4_basename): New.
7709	(b4_syncline): Also output the location of its invocation (from
7710	the skeleton).
7711	(b4_user_action, b4_define_user_action, b4_user_actions)
7712	(b4_user_initial_action, b4_user_post_prologue,	b4_user_start_header)
7713	(b4_user_stype): New.
7714	* data/yacc.c, data/glr.c, data/lalr1.cc, data/glr.cc: Use them.
7715
77162006-07-07  Joel E. Denny  <jdenny@ces.clemson.edu>
7717
7718	In the grammar file, the first column is 1 not 0 on the first line as
7719	on every other line.
7720	* src/parse-gram.y (%initial-action): Initialize @$ correctly.
7721	* tests/input.at (Torturing the Scanner): Update output.
7722
7723	* src/scan-gram.l (scanner_cursor): Declare it static.
7724
77252006-07-07  Joel E. Denny  <jdenny@ces.clemson.edu>
7726
7727	In warnings, say "previous declaration" rather than "first
7728	declaration".
7729	* src/symtab.c (redeclaration): Do that here.
7730	* src/reader.c (record_merge_function_type): In the case of a result
7731	type clash, report the previous declaration rather than the very first
7732	one in the grammar file.
7733	* tests/glr-regression.at (Missed %merge type warnings when LHS type is
7734	declared later): Add a third declaration to check this behavior.
7735	* tests/input.at (Incompatible Aliases): Update output.
7736
77372006-06-27  Akim Demaille  <akim@epita.fr>
7738
7739	* doc/Doxyfile.in: New.
7740	* doc/Makefile.am: Use it.
7741	* src/lalr.h, src/symtab.h: Initial doxygenation.
7742
77432006-06-26  Joel E. Denny  <jdenny@ces.clemson.edu>
7744
7745	Don't miss %merge result type warnings just because the LHS types are
7746	declared after the %merge.  This continues the effort of the previous
7747	patch.
7748	* src/reader.c (get_merge_function): Don't set the merger type yet.
7749	(record_merge_function_type): New function for setting the merger type
7750	and checking for clashes.
7751	(grammar_current_rule_merge_set): Set the location of the %merge for
7752	the current rule.
7753	(packgram): Invoke record_merge_function_type for each rule now that
7754	all symbol type declarations have been parsed.
7755	* src/reader.h (merger_list.type_declaration_location): New member
7756	storing the location of the first %merge from which the type for this
7757	merging function was derived.
7758	* src/symlist.h (symbol_list.merger_declaration_location): New member
7759	storing the location of a rule's %merge, if any.
7760	* tests/glr-regression.at (Missed %merge type warnings when LHS type is
7761	declared later): New test to catch the error fixed by the above patch.
7762
77632006-06-26  Joel E. Denny  <jdenny@ces.clemson.edu>
7764
7765	Get action warnings (grammar_rule_check) right even when symbol
7766	declarations appear after the rules.  Discussed at
7767	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00108.html>
7768	and
7769	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00151.html>.
7770	Don't mistake the type of $$ in a midrule to be that of its parent
7771	rule's $$.
7772	* src/reader.c (grammar_current_rule_end): Don't invoke
7773	grammar_rule_check yet since not all symbol declarations may have been
7774	parsed yet.
7775	(grammar_midrule_action): Likewise.
7776	Don't record whether the midrule's $$ has been used yet since actions
7777	haven't been translated yet.
7778	Record the midrule's parent rule and its RHS index within the parent
7779	rule.
7780	(grammar_current_rule_action_append): Don't translate the action yet
7781	since not all symbol declarations may have been parsed yet and, thus,
7782	warnings about types for $$, $n, @$, and @n can't be reported yet.
7783	(packgram): Translate the action and invoke grammar_rule_check now that
7784	all symbol declarations have been parsed.
7785	* src/scan-code.l (handle_action_dollar): Now that this is invoked
7786	after parsing the entire grammar file, the symbol list here in the case
7787	of a midrule is actually the midrule's empty RHS, so reference its
7788	parent rule's RHS where necessary.
7789	On the other hand, now that you can already know it's a midrule, you
7790	aren't forced to think $$ has the same type as its parent rule's $$.
7791	(handle_action_at): In the case of a midrule, reference the parent rule
7792	where necessary.
7793	* src/symlist.c (symbol_list_new): Initialize new midrule-related
7794	members.
7795	(symbol_list_length): Now that this is invoked after all rules have
7796	been parsed, a NULL symbol (rather than a NULL symbol list node)
7797	terminates a rule.  symbol_list_print already does this correctly.
7798	* src/symlist.h (symbol_list.midrule_parent_rule,
7799	symbol_list.midrule_parent_rhs_index): New members so that midrules can
7800	remember their relationships with their parents.
7801	* tests/input.at (Type Clashes): Extend to catch the midrule $$ error
7802	fixed by the above patch.
7803	(_AT_UNUSED_VALUES_DECLARATIONS, AT_CHECK_UNUSED_VALUES): New m4 macros
7804	implementing...
7805	(Unused values): ... this old test case and...
7806	(Unused values before symbol declarations): ... this new test case.
7807	This one is the same as `Unused values' except that all symbol
7808	declarations appear after the rules in order to catch the rest of the
7809	errors fixed by the above patch.
7810
78112006-06-26  Joel E. Denny  <jdenny@ces.clemson.edu>
7812
7813	More cleanup.
7814	* src/reader.c (current_rule): Declare it static since it's no longer
7815	used outside this file.
7816	(grammar_current_rule_action_append): Remove redundant arguments from
7817	translate_rule_action invocation.
7818	* src/reader.h (current_rule): Remove this unused extern.
7819	* src/scan-code.h (translate_rule_action): Remove redundant arguments.
7820	* src/scan-code.l (translate_rule_action): Likewise.
7821
78222006-06-25  Joel E. Denny  <jdenny@ces.clemson.edu>
7823
7824	Clean up yesterday's patch.
7825	* parse-gram.y (rhs): Move grammar_midrule_action invocation from here
7826	to...
7827	* src/reader.c (grammar_current_rule_action_append): ... here for
7828	consistency with grammar_current_rule_symbol_append.
7829	* tests/regression.at (Braced code in declaration in rules section):
7830	Make yyerror and yylex static as usual.
7831
78322006-06-24  Joel E. Denny  <jdenny@ces.clemson.edu>
7833
7834	Fix bug that mistakes braced code in a declaration in the rules section
7835	to be a rule action.  Mentioned at
7836	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00105.html>.
7837	* src/scan-gram.l: Move midrule action detection from the start of the
7838	scanning of any braced code to...
7839	* src/parse-gram.y (rhs): ... the parsing of braced code as a rule
7840	action.  For readability, use $2 and @2 rather than the equivalent
7841	global variables.
7842	* tests/regression.at (Braced code in declaration in rules section):
7843	New test to catch the error fixed by the above patch.
7844
7845	Work on code readability some.
7846	* src/scan-code.l (current_rule): Get rid of this misleading and
7847	redundant declaration: it's actually extern'ed in reader.h.
7848	(YY_DECL, code_lex, handle_action_dollar, handle_action_at,
7849	translate_action): Add a rule argument and use it instead of the global
7850	current_rule.
7851	(translate_rule_action): This already receives current_rule through an
7852	argument, so pass it on to translate_action instead of assigning
7853	current_rule to current_rule.
7854	(translate_symbol_action, translate_code): Pass rule = NULL to
7855	translate_action.
7856
78572006-06-23  Joel E. Denny  <jdenny@ces.clemson.edu>
7858
7859	Rename %before-definitions to %start-header and %after-definitions to
7860	%end-header.  Don't use these declarations to separate pre-prologue
7861	blocks from post-prologue blocks.  Add new order-independent
7862	declarations %before-header and %after-header as alternatives to the
7863	traditional Yacc pre-prologue and post-prologue blocks.  Discussed at
7864	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00110.html>.
7865	* NEWS (2.3+): Update for these changes.
7866	* data/glr.c (b4_before_definitions): Update to...
7867	(b4_start_header): ... this.
7868	(b4_after_definitions): Update to...
7869	(b4_end_header): ... this.
7870	* data/glr.cc: Likewise.
7871	* data/lalr1.cc: Likewise.
7872	* data/yacc.c: Likewise.
7873	* doc/bison.texinfo (The prologue): Update names, and replace remaining
7874	prologue blocks with %*-header declarations.
7875	(Calc++ Parser): Likewise.
7876	(Decl Summary): Update names.
7877	(Table of Symbols): Update description.
7878	* src/parse-gram.y (PERCENT_AFTER_DEFINITIONS): Update to...
7879	(PERCENT_END_HEADER): ... this.
7880	(PERCENT_BEFORE_DEFINITIONS): Update to...
7881	(PERCENT_START_HEADER): ... this.
7882	(PERCENT_AFTER_HEADER, PERCENT_BEFORE_HEADER): New tokens.
7883	(declaration): Update token names and m4 macro names.
7884	When parsing %end-header and %start-header, invoke translate_code
7885	before muscle_code_grow, and no longer set global booleans to remember
7886	whether these declarations have been seen.
7887	Parse new %after-header and %before-header.
7888	* src/reader.c (before_definitions, after_definitions): Remove.
7889	(prologue_augment): Accept a new bool argument to specify whether to
7890	augment the pre-prologue or post-prologue.
7891	* src/reader.h (before_definitions, after_definitions): Remove these
7892	extern's.
7893	(prologue_augment): Add new bool argument.
7894	* src/scan-gram.l (PERCENT_AFTER_DEFINITIONS): Update to...
7895	(PERCENT_END_HEADER): ... this.
7896	(PERCENT_BEFORE_DEFINITIONS): Update to...
7897	(PERCENT_START_HEADER): ... this.
7898	(PERCENT_AFTER_HEADER, PERCENT_BEFORE_HEADER): New tokens.
7899	* tests/actions.at (Printers and Destructors): Update names.
7900
79012006-06-22  Joel E. Denny  <jdenny@ces.clemson.edu>
7902
7903	Add comparison operators for C++ location classes.  Discussed at
7904	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00092.html>.
7905	* data/c++.m4 (b4_define_location_comparison): New boolean %define
7906	declaration indicating whether filename_type has an operator==.  If
7907	filename_type is `std::string', it defaults to `1', `0' otherwise.
7908	* data/location.cc: Iff b4_define_location_comparison is `1', add
7909	operator== and operator!= for class position and for class location.
7910
7911	Some minor fixes.
7912	* src/scan-action.l: Remove unused file.
7913	* src/symtab.c (symbol_printer_set): Use printer_location not
7914	destructor_location.
7915	* src/symtab.h (struct symbol): Replace incorrect source comment for
7916	printer members.
7917	* tests/input.at (Incompatible Aliases): Update output with correct
7918	printer location.
7919
79202006-06-20  Joel E. Denny  <jdenny@ces.clemson.edu>
7921
7922	Don't put the pre-prologue in the header file.  For the yacc.c code
7923	file and the glr.c header and code files, move the pre-prologue before
7924	the token definitions.  Add new %before-definitions and
7925	%after-definitions to declare code that will go in both the header file
7926	and code file.  Discussed at
7927	<http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00000.html>,
7928	<http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00016.html>,
7929	and
7930	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00055.html>.
7931	* NEWS (2.3+): Describe these changes.
7932	* data/glr.c (b4_pre_prologue): Move from within to before...
7933	(b4_shared_declarations): ... this.
7934	Add new b4_before_definitions before b4_token_enums.
7935	Add new b4_after_definitions at the end.
7936	* data/glr.cc (b4_pre_prologue): Replace with...
7937	(b4_before_definitions): ... this in the header file.
7938	(b4_after_definitions): New near the end of the header file.
7939	* data/lalr1.cc (b4_pre_prologue): Move from the header file to the
7940	code file right before including the header file.
7941	(b4_before_definitions): New in the previous position of
7942	b4_pre_prologue in the header file.
7943	(b4_after_definitions): New near the end of the header file.
7944	* data/yacc.c: Clean up some m4 quoting especially in the header file.
7945	(b4_token_enums_defines): In the code file, move to right before
7946	YYSTYPE for consistency with the header file.
7947	(b4_before_definitions): New right before b4_token_enums_defines in
7948	both the header and code file.
7949	(b4_after_definitions): New right after YYLTYPE and yylloc in both the
7950	header and code file.
7951	* doc/bison.texinfo (Prologue): Show use of %before-definitions instead
7952	of prologues for %union dependencies.
7953	(Decl Summary): In %defines description, mention the effect of
7954	%before-definitions and %after-definitions on the header file.
7955	(Calc++ Parser): Forward declare driver in a %before-definitions rather
7956	than in the pre-prologue so that make check succeeds.
7957	(Table of Symbols): Add entries for %before-definitions and
7958	%after-definitions.
7959	* src/parse-gram.y (PERCENT_BEFORE_DEFINITIONS): New token for
7960	%before-definitions.
7961	(PERCENT_AFTER_DEFINITIONS): New token for %after-definitions.
7962	(declaration): Parse those declarations and append to
7963	b4_before_definitions and b4_after_definitions, respectively.
7964	* src/reader.c (before_definitions, after_definitions): New bools to
7965	track whether those declarations have been seen.
7966	(prologue_augment): Add to the post-prologue if %union,
7967	%before-definitions, or %after-definitions has been seen.
7968	* src/reader.h (before_definitions, after_definitions): New extern's.
7969	* src/scan-gram.l: Scan the new declarations.
7970	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Place the second
7971	prologue block in a %before-definitions or a %after-definitions based
7972	on whether the %union is declared.
7973	* tests/regression.at (Early token definitions with --yacc, Early token
7974	definitions without --yacc): Move tests for token definitions into the
7975	post-prologue since token names are no longer defined in the
7976	pre-prologue.
7977
79782006-06-20  Akim Demaille  <akim@epita.fr>
7979
7980	* src/symtab.h, src/symtab.c (symbol_from_uniqstr): New.
7981	(symbol_get): Use it.
7982	* src/parse-gram.y: Use it.
7983
79842006-06-19  Joel E. Denny  <jdenny@ces.clemson.edu>
7985
7986	* src/scan-gram.l: Remove unused declaration of last_string_1 so the
7987	build succeeds when configured with --enable-gcc-warnings.
7988
79892006-06-19  Paul Eggert  <eggert@cs.ucla.edu>
7990
7991	* src/parse-gram.y (char_name): New function.
7992	(CHAR, STRING, string_content): For %printer, properly escape.
7993	(ID): Prefer fputs to fprintf.
7994	(id): Reindent to be consistent with other rules.
7995	Properly quote char.
7996
7997	The Translation Project changed its way of publishing translations
7998	to maintainers.  I haven't received any responses to my request
7999	for supporting the old way, or for documenting the new way.  I
8000	have modified 'bootstrap' to use screen scraping
8001	(in this case, HTML scraping).  This is unreliable and inelegant,
8002	but I don't see any better way.  Yuck.
8003	* bootstrap (TP_URL, WGET_COMMAND): New vars.
8004	(get_translations): New function, which uses HTML scraping to
8005	deduce locations of latest translations.
8006	Use this function to grab both bison and bison-runtime .po files.
8007	Don't bother priming the pump for the runtime-po domain any more,
8008	as it's now translated better than bison is.
8009
80102006-06-19  Akim Demaille  <akim@epita.fr>
8011
8012	* src/scan-gram.l: No longer "parse" things after `%union' until
8013	`{'.  Rather, return a single "%union" token.
8014	No longer make symbols: return strings, and leave the conversion
8015	to symbols to the parser.
8016	(SC_PRE_CODE, token_type): Remove.
8017	* src/parse-gram.y (%union): New field `character'.
8018	Sort tokens.
8019	(CHAR): New token.
8020	(ID, ID_COLON): Now that the scanner no longer makes them
8021	identifiers, adjust all uses to invoke symbol_get.
8022	(id_colon): New, wraps the conversion from string to symbol.
8023	(%union): Accept a possible union_name.
8024	(symbol): Now can be a char.
8025	* data/c.m4 (b4_union_name): Leave a default value.
8026	* data/glr.c, data/yacc.c: Use it.
8027
80282006-06-11  Joel E. Denny  <jdenny@ces.clemson.edu>
8029
8030	For associating token numbers with token names for "yacc.c", don't use
8031	#define statements unless `--yacc' is specified; always use enum
8032	yytokentype.  Most important discussions start at:
8033	<http://lists.gnu.org/archive/html/bison-patches/2005-09/msg00053.html>,
8034	<http://lists.gnu.org/archive/html/bison-patches/2005-12/msg00052.html>,
8035	and
8036	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00043.html>.
8037	* NEWS (2.3+): Mention.
8038	* data/c.m4 (b4_yacc_if): New.
8039	(b4_token_enums_defines): Use b4_yacc_if to decide whether to add the
8040	token #define's.
8041	* doc/bison.texinfo (Bison Options): Describe the effect of `--yacc'
8042	on token name definitions.
8043	* src/getargs.c (usage): Capitalize `Yacc' in English.
8044	* src/output.c (prepare): Define b4_yacc_flag.
8045	* tests/regression.at (Early token definitions): Test that tokens names
8046	are defined before the pre-prologue not just before the post-prologue.
8047	Remove this test case and copy to...
8048	(Early token definitions with --yacc): ... this to test #define's.
8049	(Early token definitions without --yacc): ... and this to test enums.
8050
80512006-06-11  Paul Eggert  <eggert@cs.ucla.edu>
8052
8053	* NEWS: Reword the post-2.3 change to not be so optimistic about
8054	removing the old "look-ahead" spelling.
8055	Update previous look-ahead/lookahead change reports.
8056	* REFERENCES: look-ahead -> lookahead (since that's
8057	what he actually wrote).
8058	* doc/refcard.tex: look ahead -> lookahead,
8059	look-ahead -> lookahead
8060
80612006-06-09  Joel E. Denny  <jdenny@ces.clemson.edu>
8062
8063	For consistency, use `lookahead' instead of `look-ahead' or
8064	`look_ahead'.  Discussed starting at
8065	<http://lists.gnu.org/archive/html/bison-patches/2006-01/msg00049.html>
8066	and then at
8067	<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00017.html>.
8068	* NEWS: For the next release, note the change to `--report'.
8069	* TODO, doc/bison.1: Update English.
8070	* doc/bison.texinfo: Update English.
8071	(Understanding Your Parser, Bison Options): Document as
8072	`--report=lookahead' rather than `--report=look-ahead'.
8073	* src/conflicts.c: Update English in comments.
8074	(lookahead_set): Rename from look_ahead_set.
8075	(flush_reduce): Rename argument look_ahead_tokens to lookahead_tokens.
8076	(resolve_sr_conflict): Rename local look_ahead_tokens to
8077	lookahead_tokens, and update other uses.
8078	(flush_shift, set_conflicts, conflicts_solve, count_sr_conflicts,
8079	count_rr_conflicts, conflicts_free): Update uses.
8080	* src/getargs.c (report_args): Move "lookahead" before alternate
8081	spellings.
8082	(report_types): Update uses.
8083	(usage): For `--report' usage description, state `lookahead' spelling
8084	rather than `look-ahead'.
8085	* src/getargs.h (report.report_lookahead_tokens): Rename from
8086	report_look_ahead_tokens.
8087	* src/lalr.c: Update English in comments.
8088	(compute_lookahead_tokens): Rename from compute_look_ahead_tokens.
8089	(state_lookahead_tokens_count): Rename from
8090	state_look_ahead_tokens_count.
8091	Rename local n_look_ahead_tokens to n_lookahead_tokens.
8092	(lookahead_tokens_print): Rename from look_ahead_tokens_print.
8093	Rename local n_look_ahead_tokens to n_lookahead_tokens.
8094	Update other uses.
8095	Update English in output.
8096	(add_lookback_edge, initialize_LA, lalr, lalr_free): Update uses.
8097	* src/print.c: Update English in comments.
8098	(lookahead_set): Rename from look_ahead_set.
8099	(print_reduction): Rename argument lookahead_token from
8100	look_ahead_token.
8101	(print_core, state_default_rule, print_reductions, print_results):
8102	Update uses.
8103	* src/print_graph.c: Update English in comments.
8104	(print_core): Update uses.
8105	* src/state.c: Update English in comments.
8106	(reductions_new): Update uses.
8107	(state_rule_lookahead_tokens_print): Rename from
8108	state_rule_look_ahead_tokens_print, and update other uses.
8109	* src/state.h: Update English in comments.
8110	(reductions.lookahead_tokens): Rename from look_ahead_tokens.
8111	(state_rule_lookahead_tokens_print): Rename from
8112	state_rule_look_ahead_tokens_print.
8113	* src/tables.c: Update English in comments.
8114	(conflict_row, action_row): Update uses.
8115	* tests/glr-regression.at
8116	(Incorrect lookahead during deterministic GLR,
8117	Incorrect lookahead during nondeterministic GLR): Rename
8118	print_look_ahead to print_lookahead.
8119	* tests/torture.at: Update English in comments.
8120	(AT_DATA_LOOKAHEAD_TOKENS_GRAMMAR): Rename from
8121	AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR.
8122	(Many lookahead tokens): Update uses.
8123	* data/glr.c: Update English in comments.
8124	* lalr1.cc: Likewise.
8125	* yacc.c: Likewise.
8126	* src/conflicts.h: Likewise.
8127	* src/lalr.h: Likewise.
8128	* src/main.c: Likewise.
8129	* src/output.c: Likewise.
8130	* src/parse-gram.c: Likewise.
8131	* src/tables.h: Likewise.
8132	* tests/calc.at: Likewise.
8133
81342006-06-08  Joel E. Denny  <jdenny@ces.clemson.edu>
8135
8136	* src/flex-scanner.h (yytext): Remove stray `*/' in #define.
8137
81382006-06-07  Paul Eggert  <eggert@cs.ucla.edu>
8139
8140	* TODO: Add request from Nelson H. F. Beebe to be able to install
8141	Bison without installing the yacc script.
8142
81432006-06-07  Joel E. Denny  <jdenny@ces.clemson.edu>
8144
8145	* src/flex-scanner.h: For the sake of Flex 2.5.4, don't #define yyleng
8146	and yytext if they're already #define'd.
8147	* src/flex-scanner.h, src/location.h: Move #include "system.h" to...
8148	* src/scan-code-c.c: ... here.
8149	* src/scan-code.l, src/scan-gram.l: ... and here.  Also #include
8150	<config.h>.
8151
81522006-06-07  Joel E. Denny  <jdenny@ces.clemson.edu>
8153
8154	Get Bison to build again when configured with --enable-gcc-warnings.
8155	* src/location.c, src/location.h, src/main.c, src/scan-code.l: Add some
8156	missing #include's.
8157	* src/scan-code.l (handle_action_dollar, handle_action_at): Rename
8158	loc argument as it shadows a global.
8159	* src/scan-gram.l: Remove stray comma that prevents boundary_set
8160	invocation.
8161
8162	* src/.cvsignore: Add scan-code.c.
8163
81642006-06-07  Akim Demaille  <akim@epita.fr>
8165
8166	* src/scan-gram.l: Move the "add a trailing ; to actions" code
8167	to...
8168	* src/scan-code.l: here.
8169	* tests/input.at (Torturing the Scanner): Fix another location
8170	error.
8171
81722006-06-07  Akim Demaille  <akim@epita.fr>
8173
8174	* src/Makefile.am (BUILT_SOURCES): Fix the trailing backslash.
8175
81762006-06-06  Akim Demaille  <akim@epita.fr>
8177
8178	Extract the parsing of user actions from the grammar scanner.
8179	As a consequence, the relation between the grammar scanner and
8180	parser is much simpler.  We can also split "composite tokens" back
8181	into simple tokens.
8182	* src/gram.h (ITEM_NUMBER_MAX, RULE_NUMBER_MAX): New.
8183	* src/scan-gram.l (add_column_width, adjust_location): Move to and
8184	rename as...
8185	* src/location.h, src/location.c (add_column_width)
8186	(location_compute): these.
8187	Fix the column count: the initial column is 0.
8188	(location_print): Be robust to ending column being 0.
8189	* src/location.h (boundary_set): New.
8190	* src/main.c: Adjust to scanner_free being renamed as
8191	gram_scanner_free.
8192	* src/output.c: Include scan-code.h.
8193	* src/parse-gram.y: Include scan-gram.h and scan-code.h.
8194	Use boundary_set.
8195	(PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_INITIAL_ACTION)
8196	(PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Remove the {...} part,
8197	which is now, again, a separate token.
8198	Adjust all dependencies.
8199	Wherever actions with $ and @ are used, use translate_code.
8200	(action): Remove this nonterminal which is now useless.
8201	* src/reader.c: Include assert.h, scan-gram.h and scan-code.h.
8202	(grammar_current_rule_action_append): Use translate_code.
8203	(packgram): Bound check ruleno, itemno, and rule_length.
8204	* src/reader.h (gram_in, gram__flex_debug, scanner_cursor)
8205	(last_string, last_braced_code_loc, max_left_semantic_context)
8206	(scanner_initialize, scanner_free, scanner_last_string_free)
8207	(gram_out, gram_lineno, YY_DECL_): Move to...
8208	* src/scan-gram.h: this new file.
8209	(YY_DECL): Rename as...
8210	(GRAM_DECL): this.
8211	* src/scan-code.h, src/scan-code.l, src/scan-code-c.c: New.
8212	* src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
8213	(gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
8214	(gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
8215	Move these declarations, and...
8216	(obstack_for_string, STRING_GROW, STRING_FINISH, STRING_FREE):
8217	these to...
8218	* src/flex-scanner.h: this new file.
8219	* src/scan-gram.l (rule_length, rule_length_overflow)
8220	(increment_rule_length): Remove.
8221	(last_braced_code_loc): Rename as...
8222	(gram_last_braced_code_loc): this.
8223	Adjust to the changes of the parser.
8224	Move all the handling of $ and @ into...
8225	* src/scan-code.l: here.
8226	* src/scan-gram.l (handle_dollar, handle_at): Remove.
8227	(handle_action_dollar, handle_action_at): Move to...
8228	* src/scan-code.l: here.
8229	* src/Makefile.am (bison_SOURCES): Add flex-scanner.h,
8230	scan-code.h, scan-code-c.c, scan-gram.h.
8231	(EXTRA_bison_SOURCES): Add scan-code.l.
8232	(BUILT_SOURCES): Add scan-code.c.
8233	(yacc): Be robust to white spaces.
8234
8235	* tests/conflicts.at, tests/input.at, tests/reduce.at,
8236	* tests/regression.at: Adjust the column numbers.
8237	* tests/regression.at: Adjust the error message.
8238
82392006-06-06  Joel E. Denny  <jdenny@ces.clemson.edu>
8240
8241	* src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
8242	Use Akim's wording from
8243	<http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00056.html>.
8244
82452006-06-06  Joel E. Denny  <jdenny@ces.clemson.edu>
8246
8247	Between Bison releases, manually append `+' to the previous Bison
8248	release number, and use that as a signal to automatically print the
8249	ChangeLog's CVS Id keyword from --version.  Discussed starting at
8250	<http://lists.gnu.org/archive/html/bison-patches/2006-05/msg00028.html>.
8251	* ChangeLog: Add Id header.
8252	* configure.ac (AC_INIT): Append `+' to `2.3'.
8253	* src/.cvsignore: Add revision.c.
8254	* src/Makefile.am (bison_SOURCES): Add revision.c and revision.h.
8255	(BUILT_SOURCES): Add revision.c.
8256	(revision.c): New target rule.  This file defines a new global variable
8257	named revision.  It initializes it with either the Id from ChangeLog
8258	or, if VERSION doesn't contain `+', with the empty string.
8259	* src/getargs.c (version): Print the value of revision.
8260	* src/revision.h: Extern revision.
8261
82622006-06-05  Paul Eggert  <eggert@cs.ucla.edu>
8263
8264	* NEWS: Version 2.3.
8265	* configure.ac (AC_INIT): Likewise.
8266
82672006-05-30  Paul Eggert  <eggert@cs.ucla.edu>
8268
8269	* data/glr.c (YYRECOVERING): Define to be a function-like macro
8270	with no arguments, not as an object-like macro.  This is for
8271	compatibility with data/yacc.c.  Problem reported by John P. Hartmann in
8272	<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00059.html>.
8273	* doc/bison.texinfo (Action Features, Error Recovery, Table of Symbols):
8274	Document this.
8275
82762006-05-30  Joel E. Denny  <jdenny@ces.clemson.edu>
8277
8278	* src/getargs.c (usage): Back out yesterday's modification of the
8279	--help output so that we don't have to wait for translation before
8280	releasing 2.3.
8281
82822006-05-29  Paul Eggert  <eggert@cs.ucla.edu>
8283
8284	* doc/bison.texinfo (Introduction): Don't say "GLR grammar".
8285	Problem reported by Akim Demaille.
8286
82872006-05-29  Joel E. Denny  <jdenny@ces.clemson.edu>
8288
8289	* src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
8290
82912006-05-26  Paul Eggert  <eggert@cs.ucla.edu>
8292
8293	* data/yacc.c (yy_reduce_print): Omit trailing white space in
8294	generated source code.  Problem reported by Frans Englich in
8295	<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00049.html>.
8296
82972006-05-22  Paul Eggert  <eggert@cs.ucla.edu>
8298
8299	* Makefile.maint (gzip_rsyncable, GZIP_ENV): Compute within the
8300	shell, not within 'make', so that 'make' by an ordinary builder
8301	(using GNU make) does not worry about configuring gzip.  This also
8302	works around a bug reported independently by Keith Thompson and by
8303	Georg Schwarz, whereby gzip 1.2.4 --help would output usage on
8304	stderr rather than stdout, messing up the build logs.
8305
83062006-05-21  Joel E. Denny  <jdenny@ces.clemson.edu>
8307
8308	* data/yacc.c (yyparse): Wrap the final return from yyparse inside YYID
8309	to make sure that YYID will never be unused.  This fixes a 'make
8310	maintainer-check' failure caused by the recent changes to the 'Trivial
8311	grammars' test case, which caused g++ 4.1.0 to complain that YYID was
8312	not used.
8313	* data/glr.c (yyparse): Wrap yyparse's return inside YYID just in case.
8314
83152006-05-21  Joel E. Denny  <jdenny@ces.clemson.edu>
8316
8317	* data/glr.c (yyresolveLocations): Remove bogus YYASSERT that the
8318	state before an empty RHS is always resolved here.  Only the location
8319	of that state is guaranteed to be resolved, and that's enough.  This
8320	fixes the remaining bug reported by Derek M. Jones in
8321	<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>.
8322	* tests/glr-regression.at (Uninitialized location when reporting
8323	ambiguity): Test the above case.
8324	Also, the embedded comments in this test case claim it checks the case
8325	of an empty RHS that has inherited the initial location.  However, the
8326	corresponding LHS was already resolved, so yyresolveLocations didn't
8327	actually have reason to modify it.  Fix this by forcing
8328	nondeterministic operation at the beginning of the parse.
8329
83302006-05-20  Paul Eggert  <eggert@cs.ucla.edu>
8331
8332	* data/c.m4 (b4_yy_symbol_print_generate):
8333	(b4_yy_symbol_print_generate): Use 'YYSTYPE const' rather than
8334	'const YYSTYPE', and similarly for YYLTYPE.  This fixes one
8335	of the bugs reported today by Derek M Jones in
8336	<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00027.html>.
8337	* doc/bison.texinfo (Value Type): Document that YYSTYPE must be
8338	defined to be a type name without parens or brackets.
8339	(Location Type): Similarly for YYLTYPE.
8340	* tests/regression.at (Trivial grammars): Put in a test for this
8341	bug that will be caught by 'make maintainer-check' (though not,
8342	alas, by 'make check' unless your compiler is picky).
8343
83442006-05-19  Paul Eggert  <eggert@cs.ucla.edu>
8345
8346	* NEWS: Version 2.2.
8347	* configure.ac (AC_INIT): Likewise.
8348
83492006-05-17  Joel E. Denny  <jdenny@ces.clemson.edu>
8350
8351	* data/glr.c (yyreportTree): Make room in yystates for the state
8352	preceding the RHS.  This fixes the segmentation fault reported by Derek
8353	M. Jones in
8354	<http://lists.gnu.org/archive/html/help-bison/2006-05/msg00035.html>.
8355	(yyreportTree, yypdumpstack): Subtract 1 from yyrule before printing
8356	to the user.  Reported for yyreportTree by Derek M. Jones later in the
8357	same thread.
8358	* THANKS: Add Derek M. Jones.
8359	Update my email address.
8360	Fix typo in Steve Murphy's name.
8361
83622006-05-14  Paul Eggert  <eggert@cs.ucla.edu>
8363
8364	* data/glr.c (yyreportSyntaxError): Fix off-by-one error in
8365	checking against YYLAST that caused the parser to miss a potential
8366	alternative in its diagnostic.
8367	Problem reported by Maria Jose Moron Fernandez in
8368	<http://lists.gnu.org/archive/html/bug-bison/2006-05/msg00024.html>.
8369	* data/lalr1.cc (yysyntax_error_): Likewise.
8370	* data/yacc.c (yysyntax_error): Likewise.
8371	* tests/regression.at (_AT_DATA_DANCER_Y): Use static array for
8372	tokens, in case we run into an older C compiler.
8373	(_AT_DATA_EXPECT2_Y, AT_CHECK_EXPECT2): New macros.
8374	Use them to check for the off-by-one error fixed above.
8375
8376	* data/yacc.c (yytnamerr): Fix typo: local var should be of type
8377	YYSIZE_T, not size_t.
8378	* tests/regression.at (Trivial grammars): New test, to catch
8379	the error fixed by the above patch.
8380
83812006-05-14  Akim Demaille  <akim@lrde.epita.fr>
8382
8383	* doc/bison.texinfo (C++ Bison Interface): Clarify the naming
8384	scheme.
8385	Reported by Steve Murphy.
8386
83872006-05-14  Akim Demaille  <akim@lrde.epita.fr>
8388
8389	* data/glr.cc, data/lalr1.cc: Using %defines is mandatory.
8390	* data/glr.cc: b4_location_flag is now b4_locations_flag.
8391
83922006-05-14  Akim Demaille  <akim@lrde.epita.fr>
8393
8394	Implement --trace=m4.
8395	* src/getargs.c (trace_types, trace_args): Accept trace_m4.
8396	* src/output.c (output_skeleton): When set, pass -dV to m4.
8397
8398	Factor the handling of flags in m4.
8399	* src/output.c (prepare): Rename the muscle names debug, defines,
8400	error_verbose to debug_flag, defines_flag, error_verbose_flag.
8401	* data/c.m4: Adjust.
8402	(_b4_define_flag_if, b4_define_flag_if, b4_defines_if): New.
8403	Use b4_define_flag_if to define other b4_FLAG_if macros.
8404	(b4_location_if): As a consequence, rename as...
8405	(b4_locations_if): this, for consistency.
8406	Adjust all the skeletons.
8407
84082006-05-14  Akim Demaille  <akim@lrde.epita.fr>
8409
8410	* etc/bench.pm: Shorten bench names.
8411
84122006-05-14  Akim Demaille  <akim@lrde.epita.fr>
8413
8414	* src/output.h, src/output.c (error_verbose): Move to...
8415	* src/getargs.h, src/getargs.c: here.
8416	Sort the flags.
8417	Adjust dependencies.
8418
84192006-05-13  Paul Eggert  <eggert@cs.ucla.edu>
8420
8421	* data/c.m4 (b4_copyright): Put the special exception for Bison
8422	skeletons here, so we don't have to put it in each skeleton.  All
8423	uses changed.  Suggested by Akim Demaille.  Also, wrap the
8424	copyright notice, in case it is longer than 80 columns.  Replace
8425	comma by newline after title.
8426
84272006-05-11  Paul Eggert  <eggert@cs.ucla.edu>
8428
8429	* doc/bison.texinfo (Calc++ Scanner): The flex behavior is an
8430	incompatibility, not a bug.  Mention that it wasn't fixed as of
8431	flex 2.5.33.
8432
84332006-05-11  Akim Demaille  <akim@lrde.epita.fr>
8434
8435	* examples/extexi: Enforce the precedence of concatenation over
8436	>>.
8437	Reported by Tommy Nordgren.
8438
84392006-05-11  Akim Demaille  <akim@lrde.epita.fr>
8440
8441	* data/lalr1.cc (yytranslate_): Rename token as t to avoid clashes
8442	with the member "token".
8443	Reported by Martin Nylin.
8444
84452006-05-08  Paul Eggert  <eggert@cs.ucla.edu>
8446
8447	* data/glr.c: Switch to Bison 2.2 special-exception language in
8448	the copyright notice.  Use more-regular format for titles and
8449	copyright notices.
8450	* data/glr.cc: Likewise.
8451	* data/location.cc: Likewise.
8452	* data/yacc.cc: Likewise.
8453	* doc/bison.texinfo (Conditions): Document this.
8454	* NEWS: likewise.  Upgrade version to 2.2.
8455
84562006-04-27  Akim Demaille  <akim@lrde.epita.fr>
8457
8458	* data/glr.cc: Remove dead code.
8459
84602006-04-25  Paul Eggert  <eggert@cs.ucla.edu>
8461
8462	* bootstrap: Comment out the AM_CPPFLAGS line, since we don't use
8463	that variable and the line breaks the bootstrap.  Problem reported
8464	by Juan M. Guerrero.
8465
84662006-04-24  Akim Demaille  <akim@lrde.epita.fr>
8467
8468	* doc/bison.texinfo (Multiple start-symbols): New.
8469
84702006-04-24  Akim Demaille  <akim@lrde.epita.fr>
8471
8472	* etc/README, etc/bench.pl: New.
8473
84742006-04-03  Akim Demaille  <akim@lrde.epita.fr>
8475
8476	* src/scan-gram.l: Be robust to BRACED_CODE appearing before any
8477	rule.
8478	Reported by Mickael Labau.
8479	* tests/input.at (Torturing the Scanner): Test it.
8480
84812006-03-16  Paul Eggert  <eggert@cs.ucla.edu>
8482
8483	* doc/bison.texinfo (Decl Summary): Don't mention yylloc twice.
8484	Problem reported by Bob Rossi.
8485
84862006-03-13  Paul Eggert  <eggert@cs.ucla.edu>
8487
8488	* doc/bison.texinfo: Remove @shorttitlepage stuff; it wasn't used
8489	and didn't really work.
8490	For the index, use @ifnotinfo, not @iftex.
8491	Minor cleanups of spacing and terminology.
8492
84932006-03-12  Akim Demaille  <akim@lrde.epita.fr>
8494
8495	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Fix the definition
8496	of AT_NAME_PREFIX when %name-prefix is not used.
8497
84982006-03-12  Akim Demaille  <akim@lrde.epita.fr>
8499
8500	Apply --prefix to C++ skeletons too: they change the namespace.
8501	The test suite already exercize these cases.
8502	* data/c++.m4 (b4_namespace): New.
8503	* data/lalr1.cc, data/glr.cc, data/location.cc: Use it instead of `yy'.
8504	* data/lalr1.cc (yytnameerr_): Move its definition into the namespace.
8505	* data/yacc.c, data/glr.c: Remove a useless `[]'.
8506	* doc/bison.texinfo: Document it.
8507	(Option Cross Key): Use @multitable in all formats.  It looks
8508	nicer, even in TeX outputs.
8509	(Rules): Use the same code whatever the output type is.
8510	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS)
8511	(_AT_BISON_OPTION_POPDEFS): Support AT_NAME_PREFIX.
8512	* tests/calc.at: Use it, instead of hard coding `yy'.
8513
85142006-03-10  Akim Demaille  <akim@lrde.epita.fr>
8515
8516	* TODO: Remove dead items.
8517
85182006-03-10  Akim Demaille  <akim@lrde.epita.fr>
8519
8520	* doc/FAQ: Remove, merged into...
8521	* doc/bison.texinfo (FAQ): this.
8522	* doc/Makefile.am (EXTRA_DIST): Adjust.
8523
85242006-03-10  Akim Demaille  <akim@lrde.epita.fr>
8525
8526	* data/c.m4 (b4_token_enum): Always define the enum of tokens,
8527	even if empty.
8528	* data/lalrl1.cc, data/glr.cc (parser::token_type): New.
8529	* doc/bison.texinfo (Calc++ Scanner): Use it.
8530
85312006-03-09  Paul Eggert  <eggert@cs.ucla.edu>
8532
8533	Fix two nits reported by twlevo, plus one more that I discovered.
8534
8535	* src/assoc.h (assoc_to_string): Give a name to the arg, as
8536	this is the usual Bison style.
8537	* src/location.h (location_print): Likewise.
8538
8539	* src/reader.h (token_name): Likewise.
8540
85412006-03-08  Paul Eggert  <eggert@cs.ucla.edu>
8542
8543	Fix some nits reported by twlevo.
8544	* doc/FAQ: Remove ancient Y2K FAQ, replacing it with "secure"
8545	and "POSIX".  Use more-modern syntax for URLs.  Mention C++
8546	and ask for Java.  Don't hardwire OS version numbers.  Add
8547	copyright notice.
8548	* m4/.cvsignore: Add unistd_h.m4, for latest gnulib.
8549	* src/conflicts.c (solved_conflicts_obstack): Now static.
8550
85512006-03-08  Joel E. Denny  <jdenny@ces.clemson.edu>
8552
8553	* doc/bison.texinfo (Introduction): Mention GLR and C++ as on the web
8554	page.  Say "you can use it" not "you may use it" as on the web page;
8555	we're describing capabilities not granting permission.
8556
85572006-03-06  Paul Eggert  <eggert@cs.ucla.edu>
8558
8559	* data/glr.c (yyresolveLocations): Rename local variables to avoid
8560	shadowing warnings.  Use usual patter for iterating through RHS.
8561	* tests/glr-regression.at
8562	(Uninitialized location when reporting ambiguity):
8563	Modify yylex so that it uses its argument, rather than trying
8564	to rely on ARGSUSED (which doesn't work for gcc with warnings).
8565	const char -> char const.
8566
8567	* tests/Makefile.am ($(srcdir)/package.m4, maintainer-check-valgrind):
8568	Don't use tabs inside commands; it messes up 'ps'.
8569	Problem reported by twlevo.
8570
85712006-03-06  Joel E. Denny  <jdenny@ces.clemson.edu>
8572
8573	* tests/glr-regression.at (Uninitialized location when reporting
8574	ambiguity): New test case.
8575	* data/glr.c (yyresolveLocations): New function, which uses
8576	YYLLOC_DEFAULT.
8577	(yyresolveValue): Invoke yyresolveLocations before reporting an
8578	ambiguity.
8579	* doc/bison.texinfo (Default Action for Locations): Note
8580	YYLLOC_DEFAULT's usage for ambiguity locations.
8581	(GLR Semantic Actions): Cross-reference those notes.
8582
85832006-03-04  Joel E. Denny  <jdenny@ces.clemson.edu>
8584
8585	* tests/glr-regression.at (Leaked semantic values when reporting
8586	ambiguity): Remove unnecessary union and type declarations.
8587	(Leaked lookahead after nondeterministic parse syntax error): New test
8588	case.
8589	* data/glr.c (yyparse): Check for zero stacks remaining before
8590	attempting to shift the lookahead so that you don't lose it.
8591
85922006-03-02  Joel E. Denny  <jdenny@ces.clemson.edu>
8593
8594	Avoid memory leaks by not invoking longjmp in yyreportAmbiguity.
8595	* tests/glr-regression.at (Leaked semantic values when reporting
8596	ambiguity): New test case.
8597	* data/glr.c (yyreportAmbiguity): Invoke yyyerror directly and return
8598	yyabort rather than invoking yyFail, which invokes longjmp.  Remove the
8599	now unnecessary yystackp parameter.
8600	(yyresolveValue): Return yyreportAmbiguity's result.  Now the necessary
8601	destructors can be called.
8602
8603	* tests/glr-regression.at: Don't invoke bison with `-t' unnecessarily
8604	in existing testcases.
8605
86062006-03-02  Joel E. Denny  <jdenny@ces.clemson.edu>
8607
8608	Don't leak semantic values for parent RHS when a user action cuts the
8609	parser, and clean up related code a bit.
8610	* tests/glr-regression.at (Leaked merged semantic value if user action
8611	cuts parse): Rename to...
8612	(Leaked semantic values if user action cuts parse): ... this.  Add check
8613	for leaked parent RHS values.
8614	* data/glr.c (yydestroyGLRState): In debugging output, distinguish
8615	between an unresolved state (non-empty chain of semantic options) and
8616	an incomplete one (signaled by an empty chain).
8617	(yyresolveStates): Document the interface.  Move all manipulation of a
8618	successfully or unsuccessfully resolved yyGLRState to...
8619	(yyresolveValue): ... here so that yyresolveValue always leaves a
8620	yyGLRState with consistent data and thus is easier to understand.
8621	Remove the yyvalp and yylocp parameters since they are always just
8622	taken from the yys parameter.  When reporting a discarded merged value
8623	in debugging output, note that it is incompletely merged.  Document the
8624	interface.
8625	(yyresolveAction): If resolving any of the RHS states fails, destroy
8626	them all rather than leaking them.  Thus, as long as user actions are
8627	written to clean up the RHS correctly, yyresolveAction always cleans up
8628	the RHS of a semantic option.  Document the interface.
8629
86302006-02-27  Paul Eggert  <eggert@cs.ucla.edu>
8631
8632	* data/glr.c (yyexpandGLRStack): Catch an off-by-one error that
8633	led to a segmentation fault in GNU Pascal.  Problem reported
8634	by Waldek Hebisch.
8635
86362006-02-21  Joel E. Denny  <jdenny@ces.clemson.edu>
8637
8638	* doc/bison.texinfo (Mid-Rule Actions): Explain how to bury a
8639	mid-rule action inside a nonterminal symbol in order to declare a
8640	destructor for its semantic value.
8641
86422006-02-16  Paul Eggert  <eggert@cs.ucla.edu>
8643
8644	* data/yacc.c [(! defined yyoverflow || YYERROR_VERBOSE) && !
8645	YYSTACK_USE_ALLOCA && ! defined YYSTACK_ALLOC && defined
8646	__cplusplus && ! defined _STDLIB_H && !
8647	((defined YYMALLOC || defined malloc) && (defined YYFREE ||
8648	defined free))]: Include <stdlib.h> rather than rolling our own
8649	declarations of malloc and free, to avoid problems with
8650	incompatible declarations (using 'throw') C++'s stdlib.h.  This
8651	should fix Debian bug 340012
8652	<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=340012>,
8653	reported by Guillaume Melquiond.
8654
86552006-02-13  Paul Eggert  <eggert@cs.ucla.edu>
8656
8657	* NEWS: Clarify symbols versus types in unused-value warnings.
8658
8659	* configure.ac (AC_INIT): Bump version number.
8660
86612006-02-13  Paul Eggert  <eggert@cs.ucla.edu>
8662
8663	* NEWS: Version 2.1a.
8664	* tests/headers.at (AT_TEST_CPP_GUARD_H): Declare yyerror and yylex,
8665	since C99 requires this.
8666
86672006-02-11  Paul Eggert  <eggert@cs.ucla.edu>
8668
8669	* m4/c-working.m4: New file.
8670	* configure.ac (BISON_TEST_FOR_WORKING_C_COMPILER): Use it.
8671
86722006-02-10  Paul Eggert  <eggert@cs.ucla.edu>
8673
8674	* Makefile.maint: Merge from coreutils.
8675
86762006-02-09  Paul Eggert  <eggert@cs.ucla.edu>
8677
8678	More portability fixes for problems summarized by Nelson H. F. Beebe.
8679
8680	* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Catch a
8681	configuration screwup "./configure CC=/opt/SUNWspro/bin/c89
8682	CFLAGS="-xarch=generic64" CXX=/opt/SUNWspro/bin/CC
8683	LDFLAGS="-xarch=generic64" with Sun C 5.7 on Solaris 10; this
8684	messes up because C++ code is compiled in 32-bit mode but linked
8685	in 64-bit mode.
8686
86872006-02-08  Paul Eggert  <eggert@cs.ucla.edu>
8688
8689	More portability fixes for problems summarized by Nelson H. F. Beebe.
8690
8691	* doc/bison.texinfo (Calc++ Scanner): Work around a bug in flex
8692	2.5.31.  This resembles the 2005-10-10 patch to src/scan-skel.l.
8693
8694	* examples/calc++/Makefile.am (check_PROGRAMS): Renamed from
8695	nodist_PROGRAMS, since we don't need to actually compile the
8696	example if we're just doing a plain 'make'.  This avoids bothering
8697	the installer unnecessarily about problems due to weird C++
8698	compilers.
8699
87002006-02-06  Paul Eggert  <eggert@cs.ucla.edu>
8701
8702	More portability fixes for problems summarized by Nelson H. F. Beebe.
8703
8704	* tests/headers.at (AT_TEST_CPP_GUARD_H): Use #include <...> rather
8705	than #include "...", and compile with -I'.'.  The old method was
8706	not portable, according to Posix and the C standard, and it does
8707	not work with Sun C 5.7, where previous #line directives affect
8708	the working directory used in later #include "..." directives.
8709
87102006-02-06  Juan Manuel Guerrero  <juan.guerrero@gmx.de>
8711
8712	Various DJGGP specific issues in /djgpp
8713
87142006-02-02  Paul Eggert  <eggert@cs.ucla.edu>
8715
8716	More portability fixes for problems summarized by Nelson H. F. Beebe.
8717
8718	* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check that
8719	'#include <map>' works and that you can apply ++ to iterators.
8720
87212006-02-01  Paul Eggert  <eggert@cs.ucla.edu>
8722
8723	Work around portability problems summarized by Nelson H. F. Beebe in
8724	<http://lists.gnu.org/archive/html/bug-bison/2005-09/msg00021.html>.
8725
8726	* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
8727	that '#include <string>' works.
8728
8729	* data/lalr1.cc (yytranslate_): No longer inline, to work around a
8730	porting problem to g++ 3.4.3 on Darwin 7.9.0, where g++ complained
8731	"warning: sorry: semantics of inline function static data `const
8732	unsigned char translate_table[262]' are wrong (you'll wind up with
8733	multiple copies)".
8734
8735	* lib/bbitset.h (struct bitset_vtable): Rename members not, and,
8736	or, xor to not_, and_, or_, and xor_, respectively.  This works
8737	around a bug in GCC 3.4.3 on Irix 6.5, which apparently has a
8738	random system header somewhere that includes the equivalent of
8739	<iso646.h>.
8740
8741	* tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that "$CC
8742	-E" works; it apparently doesn't work with PathScale EKO Compiler
8743	Suite Version 2.0.
8744
87452006-01-30  Joel E. Denny  <jdenny@ces.clemson.edu>
8746
8747	During deterministic GLR operation, user actions should be able to
8748	influence the parse by changing yychar.  To make this easier to fix and
8749	to make glr.c easier to evolve in general, don't maintain yytoken in
8750	parallel with yychar; just compute yytoken when needed.
8751	* tests/glr-regression.at (Incorrect lookahead during deterministic
8752	GLR): Check that setting yychar in a user action has the intended
8753	effect.
8754	* data/glr.c (yyGLRStack): Remove yytokenp member.
8755	(yyclearin): Don't set *yytokenp.
8756	(yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Examine
8757	yychar rather than *yytokenp to determine the current lookahead.
8758	Compute yytoken locally when needed.
8759	(yyparse): Likewise.  Remove the local yytoken that yytokenp used to
8760	point to.
8761
8762	* doc/bison.texinfo (Bison Options): Remove stray sentence fragment
8763	after `--report' documentation.
8764
87652006-01-30  Paul Eggert  <eggert@cs.ucla.edu>
8766
8767	* src/parse-gram.y (grammar_declaration): Location of printer
8768	symbol is @1, not list->location.  Bug reported by twlevo.
8769	* tests/input.at (Incompatible Aliases): Adjust to above change.
8770
87712006-01-29  Paul Eggert  <eggert@cs.ucla.edu>
8772
8773	* tests/input.at (AT_CHECK_UNUSED_VALUES): Remove.  Instead, do
8774	all the test at once.  This makes the output easier to read in the
8775	normal case.
8776
8777	Fix a longstanding bug uncovered by bro-0.9a9/src/parse.y, which I
8778	got from <http://bro-ids.org/download.html>.  The bug is that
8779	when two actions appeared in succession, the second one was
8780	scanned before the first one was added to the grammar rule
8781	as a midrule action.  Bison then output the incorrect warning
8782	"parse.y:905.17-906.36: warning: unused value: $3".
8783	* src/parse-gram.y (BRACED_CODE, action): These are no longer
8784	associated with a value.
8785	(rhs): Don't invoke grammar_current_rule_action_append.
8786	(action): Invoke it here instead.
8787	* src/reader.c (grammar_midrule_action): Now extern.
8788	(grammar_current_rule_action_append): Don't invoke
8789	grammar_midrule_action; that is now the scanner's job.
8790	* src/reader.h (last_string, last_braced_code_loc):
8791	(grammar_midrule_action): New decls.
8792	* src/scan-gram.l (last_string): Now extern, sigh.
8793	(last_braced_code_loc): New extern variable.
8794	(<INITIAL>"{"): Invoke grammar_midrule_action if the current
8795	rule already has an action.
8796	(<SC_BRACED_CODE>"}"): Set last_braced_code_loc before returning.
8797	* tests/input.at (AT_CHECK_UNUSED_VALUES):
8798	Add some tests to check that the above changes fixed the bug.
8799
88002006-01-27  Paul Eggert  <eggert@cs.ucla.edu>
8801
8802	* src/reader.c (symbol_should_be_used): Renamed from symbol_typed_p.
8803	All used changed.  Check whether the symbol has a destructor,
8804	not whether it is typed.
8805	* tests/input.at (AT_CHECK_UNUSED_VALUES): Add a destructor, so
8806	that the values are still reported as unused.  All line numbers
8807	adjusted.
8808
88092006-01-23  Paul Eggert  <eggert@cs.ucla.edu>
8810
8811	Work around a bug in bro 0.8, which underparenthesizes its
8812	definition of YYLLOC_DEFAULT.
8813	* data/glr.c: Change all uses of YYLLOC_DEFAULT to parenthesize
8814	their arguments.
8815	* data/lalr1.cc: Likewise.
8816	* data/yacc.cc: Likewise.
8817
88182006-01-22  Paul Eggert  <eggert@cs.ucla.edu>
8819
8820	Work around a bug in Pike 7.0, and give the Pike folks a
8821	better way to override the usual int widths.
8822	* data/yacc.c (b4_int_type): Use yytype_uint8, etc., so that the
8823	user can override the types.
8824	(short): #undef, to work around a bug in Pike 7.0.
8825	(yytype_uint8, yytype_int8, yytype_uint16, yytype_int16): New types.
8826	(union yyalloc.yyss): Use yytype_int16 rather than short.
8827	All uses changed.
8828	(yysigned_char): Remove.
8829	* src/parse-gram.y (YYTYPE_UINT8, YYTYPE_INT8, YYTYPE_UINT16):
8830	(YYTYPE_INT16): New macros, to test the new facility in yacc.c.
8831	* tests/regression.at (Web2c Actions): Adjust to above changes.
8832
8833	* src/reader.c (check_and_convert_grammar): New function.
8834	(reader): Close the input file even if something went wrong during
8835	parsing.  Minor file descriptor leak reported by twlevo.
8836
8837	* src/assoc.c (assoc_to_string): Use a default: abort (); case
8838	to pacify gcc -Wswitch-default.
8839	* src/scan-gram.l (adjust_location): Use a default: break; case
8840	to pacify gcc -Wswitch-default.
8841	* src/scan-skel.h (skel_get_lineno, skel_get_in, skel_get_out):
8842	(skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
8843	(skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
8844	Move these decls to scan-skel.l, since they don't need to be
8845	visible elsewhere.
8846	* src/scan-skel.l: Accept the above decls.
8847	(skel_lex): New decl, to pacify GCC when unpatched flex 2.5.31
8848	is used.
8849
88502006-01-21  Paul Eggert  <eggert@cs.ucla.edu>
8851
8852	* Makefile.cfg (local-checks-to-skip): Add changelog-check,
8853	since we don't want to insist on a version number at the start
8854	of the changelog every time.
8855	* Makefile.maint: Sync from coreutils a bit better.
8856	(sc_trailing_blank): Renamed from sc_trailing_space.
8857	All uses changed.
8858	(sc_no_if_have_config_h, sc_require_config_h):
8859	(sc_prohibit_assert_without_use): New rules.
8860	(sc_obsolete_symbols): Don't catch Makefile.maint itself.
8861	(sc_dd_max_sym_length): Fix leading spaces in rule.
8862	(sc_system_h_headers): Prefix with @.
8863	(sc_useless_cpp_parens, m4-check): Output line numbers.
8864	(changelog-check): Allow version only in head.
8865	* data/c.m4: Use "defined FOO" instead of "defined (FOO)", to
8866	satisfy new Makefile.maint rule.
8867	* data/glr.c: Likewise.
8868	* data/glr.cc: Likewise.
8869	* data/lalr1.cc: Likewise.
8870	* data/yacc.c: Likewise.
8871	* lib/ebitsetv.c: Likewise.
8872	* lib/lbitset.c: Likewise.
8873	* lib/subpipe.c: Likewise.
8874	* lib/timevar.c: Likewise.
8875	* src/system.h: Likewise.
8876	* data/yacc.c (YYSTYPE): Don't generate trailing spaces in output.
8877	* djgpp/Makefile.maint: Add copyright notice.
8878	* djgpp/README.in: Likewise.
8879	* djgpp/config.bat: Likewise.
8880	* djgpp/config.site: Likewise.
8881	* djgpp/config_h.sed: Likewise.
8882	* djgpp/djunpack.bat: Likewise.
8883	* djgpp/config.sed: Fix copyright notice to match standard format.
8884	* djgpp/subpipe.h: Likewise.
8885	* lib/bitsetv-print.c: Likewise.
8886	* lib/bitsetv.c: Likewise.
8887	* lib/subpipe.h: Likewise.
8888	* lib/timevar.c: Likewise.
8889	* lib/timevar.h: Likewise.
8890	* djgpp/subpipe.c: Use standard recipe for config.h.
8891	* lib/abitset.c: Likewise.
8892	* lib/bitset.c: Likewise.
8893	* lib/bitset_stats.c: Likewise.
8894	* lib/bitsetv-print.c: Likewise.
8895	* lib/bitsetv.c: Likewise.
8896	* lib/ebitsetv.c: Likewise.
8897	* lib/get-errno.c: Likewise.
8898	* lib/lbitset.c: Likewise.
8899	* lib/subpipe.c: Likewise.
8900	* lib/timevar.c: Likewise.
8901	* lib/vbitset.c: Likewise.
8902	* tests/local.at: Likewise.
8903	* src/scan-gram.l: Don't include verify.h, since system.h does
8904	that for us.
8905	* .x-sc_require_config_h: New file.
8906	* .x-sc_unmarked_diagnostics: New file.
8907
89082006-01-20  Paul Eggert  <eggert@cs.ucla.edu>
8909
8910	Be a bit more systematic about using 'abort'.
8911	* lib/abitset.c (abitset_test): Remove ATTRIBUTE_UNUSED; not needed.
8912	* lib/bitset.c (bitset_bytes, bitset_init, bitset_op4_cmp):
8913	Put 'default: abort ();' before some other case, to satisfy older
8914	pedantic compilers.
8915	* lib/bitset_stats.c (bitset_stats_init): Likewise.
8916	* lib/ebitset.c (ebitset_elt_find, ebitset_op3_cmp): Likewise.
8917	* lib/lbitset.c (lbitset_elt_find, lbitset_op3_cmp): Likewise.
8918	* src/conflicts.c (resolve_sr_conflict): Likewise.
8919	* src/vcg.c (get_color_str, get_textmode_str, get_shape_str):
8920	(get_decision_str, get_orientation_str, get_node_alignment_str):
8921	(get_arrow_mode_str, get_crossing_type_str, get_view_str):
8922	(get_linestyle_str, get_arrowstyle_str): Likewise.
8923	* src/conflicts.c (resolve_sr_conflict):
8924	Use a default case rather than one for the one remaining enum
8925	value, to catch invalid enum values as well.
8926	* src/lalr.c (set_goto_map, map_goto):
8927	Prefer "assert (FOO);" to "if (!FOO) abort ();".
8928	* src/nullable.c (nullable_compute, token_definitions_output):
8929	Likewise.
8930	* src/reader.c (packgram, reader): Likewise.
8931	* src/state.c (transitions_to, state_new, state_reduction_find):
8932	Likewise.
8933	* src/symtab.c (symbol_user_token_number_set, symbol_make_alias):
8934	(symbol_pack): Likewise.
8935	* src/tables.c (conflict_row, pack_vector): Likewise.
8936	* src/scan-skel.l (QPUTS): Remove unnecessary parens.
8937	(BASE_QPUTS, "@output ".*\n): Remove unnecessary asserts.
8938	* src/system.h: Don't include <assert.h>.
8939	(assert): New macro.
8940
8941	* doc/bison.texinfo (Prologue, Rules, Actions, Union Decl, Action Decl):
8942	(Destructor Decl, Parser Function, Pure Calling):
8943	Describe rules for braces inside C code more carefully.
8944
89452006-01-19  Paul Eggert  <eggert@cs.ucla.edu>
8946
8947	Fix some porting glitches found by Nelson H. F. Beebe.
8948	* lib/abitset.c (abitset_resize): Rewrite to avoid warnings from
8949	compilers that don't understand that abort () does not return.
8950	* src/state.c (transitions_to): Likewise.
8951	* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check
8952	that '#include <cstdlib>' works.
8953	* src/system.h (INT8_MIN, INT16_MIN, INT32_MIN, INT8_MAX):
8954	(INT16_MAX, UINT8_MAX, INT32_MAX, UINT16_MAX, UINT32_MAX):
8955	#undef if ! defined __STDC_VERSION__ || __STDC_VERSION__ < 199901,
8956	for the benefit of some pre-C99 compilers.
8957
8958	* bootstrap: Undo changes to gnulib files that autoreconf made.
8959
8960	Minor fixups to get 'make maintainer-check' to work.
8961	* configure.ac: Don't use -Wnested-externs, as it's incompatible
8962	with the new verify.h implementation.
8963	* data/c.m4 (b4_yy_symbol_print_generate): YYUSE (yyoutput).
8964	* data/glr.c (YYUSE): Depend on __GNUC__ as well.
8965	* data/yacc.c (YYUSE): Likewise.
8966	* data/lalr1.cc (yysyntax_error_): YYUSE (yystate).
8967	* lib/subpipe.c (end_of_output_subpipe): The args are unused.
8968	* src/parse-gram.y (declaration): Don't pass a string constant
8969	to a function that expects char *, since GCC might complain
8970	about the constant value.
8971	* src/reader.c (symbol_typed_p): Add parens to pacify GCC.
8972	* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): #undef yylloc and yylval
8973	before #defining them.
8974	* tests/glr-regression.at
8975	(Incorrectly initialized location for empty right-hand side in GLR):
8976	In yyerror, use the msg arg.
8977	(Corrupted semantic options if user action cuts parse):
8978	(Incorrect lookahead during deterministic GLR):
8979	(Incorrect lookahead during nondeterministic GLR):
8980	Don't name a local var 'index'; it shadows string.h's 'index'.
8981
89822006-01-19  Akim Demaille  <akim@epita.fr>
8983
8984	* tests/calc.at (_AT_DATA_CALC_Y): Initialize the whole initial
8985	location, not just parts of it.
8986
89872006-01-18  Paul Eggert  <eggert@cs.ucla.edu>
8988
8989	* NEWS: Document the fact that multiple %unions are now allowed.
8990	* doc/bison.texinfo (Union Decl): Likewise.
8991	* TODO: This feature is now implemented, so remove it from
8992	the wishlist.
8993
8994	* Makefile.maint: Merge with coreutils Makefile.maint.
8995	(CVS_LIST): Use build-aux version if available.
8996	(VERSION_REGEXP): New macro.
8997	(syntax-check-rules): Add sc_no_if_have_config_h,
8998	sc_prohibit_assert_without_use, sc_require_config_h,
8999	sc_useless_cpp_parens.
9000	(sc_obsolete_symbols): Check for O_NDELAY.
9001	(sc_dd_max_sym_length): Track coreutils.
9002	(sc_unmarked_diagnostics): Look in all files, not just *.c.
9003	(sc_useless_cpp_parens): New rule.
9004	(news-date-check): Look for version or today's date.
9005	(changelog-check): Don't require version number near head.
9006	(copyright-check): Use current year instead of hardwiring 2005.
9007	(my-distcheck): Depend on $(release_archive_dir)/$(prev-tgz).
9008	(announcement): Add --gpg-key-ID.
9009
9010	* djgpp/config.sed: Add copyright notice, and replace "filesystem"
9011	with "file system".
9012
9013	Avoid undefined behavior that addressed just before the start of an
9014	array.  Problem reported by twlevo.
9015	* src/reader.c (packgram): Prepend a new sentinel before ritem.
9016	* src/lalr.c (build_relations): Rely on new sentinel.
9017	* src/gram.c (gram_free): Adjust to new sentinel.
9018
90192006-01-12  Joel E. Denny  <jdenny@ces.clemson.edu>
9020
9021	* data/glr.c (yyGLRStateSet): Rename yylookaheadStatuses to
9022	yylookaheadNeeds.  All uses updated.
9023	(yysplitStack): Rename local yynewLookaheadStatuses to
9024	yynewLookaheadNeeds.
9025	* data/glr-regression.at (Incorrect lookahead during nondeterministic
9026	GLR): In comments, change `lookahead status' to `lookahead need'.
9027
90282006-01-11  Paul Hilfinger  <hilfingr@tully.CS.Berkeley.EDU>
9029
9030	* data/glr.c (yysplitStack): A little stylistic rewrite.
9031
90322006-01-11  Paul Hilfinger  <hilfingr@tully.CS.Berkeley.EDU>
9033
9034	* data/glr.c (yyaddDeferredAction): Flesh out the comment.
9035
90362006-01-11  Joel E. Denny  <jdenny@ces.clemson.edu>
9037
9038	* doc/bison.texinfo: Fix some typos.
9039	(GLR Semantic Actions): New subsection discussing special
9040	considerations because GLR semantic actions might be deferred.
9041	(Actions): Mention look-ahead usage of yylval.
9042	(Actions and Locations): Mention look-ahead usage of yylloc.
9043	(Special Features for Use in Actions): Add YYEOF entry and mention it
9044	in the yychar entry.
9045	In the yychar entry, remove mention of the local yychar case (pure
9046	parser) since this is irrelevant information when writing semantic
9047	actions and since it's already discussed in `Table of Symbols' where
9048	yychar is otherwise described as an external variable.
9049	In the yychar entry, don't call it the `current' look-ahead since it
9050	isn't when semantic actions are deferred.
9051	In the yychar and yyclearin entries, add note about deferred semantic
9052	actions.
9053	Add yylloc and yylval entries discussing look-ahead usage.
9054	(Look-Ahead Tokens): When discussing yychar, don't call it the
9055	`current' look-ahead, and do mention yylval and yylloc.
9056	(Error Recovery): Cross-reference `Action Features' when mentioning
9057	yyclearin.
9058	(Table of Symbols): In the yychar entry, don't call it the `current'
9059	look-ahead.
9060	In the yylloc and yylval entries, mention look-ahead usage.
9061
90622006-01-08  Joel E. Denny  <jdenny@ces.clemson.edu>
9063
9064	* tests/glr-regression.at: Update copyright year to 2006.
9065
90662006-01-06  Joel E. Denny  <jdenny@ces.clemson.edu>
9067
9068	* data/glr.c (yyGLRStateSet): Add yybool* yylookaheadStatuses member to
9069	use during nondeterministic operation to track which stacks have
9070	actually needed the current lookahead.
9071	(yyinitStateSet, yyfreeStateSet, yyremoveDeletes, yysplitStack):
9072	Allocate, deallocate, resize, and otherwise shuffle space for
9073	yylookaheadStatuses in parallel with yystates member of yyGLRStateSet.
9074	(yysplitStack, yyprocessOneStack, yyparse): Set lookahead status
9075	appropriately during nondeterministic operation.
9076	(yySemanticOption): Add int yyrawchar, YYSTYPE yyval, and YYLTYPE yyloc
9077	members to store the current lookahead to be used by the deferred
9078	user action.
9079	(yyaddDeferredAction): Add size_t yyk parameter specifying the stack
9080	from which the RHS is taken.  Set the lookahead members of the new
9081	yySemanticOption according to the lookahead status for stack yyk.
9082	(yyglrShiftDefer, yyglrReduce): Pass yyk parameter on to
9083	yyaddDeferredAction.
9084	(yyresolveAction): Set yychar, yylval, and yylloc to the lookahead
9085	members of yySemanticOption before invoking yyuserAction, and then set
9086	them back to their current values afterward.
9087	(yyparse): Set yychar = YYEMPTY where yytoken = YYEMPTY.
9088	(yyreportAmbiguity): Add /*ARGSUSED*/ to pacify lint.
9089	* tests/glr-regression.at: Remove `.' from the ends of recent test case
9090	titles for consistency.
9091	(Leaked merged semantic value if user action cuts parse): In order to
9092	suppress lint warnings, use arguments in merge function, and assign
9093	char value < 128 in main.
9094	(Incorrect lookahead during deterministic GLR): New test case.
9095	(Incorrect lookahead during nondeterministic GLR): New test case.
9096
90972006-01-06  Joel E. Denny  <jdenny@ces.clemson.edu>
9098
9099	* data/c.m4 (b4_yy_symbol_print_generate): In yy_symbol_print, accept
9100	!yyvaluep as signal that no semantic value is available to print.
9101	* data/glr.c (yydestroyGLRState): If state is not resolved, don't try
9102	to print a semantic value.
9103
91042006-01-06  Joel E. Denny  <jdenny@ces.clemson.edu>
9105
9106	* tests/glr-regression.at: For consistency with my newer test cases,
9107	don't thank myself.
9108
91092006-01-05  Joel E. Denny  <jdenny@ces.clemson.edu>
9110
9111	* data/glr.c (yyresolveValue): When merging semantic options, if at
9112	least one user action succeeds but a later one cuts the parse, then
9113	destroy the semantic value before returning rather than leaking it.
9114	(yyresolveStates): If a user action cuts the parse and thus
9115	yyresolveValue fails, ignore the (unset) semantic value rather than
9116	corrupting the yyGLRState, and empty the semantic options list since
9117	the user actions should have called all necessary destructors.
9118	Simplify code with YYCHK.
9119	* tests/glr-regression.at (Corrupted semantic options if user action
9120	cuts parse): New test case.
9121	(Undesirable destructors if user action cuts parse): New test case.
9122	Before applying any of this patch, this test case never actually failed
9123	for me... but only because the corrupted semantic options usually
9124	masked this bug.
9125	(Leaked merged semantic value if user action cuts parse): New test
9126	case.
9127
91282006-01-05  Akim Demaille  <akim@epita.fr>
9129
9130	* src/reader.c, src/symlist.h, src/symlist.c: s/mid_rule/midrule/.
9131
91322006-01-04  Paul Eggert  <eggert@cs.ucla.edu>
9133
9134	* data/c.m4 (b4_c_modern): New macro, with a new provision for
9135	_MSC_VER.  Problem reported by Cenzato Marco.
9136	(b4_c_function_def): Use it.
9137	* data/yacc.c (YYMODERN_C): Remove.  All uses replaced by
9138	b4_c_modern.
9139	(yystrlen, yystpcpy, yyparse): Use b4_c_function... macros rather
9140	than rolling our own.
9141
91422006-01-04  Akim Demaille  <akim@epita.fr>
9143
9144	Also warn about non-used mid-rule values.
9145	* src/symlist.h, src/symlist.c (symbol_list): Add a mid_rule
9146	member.
9147	(symbol_list_new): Adjust.
9148	* src/reader.c (symbol_typed_p): New.
9149	(grammar_rule_check): Use it.
9150	(grammar_midrule_action): Bind a mid-rule LHS to its rule.
9151	Check its rule.
9152	* tests/input.at (AT_CHECK_UNUSED_VALUES): New.
9153	Use it.
9154	* tests/actions.at (Exotic Dollars): Adjust.
9155
91562006-01-04  Akim Demaille  <akim@epita.fr>
9157
9158	* src/reader.c (grammar_midrule_action): If $$ is set in a
9159	mid-rule, move the `used' bit to its lhs.
9160	* tests/input.at (Unused values): New.
9161	* tests/actions.at (Exotic Dollars): Adjust: exp is not typed.
9162
91632006-01-03  Paul Eggert  <eggert@cs.ucla.edu>
9164
9165	* doc/bison.texinfo (Bison Options): Say more accurately what
9166	--yacc does.
9167	* src/parse-gram.y (rules_or_grammar_declaration): Don't complain
9168	about declarations in the grammar when in Yacc mode, as POSIX does
9169	not require a diagnostic when the grammar uses extensions.
9170
9171	* src/reduce.c (reduce_grammar): Remove unnecessary cast to bool.
9172
9173	Warn about dubious constructions like "%token T T".
9174	Reported by twlevo.
9175	* src/symtab.h (struct symbol.declared): New member.
9176	* src/symtab.c (symbol_new): Initialize it to false.
9177	(symbol_class_set): New arg DECLARING, specifying whether
9178	this is a declaration that we want to warn about, if there
9179	is more than one of them.  All uses changed.
9180
9181	* data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c:
9182	Allow multiple %union directives, whose contents concatenate.
9183	* src/parse-gram.y (grammar_declaration): Likewise.
9184	Use muscle_code_grow, so that we don't need stype_line any more.
9185	All uses changed.
9186
9187	* src/muscle_tab.c (muscle_grow): Fix comment.
9188
9189	* ChangeLog, data/c.m4, data/glr.c, data/glr.cc, data/location.cc:
9190	* data/yacc.c, src/getargs.c, src/output.c, tests/cxx-type.at:
9191	Update copyright year to 2006.
9192
91932006-01-03  Akim Demaille  <akim@epita.fr>
9194
9195	Have glr.cc pass (some of) the calc.at tests.
9196	* data/glr.cc (b4_parse_param_orig): New.
9197	(b4_parse_param): Improve its definition, and bound it more
9198	clearly in the skeleton.
9199	(b4_epilogue): Append, instead of prepending, in order to keep
9200	#line consistency.
9201	Simplify the generation of auxiliary functions: locations and
9202	purity are mandated.
9203	(b4_global_tokens_and_yystype): Honor it.
9204	* data/location.cc (c++.m4): Don't include it.
9205	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Define AT_GLR_CC_IF
9206	and AT_SKEL_CC_IF.
9207	* tests/calc.at (AT_CHECK_CALC): Rely on AT_SKEL_CC_IF instead of
9208	AT_LALR1_CC_IF.
9209	Be sure to initialize the first position's filename.
9210	(AT_CHECK_CALC_LALR1_CC): Add %location and %defines, they are
9211	mandated anyway.
9212	(AT_CHECK_CALC_GLR_CC): New.
9213	Use it to exercise glr.cc as a lalr1.cc drop-in replacement.
9214
92152006-01-02  Akim Demaille  <akim@epita.fr>
9216
9217	* src/output.c (output_skeleton): Don't hard wire the inclusion of
9218	c.m4.
9219	* data/c++.m4, data/glr.c, data/yacc.c: Include c.m4.
9220	* data/glr.cc: Do not include stack.hh.
9221
92222006-01-02  Joel E. Denny  <jdenny@ces.clemson.edu>
9223
9224	* data/glr.c: Reformat whitespace with tabs.
9225	(b4_lpure_formals): Remove this unused m4 macro.
9226	* tests/cxx-type.at: Reformat whitespace with tabs.
9227	(_AT_TEST_GLR_CXXTYPES): In union Node, rename node_info to nodeInfo
9228	since it's a member.  Rename type to isNterm for clarity.
9229
92302005-12-29  Akim  <akim@sulaco.local>
9231
9232	Let glr.cc catch up with symbol_value_print.
9233	* data/glr.cc (b4_yysymprint_generate): Replace by...
9234	(b4_yy_symbol_print_generate): this.
9235	(yy_symbol_print, yy_symbol_value_print): Declare them.
9236
92372005-12-28  Paul Eggert  <eggert@cs.ucla.edu>
9238
9239	* src/location.h (boundary): Note that a line or column equal
9240	to INT_MAX indicates an overflow.
9241	* src/scan-gram.l: Include verify.h.  Don't include get-errno.h.
9242	(rule_length_overflow, increment_rule_length, add_column_width):
9243	New functions.
9244	(<INITIAL>{id}, <SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'"):
9245	(<SC_BRACED_CODE>"}"):
9246	Use increment_rule_length rather than incrementing it by hand.
9247	(adjust_location, handle_syncline): Diagnose overflow.
9248	(handle_action_dollar, handle_action_at):
9249	Fix bug with monstrosities like $-2147483648.
9250	Remove now-unnecessary checks.
9251	(scan_integer): Verify assumptions and remove now-unnecessary checks.
9252	(convert_ucn_to_byte): Verify assumptions.
9253	(handle_syncline): New arg LOC.  All callers changed.
9254	Don't store through a value derived from char const * pointer.
9255
9256	* src/reader.c (grammar_rule_check): Rewrite slightly to avoid
9257	GCC warnings.
9258
92592005-12-27  Paul Eggert  <eggert@cs.ucla.edu>
9260
9261	* src/reader.c (grammar_midrule_action, grammar_symbol_append):
9262	Remove unnecessary forward static decls.
9263
92642005-12-27  Akim Demaille  <akim@epita.fr>
9265
9266	* src/reader.c (grammar_current_rule_check): Also check that $$
9267	is used.
9268	Take the rule to check as argument, hence rename as...
9269	(grammar_rule_check): this.
9270	* src/reader.h, src/reader.c (grammar_rule_begin, grammar_rule_end):
9271	Rename as...
9272	(grammar_rule_begin, grammar_rule_end): these, for consistency.
9273	(grammar_midrule_action, grammar_symbol_append): Now static.
9274	* tests/torture.at (input): Don't rely on the default action
9275	being always performed.
9276	* tests/calc.at: "Set" $$ even when the action is "cut" with
9277	YYERROR or other.
9278	* tests/actions.at (Exotic Dollars): Instead of using unused
9279	values, check that the warning is issued.
9280
92812005-12-22  Paul Eggert  <eggert@cs.ucla.edu>
9282
9283	* NEWS: Improve wording for unused-value warnings.
9284
92852005-12-22  Akim Demaille  <akim@epita.fr>
9286
9287	* data/lalr1.cc, data/yacc.c, data/glr.c, data/c.m4
9288	(b4_yysymprint_generate): Rename as...
9289	(b4_yy_symbol_print_generate): this.
9290	Generate yy_symbol_print instead of yysymprint.
9291	Generate also yy_symbol_value_print, and use it.
9292
92932005-12-22  Akim Demaille  <akim@epita.fr>
9294
9295	* NEWS: Warn about unused values.
9296	* src/symlist.h, src/symlist.c (symbol_list, symbol_list_new): Add
9297	a `used' member.
9298	(symbol_list_n_get, symbol_list_n_used_set): New.
9299	(symbol_list_n_type_name_get): Use symbol_list_n_get.
9300	* src/scan-gram.l (handle_action_dollar): Flag used symbols.
9301	* src/reader.c (grammar_current_rule_check): Check that values are
9302	used.
9303	* src/symtab.c (symbol_print): Accept 0.
9304	* tests/existing.at: Remove the type information.
9305	Empty the actions.
9306	Remove useless actions (beware of mid-rule actions: perl -000
9307	-pi -e 's/\s*\{\}(?=[\n\s]*[|;])//g').
9308	* tests/actions.at (Exotic Dollars): Use unused values.
9309	* tests/calc.at: Likewise.
9310	* tests/glr-regression.at (No users destructors if stack 0 deleted):
9311	Likewise.
9312
9313	* src/gram.c (rule_useful_p, rule_never_reduced_p): Use
9314	rule_useful_p.
9315
93162005-12-21  Paul Eggert  <eggert@cs.ucla.edu>
9317
9318	Undo 2005-12-01 tentative license wording change.  The wording is
9319	still being reviewed by the lawyers, and we don't want to wait for
9320	them before publishing a test release.  For now, revert to the
9321	previous wording.
9322	* NEWS: Undo 2005-12-01 change.
9323	* data/glr.c: Revert to previous license wording.
9324	* data/glr.cc: Likewise.
9325	* data/lalr1.cc: Likewise.
9326	* data/location.cc: Likewise.
9327	* data/yacc.c: Likewise.
9328
9329	* NEWS: Reword %destructor vs YYABORT etc.
9330	* data/glr.c: Use American spacing, for consistency.
9331	* data/glr.cc: Likewise.
9332	* data/lalr1.cc: Likewise.
9333	* data/yacc.c: Likewise.
9334	* data/yacc.c: Reformat comments slightly.
9335	* doc/bison.texinfo: Replace "non-" with "non" when that makes sense,
9336	for consistency.  Fix some spelling errors and reword recently-included
9337	text slightly.
9338	* tests/cxx-type.at: Cast results of malloc, for C++.
9339
93402005-12-21  Joel E. Denny  <address@hidden>
9341
9342	* tests/cxx-type.at: Construct a tree, count the parents of shared
9343	nodes, and free each node once and only once.  Previously, the memory
9344	for semantic values was leaked instead.
9345
93462005-12-21  Joel E. Denny  <address@hidden>
9347
9348	* data/glr.c (struct yyGLRStack): If pure, add yyval and yyloc members.
9349	(yylval, yylloc): If pure, #define to yystackp->yyval and
9350	yystackp->yyloc similar to yychar and yynerrs.
9351	(yyparse): If pure, remove local yylval and yylloc. Add local
9352	yystackp to accommodate pure definitions of yylval and yylloc.
9353	(b4_lex_param, b4_lyyerror_args, b4_lpure_args): If pure, change
9354	yylvalp and yyllocp to &yylval and &yylloc.
9355	(nerrs, char, lval, lloc): If pure, add #define's for b4_prefix[]
9356	namespace. Previously, nerrs and char were missing, but lval and lloc
9357	weren't necessary.