Home | History | Annotate | Download | only in bison
      1 2012-01-15  Jim Meyering  <meyering (a] 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 
      8 2012-01-15  Jim Meyering  <meyering (a] 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 
     14 2012-01-15  Jim Meyering  <meyering (a] 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 
     22 2012-01-13  Jim Meyering  <meyering (a] 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 
     28 2012-01-13  Akim Demaille  <akim (a] lrde.epita.fr>
     29 
     30 	maint: factor copyright year.
     31 	* configure.ac: Use $PACKAGE_COPYRIGHT_YEAR instead of repeating it.
     32 
     33 2012-01-13  Akim Demaille  <akim (a] lrde.epita.fr>
     34 
     35 	maint: catch missing gnulib macros.
     36 	* configure.ac: Add m4_pattern_forbid.
     37 
     38 2012-01-11  Tim Landscheidt  <tim (a] tim-landscheidt.de>
     39 
     40 	java: remove used variable.
     41 	* data/lalr1.java (yyresult): remove, unused.
     42 
     43 2012-01-11  Akim Demaille  <demaille (a] gostai.com>
     44 
     45 	scanner: fix typo.
     46 	* src/scan-skel.l (@`): s/emtpy/empty/.
     47 	Reported by Tim Landscheidt.
     48 
     49 2012-01-06  Jim Meyering  <meyering (a] 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 
     57 2011-08-21  Joel E. Denny  <joeldenny (a] 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 
     66 2011-08-21  Joel E. Denny  <joeldenny (a] 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 
     78 2011-07-10  Joel E. Denny  <joeldenny (a] 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 
     90 2011-07-10  Joel E. Denny  <joeldenny (a] 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 
     99 2011-05-29  Joel E. Denny  <joeldenny (a] 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 
    107 2011-05-29  Joel E. Denny  <joeldenny (a] 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 
    118 2011-05-29  Joel E. Denny  <joeldenny (a] 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 
    128 2011-05-29  Joel E. Denny  <joeldenny (a] 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 
    136 2011-05-29  Joel E. Denny  <joeldenny (a] 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 
    148 2011-05-29  Joel E. Denny  <joeldenny (a] joeldenny.org>
    149 
    150 	Prepare for the possibility of a 2.5.1 release.
    151 	* NEWS (2.5.1): New heading.
    152 
    153 2011-05-14  Joel E. Denny  <joeldenny (a] joeldenny.org>
    154 
    155 	Version 2.5.
    156 	* NEWS (2.5): Set date.
    157 
    158 2011-05-14  Joel E. Denny  <joeldenny (a] 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 
    175 2011-05-01  Joel E. Denny  <joeldenny (a] 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 
    187 2011-05-01  Joel E. Denny  <joeldenny (a] 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 
    193 2011-05-01  Joel E. Denny  <joeldenny (a] joeldenny.org>
    194 
    195 	Version 2.5_rc1.
    196 	* NEWS (2.5): Rename to...
    197 	(2.5_rc1): ... this, and set date.
    198 
    199 2011-05-01  Joel E. Denny  <joeldenny (a] 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 
    217 2011-05-01  Joel E. Denny  <joeldenny (a] joeldenny.org>
    218 
    219 	* NEWS (2.5): Fix minor typos.
    220 
    221 2011-05-01  Joel E. Denny  <joeldenny (a] 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 
    229 2011-04-16  Joel E. Denny  <joeldenny (a] 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 
    238 2011-04-16  Joel E. Denny  <joeldenny (a] 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 
    251 2011-04-16  Joel E. Denny  <joeldenny (a] 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 
    269 2011-04-09  Joel E. Denny  <joeldenny (a] 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 
    276 2011-03-27  Joel E. Denny  <joeldenny (a] 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 
    304 2011-03-27  Joel E. Denny  <joeldenny (a] 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 
    314 2011-03-27  Joel E. Denny  <joeldenny (a] 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 
    343 2011-03-27  Joel E. Denny  <joeldenny (a] 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 
    355 2011-03-27  Joel E. Denny  <joeldenny (a] joeldenny.org>
    356 
    357 	* NEWS (2.5): Document fix for -Wno-CATEGORY.
    358 
    359 2008-11-21  Di-an Jan  <dianj (a] 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 
    365 2011-03-20  Joel E. Denny  <joeldenny (a] joeldenny.org>
    366 
    367 	doc: fix confusing citation of LAC publication.
    368 	Suggested by Akim Demaille.
    369 	* doc/bison.texinfo (LAC): Here.
    370 
    371 2011-03-20  Joel E. Denny  <joeldenny (a] 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 
    385 2011-03-13  Joel E. Denny  <joeldenny (a] joeldenny.org>
    386 
    387 	* src/parse-gram.c, src/parse-gram.h: Regenerate.
    388 
    389 2011-03-09  Akim Demaille  <akim (a] 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 
    404 2011-03-09  Akim Demaille  <akim (a] lrde.epita.fr>
    405 
    406 	tests: style changes.
    407 	* tests/named-refs.at (Redundant words in LHS brackets)
    408 	(Unresolved references): here.
    409 
    410 2011-03-06  Joel E. Denny  <joeldenny (a] 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 
    417 2011-03-06  Joel E. Denny  <joeldenny (a] 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 
    425 2011-03-06  Angelo Borsotti  <angelo.borsotti (a] 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 
    435 2011-03-06  Joel E. Denny  <joeldenny (a] joeldenny.org>
    436 
    437 	doc: cite publication for LAC.
    438 	* doc/bison.texinfo (LAC): Here.
    439 
    440 2011-03-06  Joel E. Denny  <joeldenny (a] 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 
    449 2011-03-06  Joel E. Denny  <joeldenny (a] 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 
    463 2011-03-06  Joel E. Denny  <joeldenny (a] 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 
    493 2011-02-20  Joel E. Denny  <joeldenny (a] 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 
    502 2011-02-19  Joel E. Denny  <joeldenny (a] 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 
    512 2011-02-19  Bernd Kiefer  <kiefer (a] 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 
    521 2010-05-11  Akim Demaille  <demaille (a] 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 
    529 2011-02-06  Joel E. Denny  <joeldenny (a] 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 
    539 2011-02-06  Joel E. Denny  <joeldenny (a] 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 
    553 2011-02-06  Joel E. Denny  <joeldenny (a] 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 
    565 2011-02-06  Joel E. Denny  <joeldenny (a] 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 
    580 2011-02-06  Joel E. Denny  <joeldenny (a] 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 
    588 2011-02-06  Joel E. Denny  <joeldenny (a] 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 
    602 2011-01-29  Joel E. Denny  <joeldenny (a] 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 
    635 2011-01-24  Joel E. Denny  <joeldenny (a] joeldenny.org>
    636 
    637 	* data/yacc.c: Fix last apostrophe warning from xgettext.
    638 
    639 2011-01-09  Paul Eggert  <eggert (a] 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 
    649 2011-01-09  Joel E. Denny  <joeldenny (a] 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 
    666 2011-01-08  Joel E. Denny  <joeldenny (a] 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 
    673 2011-01-05  Alex Rozenman  <rozenman (a] 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 
    683 2011-01-03  Joel E. Denny  <joeldenny (a] joeldenny.org>
    684 
    685 	* ChangeLog (2011-01-02): improve description.
    686 
    687 2011-01-03  Joel E. Denny  <joeldenny (a] 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 
    697 2011-01-02  Joel E. Denny  <joeldenny (a] joeldenny.org>
    698 
    699 	maint: run "make update-copyright".
    700 
    701 2011-01-02  Joel E. Denny  <joeldenny (a] 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 
    712 2011-01-02  Joel E. Denny  <joeldenny (a] joeldenny.org>
    713 
    714 	Correct my email address.
    715 	* ChangeLog: In all recent entries.
    716 	* THANKS (Joel E. Denny): Here.
    717 
    718 2010-12-19  Joel E. Denny  <joeldenny (a] joeldenny.org>
    719 
    720 	doc: cleanup.
    721 	* NEWS (2.5): Try to sort entries according to how interesting
    722 	users might find them.
    723 
    724 2010-12-19  Joel E. Denny  <joeldenny (a] 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 
    734 2010-12-19  Joel E. Denny  <joeldenny (a] 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 
    745 2010-12-11  Joel E. Denny  <joeldenny (a] 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 
    782 2010-12-11  Joel E. Denny  <joeldenny (a] 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 
    819 2010-11-21  Joel E. Denny  <joeldenny (a] 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 
    828 2010-11-07  Joel E. Denny  <joeldenny (a] 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 
    840 2010-11-07  Joel E. Denny  <joeldenny (a] 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 
    876 2010-11-07  Joel E. Denny  <joeldenny (a] 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 
    885 2010-11-07  Joel E. Denny  <joeldenny (a] 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 
    895 2010-10-31  Joel E. Denny  <joeldenny (a] 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 
    902 2010-10-31  Joel E. Denny  <joeldenny (a] joeldenny.org>
    903 
    904 	* ChangeLog: Correct some errors in previous entries.
    905 
    906 2010-10-17  Joel E. Denny  <joeldenny (a] 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 
    916 2010-10-08  Paul Eggert  <eggert (a] 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 
    953 2010-08-05  Joel E. Denny  <joeldenny (a] joeldenny.org>
    954 
    955 	Version 2.4.3.
    956 	* NEWS (2.4.3): Set date.
    957 
    958 2010-08-04  Joel E. Denny  <joeldenny (a] 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 
    966 2010-08-04  Joel E. Denny  <joeldenny (a] 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 
    975 2010-08-01  Joel E. Denny  <joeldenny (a] 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 
    990 2010-07-29  Joel E. Denny  <joeldenny (a] 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 
    996 2010-07-28  Joel E. Denny  <joeldenny (a] joeldenny.org>
    997 
    998 	i18n: update.
    999 	* po/POTFILES.in: Add src/graphviz.c.
   1000 
   1001 2010-07-28  Joel E. Denny  <joeldenny (a] joeldenny.org>
   1002 
   1003 	i18n: fix for gnulib.
   1004 	* po/POTFILES.in: Add remaining gnulib files that have
   1005 	translatable strings.
   1006 
   1007 2010-07-25  Joel E. Denny  <joeldenny (a] 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 
   1016 2010-07-24  Joel E. Denny  <joeldenny (a] 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 
   1023 2010-06-17  Paul Eggert  <eggert (a] 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 
   1030 2010-06-17  Paul Eggert  <eggert (a] 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 
   1095 2010-05-11  Akim Demaille  <demaille (a] 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 
   1103 2010-05-07  Akim Demaille  <demaille (a] 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 
   1114 2010-05-10  Akim Demaille  <demaille (a] 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 
   1123 2010-05-04  Akim Demaille  <demaille (a] 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 
   1137 2010-05-04  Akim Demaille  <demaille (a] 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 
   1146 2010-05-04  Akim Demaille  <demaille (a] 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 
   1154 2010-05-01  Joel E. Denny  <joeldenny (a] 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 
   1165 2010-05-01  Joel E. Denny  <joeldenny (a] 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 
   1172 2010-04-30  Joel E. Denny  <joeldenny (a] joeldenny.org>
   1173 
   1174 	Document that undefined %prec identifier warnings will remain.
   1175 	* NEWS (2.4.3): Here.
   1176 	(2.4.2): Here.
   1177 
   1178 2010-04-30  Joel E. Denny  <joeldenny (a] 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 
   1190 2010-04-25  Joel E. Denny  <joeldenny (a] 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 
   1198 2010-04-25  Joel E. Denny  <joeldenny (a] 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 
   1205 2010-04-13  Akim Demaille  <demaille (a] gostai.com>
   1206 
   1207 	tests: calc: minor refactoring.
   1208 	* tests/calc.at (_AT_DATA_CALC_Y): Simplify yylex.
   1209 
   1210 2010-04-13  Akim Demaille  <demaille (a] 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 
   1218 2010-04-13  Akim Demaille  <demaille (a] 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 
   1228 2010-04-13  Akim Demaille  <demaille (a] gostai.com>
   1229 
   1230 	tests: check fclose's return value.
   1231 	* tests/calc.at (_AT_DATA_CALC_Y): Check fclose's return status.
   1232 
   1233 2010-04-13  Akim Demaille  <demaille (a] 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 
   1240 2010-04-13  Akim Demaille  <demaille (a] gostai.com>
   1241 
   1242 	formatting changes.
   1243 	* tests/calc.at: Formatting changes.
   1244 
   1245 2010-04-13  Akim Demaille  <demaille (a] 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 
   1253 2010-04-11  Joel E. Denny  <joeldenny (a] joeldenny.org>
   1254 
   1255 	* NEWS (2.4.3): Mention fix for Sun Studio C++.
   1256 
   1257 2010-04-10  Joel E. Denny  <joeldenny (a] 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 
   1268 2010-04-03  Joel E. Denny  <jdenny (a] 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 
   1281 2010-04-05  Akim Demaille  <demaille (a] gostai.com>
   1282 
   1283 	remove useless include.
   1284 	* src/graphviz.h: Don't include stdbool.h.
   1285 
   1286 2010-04-05  Akim Demaille  <demaille (a] 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 
   1292 2010-03-31  Joel E. Denny  <jdenny (a] 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 
   1300 2010-03-30  Akim Demaille  <demaille (a] gostai.com>
   1301 
   1302 	fix comments.
   1303 	* src/graphviz.h: Add missing license notice.
   1304 	Document.
   1305 
   1306 2010-03-25  Akim Demaille  <demaille (a] 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 
   1312 2010-03-23  Joel E. Denny  <jdenny (a] 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 
   1320 2010-03-23  Joel E. Denny  <jdenny (a] 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 
   1329 2010-03-20  Joel E. Denny  <jdenny (a] 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 
   1335 2010-03-20  Joel E. Denny  <jdenny (a] 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 
   1342 2010-02-22  Joel E. Denny  <jdenny (a] 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 
   1350 2010-02-22  Joel E. Denny  <jdenny (a] 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 
   1402 2010-02-04  Joel E. Denny  <jdenny (a] 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 
   1409 2010-02-01  Joel E. Denny  <jdenny (a] clemson.edu>
   1410 
   1411 	Code cleanup.
   1412 	* tests/atlocal.in (abs_top_srcdir): Remove shell variable,
   1413 	which is already defined in atconfig.
   1414 
   1415 2010-01-21  Joel E. Denny  <jdenny (a] clemson.edu>
   1416 
   1417 	* cfg.mk (gnulib_dir): Assume gnulib is a subdirectory.
   1418 
   1419 2010-01-21  Joel E. Denny  <jdenny (a] 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 
   1428 2010-01-19  Joel E. Denny  <jdenny (a] clemson.edu>
   1429 
   1430 	* bootstrap: Import improvements from latest gnulib.
   1431 
   1432 2010-01-19  Joel E. Denny  <jdenny (a] 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 
   1440 2010-01-19  Joel E. Denny  <jdenny (a] clemson.edu>
   1441 
   1442 	gnulib: update to latest.
   1443 
   1444 2010-01-19  Joel E. Denny  <jdenny (a] clemson.edu>
   1445 
   1446 	ChangeLog (2006-09-15): add Odd Arild Olsen's role for push.c.
   1447 
   1448 2010-01-15  Joel E. Denny  <jdenny (a] 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 
   1454 2010-01-04  Joel E. Denny  <jdenny (a] 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 
   1471 2010-01-04  Joel E. Denny  <jdenny (a] clemson.edu>
   1472 
   1473 	maint: run "make update-copyright"
   1474 
   1475 2009-12-30  Joel E. Denny  <jdenny (a] 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 
   1483 2009-12-30  Joel E. Denny  <jdenny (a] 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 
   1496 2009-12-31  Joel E. Denny  <jdenny (a] clemson.edu>
   1497 
   1498 	* HACKING (Release Procedure): Recommend a secure automake.
   1499 
   1500 2008-12-11  Akim Demaille  <demaille (a] 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 
   1507 2009-12-22  Joel E. Denny  <jdenny (a] 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 
   1512 2008-12-11  Akim Demaille  <demaille (a] gostai.com>
   1513 
   1514 	Simplify the i18n of the error messages.
   1515 	* data/lalr1.cc: Comment changes.
   1516 
   1517 2008-11-11  Akim Demaille  <demaille (a] gostai.com>
   1518 
   1519 	Prefer M4 to CPP.
   1520 	* data/lalr1.cc: Use b4_error_verbose_if instead of #if
   1521 	YYERROR_VERBOSE.
   1522 
   1523 2008-11-11  Akim Demaille  <demaille (a] 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 
   1531 2009-12-22  Joel E. Denny  <jdenny (a] 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 
   1539 2009-12-29  Joel E. Denny  <jdenny (a] 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 
   1564 2009-12-20  Joel E. Denny  <jdenny (a] 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 
   1592 2009-12-21  Joel E. Denny  <jdenny (a] 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 
   1600 2009-12-21  Joel E. Denny  <jdenny (a] 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 
   1612 2009-12-17  Joel E. Denny  <jdenny (a] 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 
   1618 2009-12-16  Joel E. Denny  <jdenny (a] 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 
   1630 2009-12-16  Joel E. Denny  <jdenny (a] clemson.edu>
   1631 
   1632 	* data/yacc.c: Reformat m4 a little.
   1633 
   1634 2009-12-16  Joel E. Denny  <jdenny (a] clemson.edu>
   1635 
   1636 	Document gcc -Wundef fix.
   1637 	* NEWS (2.4.2): Here.
   1638 	* THANKS (Jonathan Nieder): Add.
   1639 
   1640 2009-12-15  Jonathan Nieder  <jrnieder (a] 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 
   1647 2009-12-15  Jonathan Nieder  <jrnieder (a] 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 
   1655 2009-12-15  Joel E. Denny  <jdenny (a] clemson.edu>
   1656 
   1657 	autoconf: update to latest for fix of M4 detection.
   1658 	Reported by Eric Blake.
   1659 	* submodules/autoconf: Update.
   1660 
   1661 2009-12-15  Joel E. Denny  <jdenny (a] 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 
   1676 2009-12-14  Joel E. Denny  <jdenny (a] 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 
   1683 2009-12-14  Joel E. Denny  <jdenny (a] 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 
   1691 2009-10-03  Alex Rozenman  <rozenman (a] 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 
   1698 2009-10-16  Joel E. Denny  <jdenny (a] 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 
   1708 2009-10-16  Joel E. Denny  <jdenny (a] 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 
   1719 2009-10-11  Joel E. Denny  <jdenny (a] 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 
   1725 2009-10-08  Joel E. Denny  <jdenny (a] clemson.edu>
   1726 
   1727 	* data/bison.m4: Update comments for rename to muscle-tab.h.
   1728 
   1729 2009-10-08  Joel E. Denny  <jdenny (a] 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 
   1740 2009-10-07  Joel E. Denny  <jdenny (a] 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 
   1750 2009-10-04  Joel E. Denny  <jdenny (a] 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 
   1758 2009-10-04  Joel E. Denny  <jdenny (a] 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 
   1767 2009-09-23  Joel E. Denny  <jdenny (a] 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 
   1787 2009-09-23  Joel E. Denny  <jdenny (a] 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 
   1796 2008-12-11  Akim Demaille  <demaille (a] 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 
   1803 2008-12-11  Akim Demaille  <demaille (a] 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 
   1809 2009-10-03  Joel E. Denny  <jdenny (a] 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 
   1815 2009-10-03  Alex Rozenman  <rozenman (a] gmail.com>
   1816 
   1817 	Add additional space after periods in NEWS.
   1818 	* NEWS (2.5): here.
   1819 
   1820 2009-09-29  Joel E. Denny  <jdenny (a] 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 
   1828 2009-09-27  Joel E. Denny  <jdenny (a] 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 
   1834 2009-09-26  Joel E. Denny  <jdenny (a] 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 
   1841 2009-09-16  Akim Demaille  <demaille (a] gostai.com>
   1842 
   1843 	doc: comment changes.
   1844 	* doc/bison.texinfo: Comment changes.
   1845 
   1846 2009-09-16  Akim Demaille  <demaille (a] gostai.com>
   1847 
   1848 	doc: spell checking.
   1849 	* doc/bison.texinfo: here.
   1850 
   1851 2009-09-19  Alex Rozenman  <rozenman (a] 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 
   1867 2009-09-13  Joel E. Denny  <jdenny (a] 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 
   1873 2009-09-12  Alex Rozenman  <rozenman (a] 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 
   1882 2009-09-10  Joel E. Denny  <jdenny (a] 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 
   1890 2009-09-03  Joel E. Denny  <jdenny (a] 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 
   1904 2009-09-03  Joel E. Denny  <jdenny (a] 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 
   1912 2009-09-05  Alex Rozenman  <rozenman (a] 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 
   1921 2009-09-03  Akim Demaille  <demaille (a] gostai.com>
   1922 
   1923 	* NEWS (2.4.2): Add "Internationalization" item.
   1924 
   1925 2009-09-03  Akim Demaille  <demaille (a] gostai.com>
   1926 
   1927 	bootstrap: fix/improve find_tool.
   1928 	* bootstrap (find_tool): Improve error messages.
   1929 	Fix typo about find_tool_names.
   1930 
   1931 2009-08-29  Joel E. Denny  <jdenny (a] 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 
   1941 2009-08-28  Joel E. Denny  <jdenny (a] 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 
   1959 2009-08-28  Joel E. Denny  <jdenny (a] 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 
   1974 2009-08-27  Eric Blake  <ebb9 (a] 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 
   1980 2009-08-27  Joel E. Denny  <jdenny (a] 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 
   1990 2009-08-26  Joel E. Denny  <jdenny (a] 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 
   1996 2009-08-26  Akim Demaille  <demaille (a] 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 
   2002 2009-08-26  Joel E. Denny  <jdenny (a] 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 
   2016 2009-08-25  Joel E. Denny  <jdenny (a] 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 
   2061 2009-08-25  Joel E. Denny  <jdenny (a] 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 
   2074 2009-08-25  Joel E. Denny  <jdenny (a] 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 
   2090 2009-08-21  Joel E. Denny  <jdenny (a] 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 
   2096 2009-08-20  Eric Blake  <ebb9 (a] 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 
   2110 2009-08-19  Joel E. Denny  <jdenny (a] 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 
   2130 2009-08-19  Akim Demaille  <demaille (a] gostai.com>
   2131 
   2132 	doc: fixes.
   2133 	* doc/bison.texinfo: Fix minor Texinfo errors.
   2134 
   2135 2009-08-19  Akim Demaille  <demaille (a] 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 
   2143 2009-08-18  Joel E. Denny  <jdenny (a] 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 
   2152 2009-08-17  Akim Demaille  <demaille (a] 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 
   2161 2009-08-17  Akim Demaille  <demaille (a] 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 
   2177 2009-08-14  Joel E. Denny  <jdenny (a] 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 
   2186 2009-08-13  Joel E. Denny  <jdenny (a] 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 
   2203 2009-08-12  Akim Demaille  <demaille (a] gostai.com>
   2204 
   2205 	distcheck: fix.
   2206 
   2207 	* examples/calc++/Makefile.am: (EXTRA_DIST): Ship calc.stamp.
   2208 
   2209 2009-08-10  Joel E. Denny  <jdenny (a] clemson.edu>
   2210 
   2211 	* tests/Makefile.am (TESTSUITE_AT): Add named-refs.at.
   2212 
   2213 2009-08-10  Joel E. Denny  <jdenny (a] 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 
   2243 2009-08-08  Alex Rozenman  <rozenman (a] 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 
   2250 2009-08-06  Joel E. Denny  <jdenny (a] clemson.edu>
   2251 
   2252 	maint: run "make update-copyright"
   2253 
   2254 2009-08-06  Joel E. Denny  <jdenny (a] 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 
   2263 2009-08-05  Joel E. Denny  <jdenny (a] 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 
   2272 2009-08-04  Joel E. Denny  <jdenny (a] 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 
   2281 2009-08-04  Joel E. Denny  <jdenny (a] 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 
   2300 2009-08-04  Joel E. Denny  <jdenny (a] clemson.edu>
   2301 
   2302 	Fix "make distcheck".
   2303 	* examples/calc++/Makefile.am: Say $(srcdir)/calc.stamp instead
   2304 	of just calc.stamp.
   2305 
   2306 2009-08-01  Joel E. Denny  <jdenny (a] 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 
   2320 2009-07-31  Alex Rozenman  <rozenman (a] 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 
   2327 2009-07-29  Joel E. Denny  <jdenny (a] 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 
   2333 2009-07-24  Alex Rozenman  <rozenman (a] 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 
   2341 2009-07-24  Joel E. Denny  <jdenny (a] 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 
   2350 2009-07-24  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   2351 
   2352 	* src/lalr.c (state_lookahead_tokens_count): Correct comment.
   2353 
   2354 2009-07-22  Joel E. Denny  <jdenny (a] 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 
   2374 2009-07-21  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   2375 
   2376 	* m4/m4.m4: Make it a sym link to submodules/autoconf/m4/m4.m4.
   2377 
   2378 2009-07-15  Joel E. Denny  <jdenny (a] 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 
   2385 2009-07-04  Alex Rozenman  <rozenman (a] gmail.com>
   2386 
   2387 	Alphabetical order in src/Makefile.am.
   2388 	* src/Makefile.am: Adjust.
   2389 
   2390 2009-07-04  Alex Rozenman  <rozenman (a] 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 
   2404 2009-06-29  Eric Blake  <ebb9 (a] byu.net>
   2405 
   2406 	scan-code: avoid compiler warnings
   2407 	* src/scan-code.l (parse_named_ref): Use correct specifiers.
   2408 
   2409 2009-06-29  Akim Demaille  <demaille (a] 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 
   2418 2009-06-27  Alex Rozenman  <rozenman (a] 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 
   2439 2009-06-25  Akim Demaille  <demaille (a] gostai.com>
   2440 
   2441 	hash: check insertion for memory exhaustion.
   2442 	* src/uniqstr.c (uniqstr_new): New.
   2443 
   2444 2009-06-11  Akim Demaille  <demaille (a] 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 
   2451 2009-06-11  Akim Demaille  <demaille (a] 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 
   2458 2009-06-11  Akim Demaille  <demaille (a] 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 
   2465 2009-06-10  Akim Demaille  <demaille (a] 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 
   2481 2009-06-10  Akim Demaille  <demaille (a] 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 
   2493 2009-05-25  Akim Demaille  <demaille (a] 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 
   2504 2009-05-22  Joel E. Denny  <jdenny (a] 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 
   2516 2009-05-22  Joel E. Denny  <jdenny (a] 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 
   2539 2009-05-22  Joel E. Denny  <jdenny (a] 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 
   2547 2009-05-22  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   2548 
   2549 	* data/c++.m4: Update copyright year.
   2550 
   2551 2009-05-20  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   2552 
   2553 	* data/c++.m4 (b4_namespace_close): Simplify slightly.
   2554 
   2555 2009-05-19  Joel E. Denny  <jdenny (a] 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 
   2563 2009-05-19  Akim Demaille  <demaille (a] 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 
   2569 2009-05-11  Akim Demaille  <demaille (a] gostai.com>
   2570 
   2571 	doc: use C++ headers.
   2572 	* doc/bison.texinfo (Calc++ Scanner): Prefer C++ headers to C
   2573 	headers.
   2574 
   2575 2009-05-05  Akim Demaille  <demaille (a] gostai.com>
   2576 
   2577 	fix hexadecimal token number support.
   2578 	* src/scan-gram.l: Catch incorrect ids after hexadecimal numbers.
   2579 
   2580 2009-05-05  Akim Demaille  <demaille (a] gostai.com>
   2581 
   2582 	tests: check token numbers.
   2583 	* tests/input.at (Numbered tokens): New.
   2584 
   2585 2009-05-04  Akim Demaille  <demaille (a] 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 
   2591 2009-05-04  Akim Demaille  <demaille (a] gostai.com>
   2592 
   2593 	space changes.
   2594 	* src/scan-gram.l: Untabify to be robust to zealous editors.
   2595 
   2596 2009-05-04  Akim Demaille  <demaille (a] 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 
   2608 2009-05-01  Joel E. Denny  <jdenny (a] 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 
   2616 2009-04-30  Joel E. Denny  <jdenny (a] 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 
   2644 2009-04-30  Joel E. Denny  <jdenny (a] 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 
   2650 2009-04-29  Joel E. Denny  <jdenny (a] 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 
   2662 2009-04-29  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   2663 
   2664 	Pacify ./configure --enable-gcc-warnings.
   2665 	* tests/input.at (Symbols): Prototype yyerror and yylex.
   2666 
   2667 2009-04-21  Akim Demaille  <demaille (a] gostai.com>
   2668 
   2669 	tests: check the use of dashes and periods in symbols.
   2670 	* tests/input.at (Symbol): New test group.
   2671 
   2672 2009-04-29  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   2673 
   2674 	Document how `%define "var" "value"' is not M4-friendly.
   2675 	* src/parse-gram.y (variable): In comments here.
   2676 
   2677 2009-04-29  Joel E. Denny  <jdenny (a] 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 
   2684 2009-04-20  Akim Demaille  <demaille (a] 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 
   2699 2009-04-24  Joel E. Denny  <jdenny (a] 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 
   2706 2009-04-24  Joel E. Denny  <jdenny (a] 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 
   2717 2009-04-23  Joel E. Denny  <jdenny (a] 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 
   2747 2009-04-21  Joel E. Denny  <jdenny (a] 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 
   2785 2009-04-21  Joel E. Denny  <jdenny (a] 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 
   2835 2009-04-21  Joel E. Denny  <jdenny (a] 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 
   2847 2009-04-20  Joel E. Denny  <jdenny (a] 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 
   2876 2009-04-20  Akim Demaille  <demaille (a] gostai.com>
   2877 
   2878 	Consistently refer to Yacc, not YACC.
   2879 	* src/getargs.c (usage, warnings_args): s/YACC/Yacc/.
   2880 
   2881 2009-04-17  Joel E. Denny  <jdenny (a] 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 
   2887 2009-04-04  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   2888 
   2889 	Document semicolon warnings.
   2890 	* NEWS (2.5): Here.
   2891 
   2892 2008-12-08  Akim Demaille  <demaille (a] 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 
   2901 2008-12-07  Di-an Jan  <dianj (a] 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 
   2917 2009-04-14  Akim Demaille  <demaille (a] 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 
   2923 2009-04-10  Eric Blake  <ebb9 (a] byu.net>
   2924 
   2925 	submodules: update to latest
   2926 	* submodules/autoconf: Use latest upstream Autoconf.
   2927 
   2928 2009-04-06  Eric Blake  <ebb9 (a] 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 
   2934 2009-04-06  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   2935 
   2936 	* NEWS (2.5): Describe new -D/--define feature.
   2937 
   2938 2008-11-10  Akim Demaille  <demaille (a] 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 
   2945 2008-11-10  Akim Demaille  <demaille (a] gostai.com>
   2946 
   2947 	muscles_output.
   2948 	* src/output.c (muscles_output): New, extracted from...
   2949 	(output_skeleton): here.
   2950 	Adjust.
   2951 
   2952 2008-11-21  Akim Demaille  <demaille (a] 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 
   2959 2008-11-20  Di-an Jan  <dianj (a] 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 
   2974 2009-02-25  Akim Demaille  <demaille (a] gostai.com>
   2975 
   2976 	Copyright years.
   2977 	* data/glr.c: Add 2007 and 2008 here, consistenly with the comments.
   2978 
   2979 2008-12-08  Akim Demaille  <demaille (a] 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 
   2986 2008-11-17  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   2987 
   2988 	Simplify last patch slightly.
   2989 	* src/getargs.c (getargs): Here.
   2990 
   2991 2008-11-17  Joel E. Denny  <jdenny (a] 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 
   2997 2008-11-17  Di-an Jan  <dianj (a] freeshell.org>
   2998 
   2999 	Handle --enable-gcc-warnings.
   3000 	* src/getargs.c (command_line_location): Set parameters to void.
   3001 
   3002 2008-11-11  Akim Demaille  <demaille (a] gostai.com>
   3003 
   3004 	AT_FULL_COMPILE.
   3005 	* tests/actions.at, tests/regression.at: Use it.
   3006 
   3007 2008-11-07  Akim Demaille  <demaille (a] 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 
   3015 2008-11-07  Akim Demaille  <demaille (a] 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 
   3026 2008-11-07  Akim Demaille  <demaille (a] 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 
   3036 2008-11-09  Akim Demaille  <demaille (a] gostai.com>
   3037 
   3038 	Require the generation of parse-gram.output.
   3039 	* src/Makefile.am (YACC): Pass --report=all.
   3040 
   3041 2009-04-06  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3042 
   3043 	* NEWS (2.5): New stub.
   3044 
   3045 2009-04-06  Joel E. Denny  <jdenny (a] 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 
   3052 2008-11-07  Akim Demaille  <demaille (a] gostai.com>
   3053 
   3054 	Fix --help.
   3055 	* src/getargs.c (usage): Fix help string for -W.
   3056 
   3057 2008-11-07  Akim Demaille  <demaille (a] 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 
   3064 2009-04-04  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3065 
   3066 	Remove spurious initial empty lines.
   3067 	* data/location.cc: End the @output lines with an @.
   3068 
   3069 2008-11-04  Akim Demaille  <demaille (a] 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 
   3075 2009-04-04  Joel E. Denny  <jdenny (a] 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 
   3084 2009-04-03  Joel E. Denny  <jdenny (a] 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 
   3090 2009-04-03  Joel E. Denny  <jdenny (a] 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 
   3109 2008-11-07  Akim Demaille  <demaille (a] 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 
   3115 2009-02-03  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3116 
   3117 	Add reminder about uploading public key to keys.gnupg.net.
   3118 	* HACKING (Release Procedure): Here.
   3119 
   3120 2009-03-31  Akim Demaille  <demaille (a] 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 
   3126 2009-03-31  Akim Demaille  <demaille (a] gostai.com>
   3127 
   3128 	bootstrap: README-hacking no longer exists
   3129 	* bootstrap (checkout_only_file): Set to HACKING.
   3130 
   3131 2009-03-26  Akim Demaille  <demaille (a] 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 
   3140 2009-03-26  Akim Demaille  <demaille (a] 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 
   3146 2009-03-26  Akim Demaille  <demaille (a] 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 
   3157 2009-03-26  Akim Demaille  <demaille (a] 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 
   3164 2009-01-08  Akim Demaille  <demaille (a] 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 
   3178 2008-12-11  Joel E. Denny  <jdenny (a] 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 
   3185 2008-12-11  Joel E. Denny  <jdenny (a] 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 
   3191 2008-12-11  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3192 
   3193 	* gnulib: Update submodule to HEAD.
   3194 
   3195 2008-12-09  Akim Demaille  <demaille (a] gostai.com>
   3196 
   3197 	Update data/README.
   3198 	* data/README: Document glr.cc, lalr1.java, m4sugar and xslt.
   3199 
   3200 2008-12-05  Eric Blake  <ebb9 (a] 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 
   3211 2008-11-19  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3212 
   3213 	* NEWS: Clarify a little.
   3214 
   3215 2008-11-19  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3216 
   3217 	* NEWS: Update for recent changes.
   3218 
   3219 2008-11-18  Joel E. Denny  <jdenny (a] 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 
   3239 2008-11-17  Joel E. Denny  <jdenny (a] 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 
   3245 2008-11-17  Di-an Jan  <dianj (a] 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 
   3254 2008-11-11  Paolo Bonzini  <bonzini (a] 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 
   3262 2008-11-07  Joel E. Denny  <jdenny (a] 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 
   3268 2008-11-07  Joel E. Denny  <jdenny (a] 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 
   3281 2008-11-04  Akim Demaille  <demaille (a] gostai.com>
   3282 
   3283 	* NEWS: Mention the trailing semicolon in action.
   3284 
   3285 2008-11-04  Akim Demaille  <demaille (a] gostai.com>
   3286 
   3287 	Reformat NEWS.
   3288 	* NEWS: Use more outline-mode markup.
   3289 	Suggested by Jim Meyering.
   3290 
   3291 2008-11-04  Joel E. Denny  <jdenny (a] 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 
   3301 2008-11-02  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3302 
   3303 	Initiate further development.
   3304 	* NEWS: Create an empty section for new entries.
   3305 	* gnulib: Update submodule to HEAD.
   3306 
   3307 2008-11-02  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3308 
   3309 	* NEWS: Version 2.4.
   3310 
   3311 2008-11-02  Joel E. Denny  <jdenny (a] 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 
   3318 2008-11-02  Joel E. Denny  <jdenny (a] 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 
   3332 2008-11-01  Di-an Jan  <dianj (a] freeshell.org>
   3333 	    Paolo Bonzini  <bonzini (a] 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 
   3386 2008-10-31  Di-an Jan  <dianj (a] 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 
   3397 2008-10-30  Joel E. Denny  <jdenny (a] 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 
   3409 2008-10-29  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3410 
   3411 	* gnulib: Update submodule to HEAD.
   3412 
   3413 2008-10-28  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3414 
   3415 	Update copyright year.
   3416 	* src/files.c: Here.
   3417 
   3418 2008-10-28  Di-an Jan  <dianj (a] 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 
   3427 2008-10-28  Akim Demaille  <demaille (a] gostai.com>
   3428 
   3429 	Space changes.
   3430 	* data/lalr1.cc: Formatting changes.
   3431 
   3432 2008-10-28  Akim Demaille  <demaille (a] 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 
   3440 2008-10-28  Akim Demaille  <demaille (a] gostai.com>
   3441 
   3442 	Prefer "continue" for empty loop bodies.
   3443 	* etc/bench.pl.in: Use "continue" instead of {}.
   3444 
   3445 2008-10-28  Akim Demaille  <demaille (a] 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 
   3451 2008-10-28  Akim Demaille  <demaille (a] gostai.com>
   3452 
   3453 	Make gnulib a submodule.
   3454 	* gnulib: New.
   3455 	* .gitmodules (gnulib): New.
   3456 
   3457 2008-10-18  Joel E. Denny  <jdenny (a] 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 
   3465 2008-10-18  Joel E. Denny  <jdenny (a] 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 
   3484 2008-10-08  Di-an Jan  <dianj (a] 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 
   3490 2008-08-29  Akim Demaille  <demaille (a] 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 
   3497 2008-08-29  Akim Demaille  <demaille (a] gostai.com>
   3498 
   3499 	* README: Update FAQ pointer.
   3500 	Reported by Joel E. Denny.
   3501 
   3502 2008-08-27  Eric Blake  <ebb9 (a] 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 
   3512 2008-08-27  Akim Demaille  <demaille (a] 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 
   3519 2008-08-27  Akim Demaille  <demaille (a] 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 
   3525 2008-08-26  Joel E. Denny  <jdenny (a] 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 
   3532 2008-08-26  Joel E. Denny  <jdenny (a] 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 
   3538 2008-08-15  Eric Blake  <ebb9 (a] 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 
   3557 2008-08-07  Joel E. Denny  <jdenny (a] 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 
   3565 2008-08-06  Eric Blake  <ebb9 (a] 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 
   3582 2008-08-05  Eric Blake  <ebb9 (a] 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 
   3596 2008-08-02  Joel E. Denny  <jdenny (a] 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 
   3602 2008-08-02  Joel E. Denny  <jdenny (a] 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 
   3610 2008-07-31  Paolo Bonzini  <bonzini (a] gnu.org>
   3611 
   3612 	* NEWS: Clarify documentation of %language.
   3613 
   3614 2008-07-31  Paolo Bonzini  <bonzini (a] 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 
   3622 2008-07-27  Joel E. Denny  <jdenny (a] 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 
   3638 2008-07-27  Joel E. Denny  <jdenny (a] 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 
   3646 2008-07-20  Joel E. Denny  <jdenny (a] 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 
   3654 2008-07-18  Joel E. Denny  <jdenny (a] 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 
   3691 2008-07-16  Joel E. Denny  <jdenny (a] 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 
   3704 2008-07-15  Joel E. Denny  <jdenny (a] 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 
   3724 2008-07-15  Joel E. Denny  <jdenny (a] 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 
   3737 2008-07-14  Joel E. Denny  <jdenny (a] 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 
   3754 2008-05-27  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3755 
   3756 	* NEWS (2.3b+): New section, empty for now.
   3757 	* configure.ac (AC_INIT): 2.3b -> 2.3b+.
   3758 
   3759 2008-05-27  Joel E. Denny  <jdenny (a] 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 
   3764 2008-05-23  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3765 
   3766 	* NEWS: Version 2.3b.
   3767 	* configure.ac (AC_INIT): Likewise.
   3768 	(PACKAGE_COPYRIGHT_YEAR): Update to 2008.
   3769 
   3770 2008-05-23  Joel E. Denny  <jdenny (a] 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 
   3777 2008-05-13  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3778 
   3779 	* data/yacc.c: Reformat m4 a little for readability.
   3780 	* src/lalr.c (build_relations): Correct comment.
   3781 
   3782 2008-05-12  Juan Manuel Guerrero  <juan.guerrero (a] gmx.de>
   3783 
   3784 	DJGPP specific issue.
   3785 	* djgpp/config.sed: Fixes required to run configure scripts generated
   3786 	by autoconf 2.62.
   3787 
   3788 2008-05-07  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3789 
   3790 	* HACKING (Release Procedure): translation (a] iro.umontreal.ca is now
   3791 	coordinator (a] translationproject.org.
   3792 
   3793 2008-05-06  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3794 
   3795 	* THANKS: Add Eric Blake.
   3796 
   3797 2008-04-23  Eric Blake  <ebb9 (a] 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 
   3805 2008-04-21  Joel E. Denny  <jdenny (a] 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 
   3814 2008-04-21  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3815 
   3816 	* GNUmakefile: Update git-version-gen invocation so make dist
   3817 	succeeds.
   3818 
   3819 2008-04-21  Joel E. Denny  <jdenny (a] 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 
   3839 2008-04-20  Joel E. Denny  <jdenny (a] 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 
   3849 2008-03-08  Joel E. Denny  <jdenny (a] 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 
   3862 2008-02-28  Akim Demaille  <demaille (a] gostai.com>
   3863 
   3864 	* doc/bison.texinfo: Fix a few typos.
   3865 
   3866 2008-02-28  Akim Demaille  <akim (a] 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 
   3871 2008-02-28  Akim Demaille  <akim (a] 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 
   3880 2008-02-22  Joel E. Denny  <jdenny (a] 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 
   3907 2008-02-21  Wojciech Polak  <polak (a] gnu.org>
   3908 
   3909 	* data/xslt/xml2xhtml.xsl (xsl:template match="/"): Change footer
   3910 	text.
   3911 
   3912 2008-02-20  Joel E. Denny  <jdenny (a] 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 
   3930 2008-02-19  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   3931 
   3932 	* runtime-po/POTFILES.in (push.c): Remove.
   3933 
   3934 2008-02-17  Joel E. Denny  <jdenny (a] 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 
   3943 2008-02-17  Joel E. Denny  <jdenny (a] 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 
   3950 2008-02-16  Joel E. Denny  <jdenny (a] 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 
   3960 2008-02-16  Joel E. Denny  <jdenny (a] 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 
   3978 2008-02-06  Juan Manuel Guerrero  <juan.guerrero (a] 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 
   3998 2008-01-30  Paul Eggert  <eggert (a] cs.ucla.edu>
   3999 
   4000 	* doc/bison.texinfo: Update Back-Cover text to reflect new GNU wording.
   4001 
   4002 2008-01-09  Paul Eggert  <eggert (a] 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 
   4008 2008-01-05  Wojciech Polak  <polak (a] 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 
   4013 2007-12-22  Joel E. Denny  <jdenny (a] 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 
   4057 2007-12-08  Joel E. Denny  <jdenny (a] 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 
   4079 2007-12-08  Joel E. Denny  <jdenny (a] 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 
   4111 2007-12-01  Joel E. Denny  <jdenny (a] 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 
   4125 2007-11-26  Akim Demaille  <akim (a] epita.fr>
   4126 
   4127 	* data/Makefile.am (dist_pkgdata_DATA): Ship and install bison.xsl.
   4128 
   4129 2007-11-24  Joel E. Denny  <jdenny (a] 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 
   4163 2007-11-18  Joel E. Denny  <jdenny (a] 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 
   4179 2007-11-14  Akim Demaille  <akim (a] 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 
   4188 2007-11-10  Joel E. Denny  <jdenny (a] 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 
   4243 2007-11-09  Joel E. Denny  <jdenny (a] 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 
   4251 2007-11-08  Paolo Bonzini  <bonzini (a] gnu.org>
   4252 
   4253 	* data/lalr1.java (Lexer): Remove usage of b4_pure_if.
   4254 
   4255 2007-11-05  Akim Demaille  <akim (a] 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 
   4262 2007-11-05  Akim Demaille  <demaille (a] 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 
   4269 2007-11-04  Akim Demaille  <demaille (a] 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 
   4276 2007-11-04  Akim Demaille  <demaille (a] 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 
   4284 2007-11-04  Akim Demaille  <demaille (a] 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 
   4290 2007-11-04  Akim Demaille  <demaille (a] gostai.com>
   4291 
   4292 	Find sha1sum when named gsha1sum.
   4293 	* bootstrap (find_tool): New.
   4294 	($SHA1SUM): New.
   4295 
   4296 2007-10-28  Joel E. Denny  <jdenny (a] 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 
   4341 2007-10-28  Joel E. Denny  <jdenny (a] 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 
   4364 2007-10-27  Joel E. Denny  <jdenny (a] 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 
   4377 2007-10-21  Joel E. Denny  <jdenny (a] 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 
   4395 2007-10-19  Joel E. Denny  <jdenny (a] 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 
   4404 2007-10-19  Joel E. Denny  <jdenny (a] 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 
   4412 2007-10-17  Wojciech Polak  <polak (a] 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 
   4422 2007-10-17  Joel E. Denny  <jdenny (a] 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 
   4435 2007-10-11  Wojciech Polak  <polak (a] 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 
   4448 2007-10-09  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   4449 
   4450 	* src/getargs.c (version): Update copyright year.
   4451 
   4452 2007-10-09  Joel E. Denny  <jdenny (a] 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 
   4500 2007-10-08  Joel E. Denny  <jdenny (a] 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 
   4525 2007-10-08  Joel E. Denny  <jdenny (a] 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 
   4556 2007-10-07  Joel E. Denny  <jdenny (a] 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 
   4575 2007-10-04  Joel E. Denny  <jdenny (a] 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 
   4588 2007-09-29  Joel E. Denny  <jdenny (a] 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 
   4596 2007-09-25  Joel E. Denny  <jdenny (a] 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 
   4641 2007-09-24  Wojciech Polak  <polak (a] 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 
   4651 2007-09-23  Paul Eggert  <eggert (a] 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 
   4659 2007-09-23  Joel E. Denny  <jdenny (a] 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 
   4667 2007-09-21  Paul Eggert  <eggert (a] 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 
   4678 2007-09-21  Wojciech Polak  <polak (a] 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 
   4718 2007-09-21  Paul Eggert  <eggert (a] 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 (a] cs.ucla.edu>
   4728 		    Bruno Haible  <bruno (a] 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 
   4733 2007-08-28  Joel E. Denny  <jdenny (a] 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 
   4745 2007-08-17  Joel E. Denny  <jdenny (a] 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 
   4759 2007-08-17  Bob Rossi  <bob (a] 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 
   4771 2007-08-15  Paul Eggert  <eggert (a] 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 
   4828 2007-08-11  Joel E. Denny  <jdenny (a] 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 
   4845 2007-08-11  Joel E. Denny  <jdenny (a] 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 
   4853 2007-08-03  Joel E. Denny  <jdenny (a] 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 
   4864 2007-07-28  Joel E. Denny  <jdenny (a] 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 
   4872 2007-07-27  Joel E. Denny  <jdenny (a] 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 
   4884 2007-07-17  Joel E. Denny  <jdenny (a] 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 
   4910 2007-07-16  Joel E. Denny  <jdenny (a] 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 
   4916 2007-07-10  Joel E. Denny  <jdenny (a] 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 
   4921 2007-07-09  Joel E. Denny  <jdenny (a] 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 
   4929 2007-07-02  Joel E. Denny  <jdenny (a] 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 
   4939 2007-07-01  Joel E. Denny  <jdenny (a] 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 
   4946 2007-05-29  Joel E. Denny  <jdenny (a] 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 
   4961 2007-05-28  Joel E. Denny  <jdenny (a] 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 
   4985 2007-05-27  Joel E. Denny  <jdenny (a] 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 
   5002 2007-05-26  Joel E. Denny  <jdenny (a] 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 
   5019 2007-05-20  Joel E. Denny  <jdenny (a] 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 
   5040 2007-05-07  Joel E. Denny  <jdenny (a] 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 
   5049 2007-05-06  Joel E. Denny  <jdenny (a] 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 
   5071 2007-05-06  Joel E. Denny  <jdenny (a] 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 
   5087 2007-04-04  Paul Eggert  <eggert (a] 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 
   5099 2007-03-10  Joel E. Denny  <jdenny (a] 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 
   5106 2007-03-07  Paolo Bonzini  <bonzini (a] 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 
   5141 2007-03-07  Juan Manuel Guerrero  <juan.guerrero (a] 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 
   5150 2007-03-02  Joel E. Denny  <jdenny (a] 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 
   5204 2007-02-28  Joel E. Denny  <jdenny (a] 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 
   5212 2007-02-27  Paolo Bonzini  <bonzini (a] gnu.org>
   5213 
   5214 	* data/lalr1.java: Prefix all private members with yy.
   5215 
   5216 2007-02-24  Joel E. Denny  <jdenny (a] 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 
   5226 2007-02-19  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   5227 
   5228 	* bootstrap: Remove occurrences of .#bootmp from lib/Makefile.
   5229 
   5230 2007-02-13  Juan Manuel Guerrero  <juan.guerrero (a] 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 
   5236 2007-02-11  Paul Eggert  <eggert (a] 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 
   5251 2007-02-11  Bruno Haible  <bruno (a] 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 
   5258 2007-02-11  Joel E. Denny  <jdenny (a] 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 
   5270 2007-02-10  Joel E. Denny  <jdenny (a] 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 
   5281 2007-02-07  Paul Eggert  <eggert (a] 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 
   5296 2007-02-07  Paolo Bonzini  <bonzini (a] 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 
   5302 2007-02-05  Paolo Bonzini  <bonzini (a] 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 
   5309 2007-02-03  Paul Eggert  <eggert (a] 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 
   5320 2007-02-01  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   5321 
   5322 	* doc/bison.texinfo (Decl Summary): Correct typo.
   5323 
   5324 2007-01-30  Paolo Bonzini  <bonzini (a] 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 
   5334 2007-01-29  Paolo Bonzini  <bonzini (a] 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 
   5358 2007-01-28  Joel E. Denny  <jdenny (a] 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 
   5381 2007-01-27  Joel E. Denny  <jdenny (a] 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 
   5398 2007-01-26  Paul Eggert  <eggert (a] 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 
   5407 2007-01-23  Paolo Bonzini  <bonzini (a] 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 
   5424 2007-01-17  Joel E. Denny  <jdenny (a] 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 
   5445 2007-01-17  Paolo Bonzini  <bonzini (a] gnu.org>
   5446 
   5447 	* bootstrap: Remove occurrences of .#bootmp from the files.
   5448 
   5449 2007-01-17  Akim Demaille  <akim (a] epita.fr>
   5450 
   5451 	* doc/bison.texinfo (Calc++ Parser): Don't try to alias
   5452 	nonterminals.
   5453 	Use per-type %printer.
   5454 
   5455 2007-01-17  Joel E. Denny  <jdenny (a] 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 
   5465 2007-01-16  Akim Demaille  <akim (a] 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 
   5475 2007-01-16  Akim Demaille  <akim (a] epita.fr>
   5476 
   5477 	* data/lalr1.cc (yy_reduce_print_): Add a missing end-of-line.
   5478 
   5479 2007-01-15  Paolo Bonzini  <bonzini (a] gnu.org>
   5480 	and Joel E. Denny  <jdenny (a] 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 
   5518 2007-01-14  Juan Manuel Guerrero  <juan.guerrero (a] 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 
   5525 2007-01-09  Joel E. Denny  <jdenny (a] 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 
   5533 2007-01-09  Joel E. Denny  <jdenny (a] 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 
   5542 2007-01-09  Joel E. Denny  <jdenny (a] 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 
   5552 2007-01-09  Paolo Bonzini  <bonzini (a] gnu.org>
   5553 	and Joel E. Denny  <jdenny (a] 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 
   5585 2007-01-08  Joel E. Denny  <jdenny (a] 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 
   5612 2007-01-08  Joel E. Denny  <jdenny (a] 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 
   5619 2007-01-08  Joel E. Denny  <jdenny (a] 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 
   5676 2007-01-07  Joel E. Denny  <jdenny (a] 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 
   5702 2007-01-06  Joel E. Denny  <jdenny (a] 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 
   5736 2007-01-06  Joel E. Denny  <jdenny (a] 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 
   5745 2007-01-05  Joel E. Denny  <jdenny (a] 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 
   5807 2007-01-04  Joel E. Denny  <jdenny (a] 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 
   5846 2007-01-03  Joel E. Denny  <jdenny (a] 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 
   5886 2007-01-03  Joel E. Denny  <jdenny (a] 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 
   5899 2007-01-02  Joel E. Denny  <jdenny (a] 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 
   5919 2007-01-02  Joel E. Denny  <jdenny (a] 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 
   5966 2007-01-01  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   5967 
   5968 	* etc/.cvsignore: New.
   5969 
   5970 2007-01-01  Joel E. Denny  <jdenny (a] 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 
   5986 2006-12-31  Joel E. Denny  <jdenny (a] 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 
   6010 2006-12-31  Joel E. Denny  <jdenny (a] 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 
   6050 2006-12-26  Joel E. Denny  <jdenny (a] 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 
   6075 2006-12-25  Joel E. Denny  <jdenny (a] 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 
   6088 2006-12-25  Joel E. Denny  <jdenny (a] 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 
   6114 2006-12-20  Joel E. Denny  <jdenny (a] 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 
   6128 2006-12-20  Joel E. Denny  <jdenny (a] 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 
   6143 2006-12-20  Joel E. Denny  <jdenny (a] 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 
   6169 2006-12-19  Joel E. Denny  <jdenny (a] 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 
   6178 2006-12-19  Joel E. Denny  <jdenny (a] 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 
   6208 2006-12-19  Joel E. Denny  <jdenny (a] 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 
   6217 2006-12-19  Paolo Bonzini  <bonzini (a] gnu.org>
   6218 	and Joel E. Denny  <jdenny (a] 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 
   6239 2006-12-18  Paul Eggert  <eggert (a] 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 
   6255 2006-12-18  Paolo Bonzini  <bonzini (a] 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 
   6293 2006-12-18  Paul Eggert  <eggert (a] 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 
   6305 2006-12-16  Joel E. Denny  <jdenny (a] 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 
   6318 2006-12-15  Bob Rossi  <bob (a] brasko.net>
   6319 	and Joel Denny  <jdenny (a] 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 
   6325 2006-12-14  Bob Rossi  <bob (a] brasko.net>
   6326 
   6327 	* data/push.c (yypush_parse): Declare prototype regardless of
   6328 	%locations option.
   6329 
   6330 2006-12-14  Bob Rossi  <bob (a] brasko.net>
   6331 
   6332 	* data/push.c (yyparse): Remove the prototype and the #define when in
   6333 	push-parser mode.
   6334 
   6335 2006-12-13  Bob Rossi  <bob (a] 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 
   6344 2006-12-13  Joel E. Denny  <jdenny (a] 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 
   6349 2006-12-13  Paul Eggert  <eggert (a] cs.ucla.edu>
   6350 
   6351 	* TODO: Add pointer to Sylvain Schmitz's work on static detection
   6352 	of potential ambiguities in GLR grammers.
   6353 
   6354 2006-12-12  Joel E. Denny  <jdenny (a] 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 
   6396 2006-12-09  Joel E. Denny  <jdenny (a] 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 
   6413 2006-12-09  Ralf Wildenhues  <Ralf.Wildenhues (a] gmx.de>
   6414 
   6415 	* doc/bison.texinfo: Fix a couple of typos.
   6416 
   6417 2006-12-08  Bob Rossi  <bob (a] 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 
   6429 2006-12-07  Bob Rossi  <bob (a] brasko.net>
   6430 	and Joel Denny  <jdenny (a] 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 
   6438 2006-12-05  Bob Rossi  <bob (a] 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 
   6458 2006-12-05  Joel E. Denny  <jdenny (a] 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 
   6470 2006-12-01  Joel E. Denny  <jdenny (a] 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 
   6492 2006-11-21  Joel E. Denny  <jdenny (a] 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 
   6501 2006-11-20  Joel E. Denny  <jdenny (a] 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 
   6521 2006-11-17  Joel E. Denny  <jdenny (a] 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 
   6529 2006-11-10  Joel E. Denny  <jdenny (a] 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 
   6537 2006-11-10  Joel E. Denny  <jdenny (a] 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 
   6551 2006-11-09  Joel E. Denny  <jdenny (a] 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 
   6563 2006-11-08  Paul Eggert  <eggert (a] 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 
   6571 2006-11-08  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   6572 	and Paul Eggert  <eggert (a] 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 
   6624 2006-11-08  Paul Eggert  <eggert (a] 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 
   6631 2006-10-31  Joel E. Denny  <jdenny (a] 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 
   6648 2006-10-31  Joel E. Denny  <jdenny (a] 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 
   6664 2006-10-31  Joel E. Denny  <jdenny (a] 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 
   6669 2006-10-21  Joel E. Denny  <jdenny (a] 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 
   6674 2006-10-21  Joel E. Denny  <jdenny (a] 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 
   6720 2006-10-21  Joel E. Denny  <jdenny (a] 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 
   6736 2006-10-20  Joel E. Denny  <jdenny (a] 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 
   6749 2006-10-20  Joel E. Denny  <jdenny (a] 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 
   6758 2006-10-16  Joel E. Denny  <jdenny (a] 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 
   6778 2006-10-16  Juan Manuel Guerrero  <juan.guerrero (a] 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 
   6787 2006-10-16  Paolo Bonzini  <bonzini (a] 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 
   6808 2006-10-14  Paul Eggert  <eggert (a] cs.ucla.edu>
   6809 
   6810 	* lib/Makefile.am (AM_CFLAGS): Remove $(WERROR_CFLAGS).
   6811 	Problem reported by Joel E. Denny.
   6812 
   6813 2006-10-14  Jim Meyering  <jim (a] 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 
   6826 2006-10-14  Joel E. Denny  <jdenny (a] 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 
   6836 2006-10-12  Paul Eggert  <eggert (a] 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 (a] 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 (a] 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 (a] 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 
   6887 2006-10-12  Paul Eggert  <eggert (a] 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 
   6924 2006-10-11  Bob Rossi  <bob (a] 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 
   6932 2006-10-11  Paul Eggert  <eggert (a] 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 
   6937 2006-10-11  Bob Rossi  <bob (a] 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 
   6944 2006-10-09  Paul Eggert  <eggert (a] cs.ucla.edu>
   6945 
   6946 	* THANKS: Add Paolo Bonzini and Bob Rossi.
   6947 
   6948 2006-10-08  Paolo Bonzini  <bonzini (a] 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 
   6961 2006-10-05  Paul Eggert  <eggert (a] 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 
   6978 2006-10-01  Paul Eggert  <eggert (a] 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 
   6988 2006-09-29  Paul Eggert  <eggert (a] cs.ucla.edu>
   6989 
   6990 	Merge bootstrap changes from coreutils.
   6991 
   6992 	2006-09-28  Jim Meyering  <jim (a] 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 (a] meyering.net>
   7000 
   7001 	* bootstrap (gnulib_tool_options): Add "--local-dir gl".
   7002 
   7003 	2006-09-20  Paul Eggert  <eggert (a] 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 
   7009 2006-09-21  Paul Eggert  <eggert (a] 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 
   7015 2006-09-20  Bob Rossi  <bob (a] brasko.net>
   7016 
   7017 	* data/push.c (yyresult_get): Remove function.
   7018 	(YYPUSH_MORE): Add #define.
   7019 	(yypushparse): Modify return value.
   7020 
   7021 2006-09-20  Paul Eggert  <eggert (a] 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 (a] 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 
   7040 2006-09-20  Paul Eggert  <eggert (a] 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 
   7046 2006-09-15  Paul Eggert  <eggert (a] 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 
   7109 2006-09-15  Bob Rossi  <bob (a] brasko.net>
   7110 
   7111 	Add support for push parsing.  Based on the original work of
   7112 	Odd Arild Olsen <oao (a] 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 
   7127 2006-09-13  Paul Eggert  <eggert (a] 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 
   7159 2006-09-12  Paul Eggert  <eggert (a] 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 
   7167 2006-09-12  Paolo Bonzini  <bonzini (a] 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 
   7173 2006-09-11  Paul Eggert  <eggert (a] 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 
   7198 2006-09-04  Joel E. Denny  <jdenny (a] 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 
   7227 2006-09-04  Joel E. Denny  <jdenny (a] 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 
   7254 2006-08-23  Joel E. Denny  <jdenny (a] 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 
   7277 2006-08-21  Joel E. Denny  <jdenny (a] 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 
   7289 2006-08-19  Joel E. Denny  <jdenny (a] 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 
   7301 2006-08-18  Joel E. Denny  <jdenny (a] 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 
   7323 2006-08-18  Joel E. Denny  <jdenny (a] 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 
   7348 2006-08-14  Joel E. Denny  <jdenny (a] 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 
   7361 2006-08-13  Joel E. Denny  <jdenny (a] 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 
   7371 2006-08-12  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   7372 
   7373 	* src/parse-gram.y: Add `%expect 0' so we don't overlook conflicts.
   7374 
   7375 2006-08-11  Paul Eggert  <eggert (a] 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 
   7394 2006-08-10  Joel E. Denny  <jdenny (a] 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 
   7406 2006-08-09  Joel E. Denny  <jdenny (a] 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 
   7416 2006-08-09  Ralf Wildenhues <Ralf.Wildenhues (a] gmx.de>  (tiny change)
   7417 
   7418 	* doc/bison.texinfo: Fix some typos.
   7419 
   7420 2006-08-02  Paul Eggert  <eggert (a] 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 
   7430 2006-07-29  Joel E. Denny  <jdenny (a] 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 
   7474 2006-07-29  Joel E. Denny  <jdenny (a] 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 
   7503 2006-07-24  Paul Eggert  <eggert (a] 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 
   7528 2006-07-20  Paul Eggert  <eggert (a] cs.ucla.edu>
   7529 
   7530 	* bootstrap: Adjust to today's change to gnulib-tool by invoking
   7531 	it with --assume-autoconf='latest-stable'.
   7532 
   7533 2006-07-13  Joel E. Denny  <jdenny (a] 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 
   7541 2006-07-13  Akim Demaille  <akim (a] 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 
   7556 2006-07-12  Paul Eggert  <eggert (a] 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 
   7566 2006-07-12  Akim Demaille  <akim (a] epita.fr>
   7567 
   7568 	* data/c.m4: Comment changes.
   7569 
   7570 2006-07-10  Akim Demaille  <akim (a] 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 
   7577 2006-07-09  Paul Eggert  <eggert (a] 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 
   7620 2006-07-09  Akim Demaille  <akim (a] 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 
   7633 2006-07-09  Joel E. Denny  <jdenny (a] 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 
   7641 2006-07-09  Akim Demaille  <akim (a] 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 
   7647 2006-07-09  Paul Eggert  <eggert (a] 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 
   7655 2006-07-08  Paul Eggert  <eggert (a] 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 
   7697 2006-07-08  Akim Demaille  <akim (a] 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 
   7706 2006-07-08  Akim Demaille  <akim (a] 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 
   7716 2006-07-07  Joel E. Denny  <jdenny (a] 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 
   7725 2006-07-07  Joel E. Denny  <jdenny (a] 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 
   7737 2006-06-27  Akim Demaille  <akim (a] epita.fr>
   7738 
   7739 	* doc/Doxyfile.in: New.
   7740 	* doc/Makefile.am: Use it.
   7741 	* src/lalr.h, src/symtab.h: Initial doxygenation.
   7742 
   7743 2006-06-26  Joel E. Denny  <jdenny (a] 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 
   7763 2006-06-26  Joel E. Denny  <jdenny (a] 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 
   7811 2006-06-26  Joel E. Denny  <jdenny (a] 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 
   7822 2006-06-25  Joel E. Denny  <jdenny (a] 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 
   7832 2006-06-24  Joel E. Denny  <jdenny (a] 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 
   7857 2006-06-23  Joel E. Denny  <jdenny (a] 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 
   7901 2006-06-22  Joel E. Denny  <jdenny (a] 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 
   7920 2006-06-20  Joel E. Denny  <jdenny (a] 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 
   7978 2006-06-20  Akim Demaille  <akim (a] 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 
   7984 2006-06-19  Joel E. Denny  <jdenny (a] 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 
   7989 2006-06-19  Paul Eggert  <eggert (a] 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 
   8010 2006-06-19  Akim Demaille  <akim (a] 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 
   8028 2006-06-11  Joel E. Denny  <jdenny (a] 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 
   8051 2006-06-11  Paul Eggert  <eggert (a] 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 
   8061 2006-06-09  Joel E. Denny  <jdenny (a] 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 
   8134 2006-06-08  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   8135 
   8136 	* src/flex-scanner.h (yytext): Remove stray `*/' in #define.
   8137 
   8138 2006-06-07  Paul Eggert  <eggert (a] 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 
   8143 2006-06-07  Joel E. Denny  <jdenny (a] 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 
   8152 2006-06-07  Joel E. Denny  <jdenny (a] 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 
   8164 2006-06-07  Akim Demaille  <akim (a] 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 
   8172 2006-06-07  Akim Demaille  <akim (a] epita.fr>
   8173 
   8174 	* src/Makefile.am (BUILT_SOURCES): Fix the trailing backslash.
   8175 
   8176 2006-06-06  Akim Demaille  <akim (a] 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 
   8239 2006-06-06  Joel E. Denny  <jdenny (a] 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 
   8245 2006-06-06  Joel E. Denny  <jdenny (a] 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 
   8262 2006-06-05  Paul Eggert  <eggert (a] cs.ucla.edu>
   8263 
   8264 	* NEWS: Version 2.3.
   8265 	* configure.ac (AC_INIT): Likewise.
   8266 
   8267 2006-05-30  Paul Eggert  <eggert (a] 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 
   8276 2006-05-30  Joel E. Denny  <jdenny (a] 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 
   8282 2006-05-29  Paul Eggert  <eggert (a] cs.ucla.edu>
   8283 
   8284 	* doc/bison.texinfo (Introduction): Don't say "GLR grammar".
   8285 	Problem reported by Akim Demaille.
   8286 
   8287 2006-05-29  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   8288 
   8289 	* src/getargs.c (usage): Mention GLR not just LALR(1) in --help output.
   8290 
   8291 2006-05-26  Paul Eggert  <eggert (a] 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 
   8297 2006-05-22  Paul Eggert  <eggert (a] 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 
   8306 2006-05-21  Joel E. Denny  <jdenny (a] 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 
   8315 2006-05-21  Joel E. Denny  <jdenny (a] 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 
   8330 2006-05-20  Paul Eggert  <eggert (a] 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 
   8344 2006-05-19  Paul Eggert  <eggert (a] cs.ucla.edu>
   8345 
   8346 	* NEWS: Version 2.2.
   8347 	* configure.ac (AC_INIT): Likewise.
   8348 
   8349 2006-05-17  Joel E. Denny  <jdenny (a] 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 
   8362 2006-05-14  Paul Eggert  <eggert (a] 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 
   8381 2006-05-14  Akim Demaille  <akim (a] lrde.epita.fr>
   8382 
   8383 	* doc/bison.texinfo (C++ Bison Interface): Clarify the naming
   8384 	scheme.
   8385 	Reported by Steve Murphy.
   8386 
   8387 2006-05-14  Akim Demaille  <akim (a] 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 
   8392 2006-05-14  Akim Demaille  <akim (a] 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 
   8408 2006-05-14  Akim Demaille  <akim (a] lrde.epita.fr>
   8409 
   8410 	* etc/bench.pm: Shorten bench names.
   8411 
   8412 2006-05-14  Akim Demaille  <akim (a] 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 
   8419 2006-05-13  Paul Eggert  <eggert (a] 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 
   8427 2006-05-11  Paul Eggert  <eggert (a] 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 
   8433 2006-05-11  Akim Demaille  <akim (a] lrde.epita.fr>
   8434 
   8435 	* examples/extexi: Enforce the precedence of concatenation over
   8436 	>>.
   8437 	Reported by Tommy Nordgren.
   8438 
   8439 2006-05-11  Akim Demaille  <akim (a] 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 
   8445 2006-05-08  Paul Eggert  <eggert (a] 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 
   8456 2006-04-27  Akim Demaille  <akim (a] lrde.epita.fr>
   8457 
   8458 	* data/glr.cc: Remove dead code.
   8459 
   8460 2006-04-25  Paul Eggert  <eggert (a] 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 
   8466 2006-04-24  Akim Demaille  <akim (a] lrde.epita.fr>
   8467 
   8468 	* doc/bison.texinfo (Multiple start-symbols): New.
   8469 
   8470 2006-04-24  Akim Demaille  <akim (a] lrde.epita.fr>
   8471 
   8472 	* etc/README, etc/bench.pl: New.
   8473 
   8474 2006-04-03  Akim Demaille  <akim (a] 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 
   8481 2006-03-16  Paul Eggert  <eggert (a] cs.ucla.edu>
   8482 
   8483 	* doc/bison.texinfo (Decl Summary): Don't mention yylloc twice.
   8484 	Problem reported by Bob Rossi.
   8485 
   8486 2006-03-13  Paul Eggert  <eggert (a] 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 
   8493 2006-03-12  Akim Demaille  <akim (a] 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 
   8498 2006-03-12  Akim Demaille  <akim (a] 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 
   8514 2006-03-10  Akim Demaille  <akim (a] lrde.epita.fr>
   8515 
   8516 	* TODO: Remove dead items.
   8517 
   8518 2006-03-10  Akim Demaille  <akim (a] lrde.epita.fr>
   8519 
   8520 	* doc/FAQ: Remove, merged into...
   8521 	* doc/bison.texinfo (FAQ): this.
   8522 	* doc/Makefile.am (EXTRA_DIST): Adjust.
   8523 
   8524 2006-03-10  Akim Demaille  <akim (a] 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 
   8531 2006-03-09  Paul Eggert  <eggert (a] 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 
   8541 2006-03-08  Paul Eggert  <eggert (a] 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 
   8551 2006-03-08  Joel E. Denny  <jdenny (a] 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 
   8557 2006-03-06  Paul Eggert  <eggert (a] 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 
   8571 2006-03-06  Joel E. Denny  <jdenny (a] 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 
   8583 2006-03-04  Joel E. Denny  <jdenny (a] 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 
   8592 2006-03-02  Joel E. Denny  <jdenny (a] 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 
   8606 2006-03-02  Joel E. Denny  <jdenny (a] 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 
   8630 2006-02-27  Paul Eggert  <eggert (a] 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 
   8636 2006-02-21  Joel E. Denny  <jdenny (a] 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 
   8642 2006-02-16  Paul Eggert  <eggert (a] 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 
   8655 2006-02-13  Paul Eggert  <eggert (a] cs.ucla.edu>
   8656 
   8657 	* NEWS: Clarify symbols versus types in unused-value warnings.
   8658 
   8659 	* configure.ac (AC_INIT): Bump version number.
   8660 
   8661 2006-02-13  Paul Eggert  <eggert (a] 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 
   8667 2006-02-11  Paul Eggert  <eggert (a] cs.ucla.edu>
   8668 
   8669 	* m4/c-working.m4: New file.
   8670 	* configure.ac (BISON_TEST_FOR_WORKING_C_COMPILER): Use it.
   8671 
   8672 2006-02-10  Paul Eggert  <eggert (a] cs.ucla.edu>
   8673 
   8674 	* Makefile.maint: Merge from coreutils.
   8675 
   8676 2006-02-09  Paul Eggert  <eggert (a] 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 
   8687 2006-02-08  Paul Eggert  <eggert (a] 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 
   8700 2006-02-06  Paul Eggert  <eggert (a] 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 
   8710 2006-02-06  Juan Manuel Guerrero  <juan.guerrero (a] gmx.de>
   8711 
   8712 	Various DJGGP specific issues in /djgpp
   8713 
   8714 2006-02-02  Paul Eggert  <eggert (a] 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 
   8721 2006-02-01  Paul Eggert  <eggert (a] 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 
   8745 2006-01-30  Joel E. Denny  <jdenny (a] 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 
   8765 2006-01-30  Paul Eggert  <eggert (a] 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 
   8771 2006-01-29  Paul Eggert  <eggert (a] 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 
   8800 2006-01-27  Paul Eggert  <eggert (a] 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 
   8809 2006-01-23  Paul Eggert  <eggert (a] 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 
   8818 2006-01-22  Paul Eggert  <eggert (a] 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 
   8850 2006-01-21  Paul Eggert  <eggert (a] 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 
   8908 2006-01-20  Paul Eggert  <eggert (a] 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 
   8945 2006-01-19  Paul Eggert  <eggert (a] 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 
   8982 2006-01-19  Akim Demaille  <akim (a] epita.fr>
   8983 
   8984 	* tests/calc.at (_AT_DATA_CALC_Y): Initialize the whole initial
   8985 	location, not just parts of it.
   8986 
   8987 2006-01-18  Paul Eggert  <eggert (a] 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 
   9019 2006-01-12  Joel E. Denny  <jdenny (a] 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 
   9028 2006-01-11  Paul Hilfinger  <hilfingr (a] tully.CS.Berkeley.EDU>
   9029 
   9030 	* data/glr.c (yysplitStack): A little stylistic rewrite.
   9031 
   9032 2006-01-11  Paul Hilfinger  <hilfingr (a] tully.CS.Berkeley.EDU>
   9033 
   9034 	* data/glr.c (yyaddDeferredAction): Flesh out the comment.
   9035 
   9036 2006-01-11  Joel E. Denny  <jdenny (a] 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 
   9062 2006-01-08  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   9063 
   9064 	* tests/glr-regression.at: Update copyright year to 2006.
   9065 
   9066 2006-01-06  Joel E. Denny  <jdenny (a] 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 
   9097 2006-01-06  Joel E. Denny  <jdenny (a] 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 
   9104 2006-01-06  Joel E. Denny  <jdenny (a] ces.clemson.edu>
   9105 
   9106 	* tests/glr-regression.at: For consistency with my newer test cases,
   9107 	don't thank myself.
   9108 
   9109 2006-01-05  Joel E. Denny  <jdenny (a] 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 
   9128 2006-01-05  Akim Demaille  <akim (a] epita.fr>
   9129 
   9130 	* src/reader.c, src/symlist.h, src/symlist.c: s/mid_rule/midrule/.
   9131 
   9132 2006-01-04  Paul Eggert  <eggert (a] 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 
   9142 2006-01-04  Akim Demaille  <akim (a] 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 
   9156 2006-01-04  Akim Demaille  <akim (a] 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 
   9163 2006-01-03  Paul Eggert  <eggert (a] 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 
   9193 2006-01-03  Akim Demaille  <akim (a] 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 
   9215 2006-01-02  Akim Demaille  <akim (a] 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 
   9222 2006-01-02  Joel E. Denny  <jdenny (a] 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 
   9230 2005-12-29  Akim  <akim (a] 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 
   9237 2005-12-28  Paul Eggert  <eggert (a] 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 
   9259 2005-12-27  Paul Eggert  <eggert (a] cs.ucla.edu>
   9260 
   9261 	* src/reader.c (grammar_midrule_action, grammar_symbol_append):
   9262 	Remove unnecessary forward static decls.
   9263 
   9264 2005-12-27  Akim Demaille  <akim (a] 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 
   9281 2005-12-22  Paul Eggert  <eggert (a] cs.ucla.edu>
   9282 
   9283 	* NEWS: Improve wording for unused-value warnings.
   9284 
   9285 2005-12-22  Akim Demaille  <akim (a] 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 
   9293 2005-12-22  Akim Demaille  <akim (a] 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 
   9316 2005-12-21  Paul Eggert  <eggert (a] 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 
   9340 2005-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 
   9346 2005-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.
   9358 	(yyprocessOneStack, yyreportSyntaxError, yyrecoverSyntaxError): Remove
   9359 	yylvalp and yyllocp parameters since, if pure, these are now always
   9360 	accessible through yystackp.  If not pure, they are still accessible
   9361 	globally.
   9362 	* data/glr.c, data/yacc.c (YYLLOC_DEFAULT): Change `if (N)' to
   9363 	`if (YYID (N))' to pacify lint.
   9364 
   9365 2005-12-21  Akim Demaille  <akim (a] epita.fr>
   9366 
   9367 	YYACCEPT, YYERROR, and YYABORT, as user actions, should not
   9368 	destroy the RHS symbols of a rule.
   9369 	* data/yacc.c (yylen): Initialize to 0.
   9370 	Keep its value to the number of items to possibly shift.
   9371 	In particular, a regular successful parse that ends on YYFINAL by
   9372 	a (internal) YYACCEPT must not have yylen != 0.
   9373 	(yyerrorlab, yyreturn): Pop the RHS.
   9374 	Reorder a bit to emphasize the `shifting' bits of code.
   9375 	(YYPOPSTACK): Now accept a number of items to pop.
   9376 	* data/lalr1.cc: Likewise.
   9377 	* data/glr.c: Formatting changes.
   9378 	Use goto instead of fall through.
   9379 	* doc/bison.texinfo (Destructor Decl): Complete.
   9380 
   9381 2005-12-20  Juan Manuel Guerrero  <juan.guerrero (a] gmx.de>
   9382 
   9383 	* Makefile.am: DJGPP specific files added to EXTRA_DIST.
   9384 	* djgpp/Makefile.maint: Fix PACKAGE variable computation.
   9385 	* djgpp/config.bat: Replace every occurrence of the file name
   9386 	scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
   9387 	c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
   9388 	* djgpp/config.sed: Replace every occurrence of the file name
   9389 	scan-gram-c.c with c-scan-gram.c. The same for scan-skel-c.c with
   9390 	c-scan-skel.c to conform with the 8.3 file name restriction on MSDOS.
   9391 	* djgpp/djunpack.bat: DJGPP specific file.
   9392 	* djgpp/fnchange.lst: DJGPP specific file.
   9393 	* djgpp/README.in: Add new information about how to unpack the bison
   9394 	source on MSDOS and other systems which have 8.3 file name restrictions
   9395 	using djunpack.bat and fnchange.lst.
   9396 
   9397 2005-12-12  Paul Eggert  <eggert (a] cs.ucla.edu>
   9398 
   9399 	* bootstrap (build_cvs_prefix): Remove; unused.
   9400 	(CVS_PREFIX): Adjust to yesterday's Savannah reorganization
   9401 	when getting gnulib.
   9402 
   9403 2005-12-12  "Joel E. Denny" <jdenny (a] ces.clemson.edu>
   9404 
   9405 	* data/glr.c: Reorder typedef declarations for structs to match order
   9406 	of struct declarations.
   9407 	Rename yystack everywhere to yystackp except in yyparse where it's not
   9408 	a pointer.
   9409 	(yyglrShift): Change parameter YYSTYPE yysval to YYSTYPE* yyvalp for
   9410 	consistency.
   9411 	(yyis_table_ninf): Change 0 to YYID (0) to pacify lint.
   9412 	(yyreportSyntaxError): Add /*ARGSUSED*/ to pacify lint.
   9413 	(yyparse): Change while (yytrue) to while ( YYID (yytrue)) to pacify
   9414 	lint.
   9415 
   9416 2005-12-09  Paul Eggert  <eggert (a] cs.ucla.edu>
   9417 
   9418 	* tests/sets.at (Accept): Fix typos in regular expression used to
   9419 	sed out the final state number.
   9420 
   9421 	Work around portability problem on Solaris 10: flex-generated
   9422 	files include <stdio.h> before <config.h>, which messes up
   9423 	because the latter defines __EXTENSIONS__.  Address the problem
   9424 	by creating two new little files that include <config.h> first,
   9425 	then include the flex-generated files.  Rewrite everyone else
   9426 	to include <config.h> first, as well.
   9427 	* lib/timevar.c: Always include "config.h".
   9428 	* src/Makefile.am (bison_SOURCES): Replace scan-gram.l with
   9429 	scan-gram-c.c, and scan-skel.l with scan-skel-c.c.
   9430 	(EXTRA_bison_SOURCES): New macro.
   9431 	* src/scan-gram-c.c, src/scan-skel-c.c: New files.
   9432 	* src/system.h: Don't include config.h.
   9433 	* src/LR0.c: Include <config.h> first.
   9434 	* src/assoc.c: Likewise.
   9435 	* src/closure.c: Likewise.
   9436 	* src/complain.c: Likewise.
   9437 	* src/conflicts.c: Likewise.
   9438 	* src/derives.c: Likewise.
   9439 	* src/files.c: Likewise.
   9440 	* src/getargs.c: Likewise.
   9441 	* src/gram.c: Likewise.
   9442 	* src/lalr.c: Likewise.
   9443 	* src/location.c: Likewise.
   9444 	* src/main.c: Likewise.
   9445 	* src/muscle_tab.c: Likewise.
   9446 	* src/nullable.c: Likewise.
   9447 	* src/output.c: Likewise.
   9448 	* src/parse-gram.y: Likewise.
   9449 	* src/print.c: Likewise.
   9450 	* src/print_graph.c: Likewise.
   9451 	* src/reader.c: Likewise.
   9452 	* src/reduce.c: Likewise.
   9453 	* src/relation.c: Likewise.
   9454 	* src/state.c: Likewise.
   9455 	* src/symlist.c: Likewise.
   9456 	* src/symtab.c: Likewise.
   9457 	* src/tables.c: Likewise.
   9458 	* src/uniqstr.c: Likewise.
   9459 	* src/vcg.c: Likewise.
   9460 
   9461 	* src/parse-gram.y: Fix minor problems uncovered by lint.
   9462 	(current_lhs, current_lhs_location): Now static.
   9463 	(current_assoc): Remove unused variable.
   9464 
   9465 	Cleanups so that Bison-generated parsers have less lint.
   9466 	* data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate):
   9467 	Prepend /*ARGSUSED*/, for lint's sake.
   9468 	* data/glr.c (YYUSE): Properly parenthesize, and use an alternate
   9469 	definition if 'lint' is defined.
   9470 	(YYID): New macro (or function, if lint).
   9471 	All uses of /*CONSTCOND*/0 replaced by YYID(0).
   9472 	* data/yacc.c: Likewise.
   9473 	* data/glr.c (yyuserAction, yyuserMerge, yy_reduce_print):
   9474 	(yyrecoverSyntaxError): Prepend /*ARGSUSED*/.
   9475 	* data/glr.cc (YYLLOC_DEFAULT): Omit /*CONSTCOND*/ since this code
   9476 	is C++ only.
   9477 	* data/lalr1.cc (YYUSE): Just use a cast, since this code is C++ only.
   9478 	* data/yacc.c (YYSTACK_FREE) [defined YYSTACK_ALLOC]:
   9479 	Use YYID(0) rather than 0, for lint.
   9480 	(yystrlen): Rewrite to avoid lint warning about ptrdiff_t overflow.
   9481 	(yysyntax_error): Rewrite to avoid lint warnings about parenthesization.
   9482 
   9483 2005-12-07  Paul Eggert  <eggert (a] cs.ucla.edu>
   9484 
   9485 	* tests/glr-regression.at
   9486 	(Improper handling of embedded actions and dollar(-N) in GLR parsers):
   9487 	Close memory leak reported by twlevo.
   9488 
   9489 2005-12-06  "Joel E. Denny" <jdenny (a] ces.clemson.edu>
   9490 
   9491 	* data/glr.c (yyprocessOneStack, yyparse): Synchronize the shift for
   9492 	all stacks.
   9493 	(yyparse): Iterate another stack in order to call user destructors.
   9494 	* tests/glr-regression.at (No users destructors if stack 0 deleted):
   9495 	New test case.
   9496 	(Duplicated user destructor for lookahead): This test now is expected
   9497 	to succeed.
   9498 
   9499 2005-12-01  Paul Eggert  <eggert (a] cs.ucla.edu>
   9500 
   9501 	* NEWS: Document the following change.
   9502 	* data/yacc.c: Say "parser skeleton" rather than "file", since
   9503 	it's no longer just a file.
   9504 	* data/glr.c: Grant a special exception for C GLR parsers, that
   9505 	reads like the already-existing exception for C LALR(1) parsers.
   9506 	* data/glr.cc: Likewise.
   9507 	* data/lalr1.cc: Likewise.
   9508 	* data/location.cc: Likewise.
   9509 	* data/yacc.c: Reword the "written by" statement to clarify that
   9510 	it was the parser skeleton, not the entire output file.
   9511 	* data/glr.c: Written by Paul Hilfinger.
   9512 	* data/glr.cc: Written by Akim Demaille.
   9513 	* data/lalr1.cc: Likewise.
   9514 
   9515 2005-11-18  Paul Eggert  <eggert (a] cs.ucla.edu>
   9516 
   9517 	* data/yacc.c (yy_reduce_print, YY_REDUCE_PRINT):
   9518 	Fix typos in previous change that broke 'make check'.
   9519 	YY_REDUCE_PRINT cannot be a pseudo-varargs macro; that isn't
   9520 	supported in C.
   9521 	* tests/calc.at (_AT_CHECK_CALC,_AT_CHECK_CALC_ERROR):
   9522 	Don't check NUM-STDERR-LINES, since the output format is fluctuating.
   9523 	We can revert this once things settle down.
   9524 
   9525 	* src/conflicts.c (conflicts_print): Don't print file name twice
   9526 	when %expect fails because there were no conflicts.
   9527 	* doc/bison.texinfo (Expect Decl): Tighten up wording in previous
   9528 	change.
   9529 	* tests/conflicts.at (%expect not enough, %expect too much):
   9530 	(%expect with reduce conflicts): Adjust to new behavior.
   9531 
   9532 2005-11-18  Akim Demaille  <akim (a] epita.fr>
   9533 
   9534 	* src/conflicts.c (conflicts_print): Unsatisfied %expectation are
   9535 	errors.
   9536 	* NEWS: Document this.
   9537 	* doc/bison.texinfo (Expect Decl): Likewise.
   9538 
   9539 2005-11-16  Akim Demaille  <akim (a] epita.fr>
   9540 
   9541 	Generalize the display of semantic values and locations in traces.
   9542 	* data/glr.c (yy_reduce_print): Fix indices (again).
   9543 	* data/c++.m4 (b4_rhs_value, b4_rhs_location): Don't expect
   9544 	literal integers.
   9545 	* data/lalr1.cc (yyreduce_print): Rename as...
   9546 	(yy_reduce_print): this.
   9547 	Display values and locations.
   9548 	* data/yacc.c (yy_reduce_print): Likewise.
   9549 	(YY_REDUCE_PRINT): Adjust to pass the required arguments.
   9550 	(yysymprint): Move higher to be visible from yy_reduce_print).
   9551 	(yyparse): Adjust.
   9552 	* tests/calc.at: Adjust the expected length of the traces.
   9553 
   9554 2005-11-14  Akim Demaille  <akim (a] epita.fr>
   9555 
   9556 	* data/glr.c (yy_reduce_print): The loop was quite wrong: type are
   9557 	from 1 to N, while values and location start at 0.
   9558 	(b4_rhs_location, b4_rhs_value): Add parens around $1 and $2.
   9559 
   9560 2005-11-14  Akim Demaille  <akim (a] epita.fr>
   9561 
   9562 	* data/glr.c (yy_reduce_print): Fix the $ number.
   9563 
   9564 2005-11-14  Akim Demaille  <akim (a] epita.fr>
   9565 
   9566 	"Use" parse parameters.
   9567 	* data/c.m4 (b4_parse_param_for, b4_parse_param_use): New.
   9568 	* data/glr.c, data/glr.cc: Use them.
   9569 	* data/glr.c (YYUSE): Have a C++ definition that supports
   9570 	non-pointer types.
   9571 
   9572 2005-11-14  Akim Demaille  <akim (a] epita.fr>
   9573 
   9574 	* data/glr.c (yyexpandGLRStack): Declare only if defined.
   9575 
   9576 2005-11-14  Akim Demaille  <akim (a] epita.fr>
   9577 
   9578 	* data/glr.cc: New.
   9579 	* data/m4sugar/m4sugar.m4 (m4_prepend): New.
   9580 
   9581 2005-11-12  Akim Demaille  <akim (a] epita.fr>
   9582 
   9583 	Let position and location be PODs.
   9584 	* data/location.cc (position::initialize, location::initialize): New.
   9585 	(position::position, location::location): Define only if
   9586 	b4_location_constructors is defined.
   9587 	* data/lalr1.cc (b4_location_constructors): Define it for backward
   9588 	compatibility.
   9589 	* doc/bison.texinfo (Initial Action Decl): Use initialize.
   9590 
   9591 2005-11-12  Akim Demaille  <akim (a] epita.fr>
   9592 
   9593 	* data/lalr1.cc: Move the body of the ctor and dtor into the
   9594 	parser file (instead of the header).
   9595 	Wrap the implementations in a "namespace yy".
   9596 
   9597 2005-11-12  Akim Demaille  <akim (a] epita.fr>
   9598 
   9599 	Have glr.c include its header file when created.
   9600 	* data/glr.c (b4_shared_declarations): New.
   9601 	Output them verbatim in the parser if !%defines, otherwise
   9602 	output then in the header file, and include it instead.
   9603 
   9604 2005-11-11  Akim Demaille  <akim (a] epita.fr>
   9605 
   9606 	* data/glr.c: Comment changes.
   9607 
   9608 2005-11-11  Akim Demaille  <akim (a] epita.fr>
   9609 
   9610 	When yydebug, report semantic and location values for reductions.
   9611 	* data/glr.c (yy_reduce_print): Report the semantic values and the
   9612 	locations.
   9613 	(YY_REDUCE_PRINT): Adjust.
   9614 	(yyglrReduce): Use them.
   9615 	(b4_rhs_value, b4_rhs_location): Remove m4_eval invocations.
   9616 	* data/c.m4 (b4_yysymprint_generate): Specify the const arguments.
   9617 	* tests/calc.at (_AT_CHECK_CALC_ERROR): Remove the reduction
   9618 	traces.
   9619 
   9620 2005-11-10  Akim Demaille  <akim (a] epita.fr>
   9621 
   9622 	* data/glr.c (yynewGLRStackItem, YY_RESERVE_GLRSTACK): New.
   9623 	(yyaddDeferredAction, yyglrShift, yyglrShiftDefer): Use them.
   9624 	(yyexpandGLRStack, YYRELOC): Define only when YYSTACKEXPANDABLE.
   9625 
   9626 2005-11-09  Albert Chin-A-Young  <china (a] thewrittenword.com>
   9627 
   9628 	* m4/cxx.m4, examples/Makefile.am: Don't build
   9629 	examples/calc++ if no C++ compiler is available.  (trivial change)
   9630 
   9631 2005-11-09  Akim Demaille  <akim (a] epita.fr>
   9632 
   9633 	* src/scan-skel.l: Use a couple of asserts.
   9634 
   9635 2005-11-03  Akim Demaille  <akim (a] epita.fr>
   9636 
   9637 	In some (weird) cases, the final state number is incorrect.
   9638 	Reported by Alexandre Duret-Lutz.
   9639 	* src/LR0.c (state_list_append): Remove the computation of
   9640 	final_state.
   9641 	(save_reductions): Do it here.
   9642 	(get_state): Alpha conversion.
   9643 	(generate_states): Use a for loop.
   9644 	* src/gram.h (item_number_is_rule_number)
   9645 	(item_number_is_symbol_number): New.
   9646 	* src/state.c: Use assert.
   9647 	* src/system.h: Include assert.h.
   9648 	* tests/sets.at (Accept): New.
   9649 
   9650 2005-10-30  Paul Hilfinger  <hilfingr (a] tully.CS.Berkeley.EDU>
   9651 
   9652 	* data/glr.c (yyfill): Adjust comment.
   9653 	(yyresolveAction): Initialize default location properly
   9654 	for empty right-hand sides.
   9655 	(yydoAction): Ditto.
   9656 	Add comment explaining apparently dead code.
   9657 	* tests/glr-regression.at
   9658 	(Incorrectly initialized location for empty right-hand side in GLR):
   9659 	New test.
   9660 
   9661 2005-10-30  Paul Eggert  <eggert (a] cs.ucla.edu>
   9662 
   9663 	* bootstrap (cleanup_gnulib): New function.  Use it to clean up
   9664 	gnulib when interrupted.  This fixes some race conditions and
   9665 	works around some portability problems (one noted by Paul
   9666 	Hilfinger).
   9667 
   9668 2005-10-22  Akim  <akim (a] epita.fr>
   9669 
   9670 	* Makefile.cfg: Adjust to config -> build-aux.
   9671 	Reported by twledo.
   9672 
   9673 2005-10-21  Akim Demaille  <akim (a] epita.fr>
   9674 
   9675 	* data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Pass
   9676 	the %parse-params.
   9677 	* data/glr.c (YY_SYMBOL_PRINT, yydestroyGLRState): Adjust.
   9678 	* data/yacc.c (b4_Pure_if): Rename as...
   9679 	(b4_yacc_pure_if): this.
   9680 	(YY_SYMBOL_PRINT, yyparse): Adjust.
   9681 	* doc/bison.texinfo: Formatting changes.
   9682 
   9683 2005-10-21  Akim Demaille  <akim (a] epita.fr>
   9684 
   9685 	Finish the transition config -> build-aux.
   9686 	* configure.ac, Makefile.am: Use build-aux.
   9687 	* config/prev-version, config/announce-gen, config/Makefile.am:
   9688 	Move to...
   9689 	* build-aux/prev-version, build-aux/announce-gen,
   9690 	* build-aux/Makefile.am: here.
   9691 
   9692 2005-10-14  Akim Demaille  <akim (a] epita.fr>
   9693 
   9694 	* examples/calc++/test: Use set -x only when VERBOSE.
   9695 
   9696 2005-10-13  Paul Eggert  <eggert (a] cs.ucla.edu>
   9697 
   9698 	* NEWS: Bison now warns if it finds a stray `$' or `@' in an action.
   9699 	* src/scan-gram.l (<SC_BRACED_CODE>[$@]): Implement this.
   9700 
   9701 2005-10-13  Akim Demaille  <akim (a] epita.fr>
   9702 
   9703 	* src/scan-skel.l: Output the base name parts of the parser and
   9704 	header file names.
   9705 	* tests/output.at (AT_CHECK_OUTPUT): Support subdirectories, and
   9706 	additional checks.
   9707 	Use this to exercise C++ outputs in subdirs.
   9708 	Reported by Oleg Smolsky.
   9709 
   9710 2005-10-12  Paul Eggert  <eggert (a] cs.ucla.edu>
   9711 
   9712 	* data/c.m4 (b4_c_function_def): Look at __C99_FUNC__, not at
   9713 	__STDC_VERSION__, as IBM cc 7.0 doesn't define the latter either.
   9714 	Problem reported by John P. Hartmann.
   9715 	* data/yacc.c (YYMODERN_C): Likewise.  Don't define if the user has
   9716 	already defined it.
   9717 
   9718 2005-10-12  Akim Demaille  <akim (a] epita.fr>
   9719 
   9720 	* src/parse-gram.y (version_check): Exit 63 to please missing
   9721 	(stands for "version mismatch).
   9722 	* tests/input.at, doc/bison.texinfo: Adjust.
   9723 
   9724 2005-10-10  Paul Eggert  <eggert (a] cs.ucla.edu>
   9725 
   9726 	Work around portability problems with Visual Age C compiler
   9727 	(xlc and xlC_r) reported by John P. Hartmann.
   9728 	* data/location.cc (initial_column, initial_line): Remove.
   9729 	All uses replaced by 0 and 1.
   9730 	* src/scan-gram.l (gram_wrap): Redefine to avoid bug in flex 2.5.31
   9731 	that xlc complains about.
   9732 	* src/scan-skel.l (skel_wrap): Likewise.
   9733 	* data/c.m4 (b4_c_function_def): Look at __STDC_VERSION__ as well
   9734 	as __STDC__.
   9735 	* data/yacc.c (YYMODERN_C): New macro, which also looks at
   9736 	__STDC_VERSION__.  Use it everywhere instead of looking at
   9737 	__STDC__ and __cplusplus.
   9738 
   9739 2005-10-10  Akim Demaille  <akim (a] epita.fr>
   9740 
   9741 	* examples/calc++/test: Be quiet unless VERBOSE.
   9742 
   9743 2005-10-05  Paul Eggert  <eggert (a] cs.ucla.edu>
   9744 
   9745 	* data/c.m4 (yydestruct, yysymprint):
   9746 	Use YYUSE instead of casting to void.
   9747 	* data/glr.c (YYUSE): New macro.
   9748 	(yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
   9749 	Use it instead of rolling our own.
   9750 	(YYLLOC_DEFAULT, YYCHK, YYDPRINTF, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
   9751 	(YYCHK1):
   9752 	Use /*CONSTCOND*/ to suppress lint warnings.
   9753 	* data/lalr1.cc (YYLLOC_DEFAULT, YY_SYMBOL_PRINT, YY_REDUCE_PRINT):
   9754 	(YY_STACK_PRINT): Use 'false' not '0'.
   9755 	(YYUSE): New macro.
   9756 	(yysymprint_, yydestruct_): Use it instead of rolling our own.
   9757 	* data/yacc.c (YYUSE): New macro.
   9758 	(YYCOPY, YYSTACK_RELOCATE, YYBACKUP, YYLLOC_DEFAULT):
   9759 	(YYDPRINTF, YY_SYMBOL_PRINT, YY_STACK_PRINT, YY_REDUCE_PRINT):
   9760 	(yyerrorlab): Use /*CONSTCOND*/ to suppress lint warnings.
   9761 
   9762 
   9763 	* data/m4sugar/m4sugar.m4 (_m4_map): New macro.
   9764 	(m4_map, m4_map_sep): Use it.  Handle the empty list correctly.
   9765 
   9766 2005-10-04  Paul Eggert  <eggert (a] cs.ucla.edu>
   9767 
   9768 	Undo the parts of the unlocked-I/O change that substituted
   9769 	putc or puts for printf.  This might hurt performance a bit,
   9770 	but some people prefer the printf style.
   9771 	* data/c.m4 (yysymprint): Prefer printf to puts and putc.
   9772 	* data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): Remove.
   9773 	All uses replaced by YYFPRINTF and YYDPRINTF.
   9774 	* data/yacc.c: Likewise.
   9775 	* lib/bitset.c (bitset_print): Likewise.
   9776 	* lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer printf to
   9777 	putc and puts.
   9778 	* lib/lbitset.c (debug_lbitset): Likewise.
   9779 	* src/closure.c (print_firsts, print_fderives): Likewise.
   9780 	* src/gram.c (grammar_dump): Likewise.
   9781 	* src/lalr.c (look_ahead_tokens_print): Likewise.
   9782 	* src/output.c (escaped_output): Likewise.
   9783 	(user_actions_output): Break apart two printfs.
   9784 	* src/parse-gram.y (%printer): Prefer printf to putc and puts.
   9785 	* src/reduce.c (reduce_print): Likewise.
   9786 	* src/state.c (state_rule_look_ahead_tokens_print): Likewise.
   9787 	* src/system.h: Include unlocked-io.h rathe than stdio.h.
   9788 
   9789 	* data/glr.c (yyuserMerge, yyreportAmbiguity, yyreportSyntaxError):
   9790 	Use assignments rather than casts-to-void to suppress
   9791 	unused-variable warnings.  This pacifies 'lint'.
   9792 	* data/lalr1.cc (yysymprint_, yydestruct_): Use a call to suppress
   9793 	unused-variable warnings.
   9794 
   9795 2005-10-03  Juan Manuel Guerrero  <juan.guerrero (a] gmx.de>
   9796 
   9797 	* Makefile.am: DJGPP specific files added to EXTRA_DIST.
   9798 
   9799 2005-10-02  Paul Eggert  <eggert (a] cs.ucla.edu>
   9800 
   9801 	Use unlocked I/O for a minor performance improvement on hosts like
   9802 	GNU/Linux and Solaris that support unlocked I/O.  The basic idea
   9803 	is to use the gnlib unlocked-io module, and to prefer putc and
   9804 	puts to printf when either will work (since the latter doesn't
   9805 	come in an unlocked flavor).
   9806 	* bootstrap (gnulib_modules): Add unlocked-io.
   9807 	* data/c.m4 (yysymprint): Prefer puts and putc to printf.
   9808 	* data/glr.c (YYFPUTC, YYFPUTS, YYDPUTS): New macros.
   9809 	Prefer them to YYFPRINTF and YYDPRINTF if either will do,
   9810 	and similarly for puts and putc and printf.
   9811 	* data/yacc.c: Likewise.
   9812 	* lib/bitset.c (bitset_print): Likewise.
   9813 	* lib/bitset.h [USE_UNLOCKED_IO]: Include unlocked-io.h.
   9814 	* lib/bitsetv.c (bitsetv_dump, debug-bitsetv): Prefer putc and puts
   9815 	to printf.
   9816 	* lib/lbitset.c (debug_lbitset): Likewise.
   9817 	* src/closure.c (print_firsts, print_fderives): Likewise.
   9818 	* src/gram.c (grammar_dump): Likewise.
   9819 	* src/lalr.c (look_ahead_tokens_print): Likewise.
   9820 	* src/output.c (escaped_output): Likewise.
   9821 	(user_actions_output): Coalesce two printfs.
   9822 	* src/parse-gram.y (%printer): Prefer putc and puts to printf.
   9823 	* src/reduce.c (reduce_print): Likewise.
   9824 	* src/state.c (state_rule_look_ahead_tokens_print): Likewise.
   9825 	* src/system.h: Include unlocked-io.h rather than stdio.h.
   9826 
   9827 	* data/lalr1.cc: Don't put an unmatched ' in a dnl comment, as
   9828 	this confuses xgettext.
   9829 
   9830 2005-10-02  Akim Demaille  <akim (a] epita.fr>
   9831 
   9832 	* bootstrap (gnulib_modules): Add strverscmp.
   9833 	* lib/.cvsignore: Add strverscmp.c, strverscmp.h.
   9834 	* m4/.cvsignore: Add strverscmp.m4.
   9835 	* src/parse-gram.y (%require): New token, new rule.
   9836 	(version_check): New.
   9837 	* src/scan-gram.l (%require): Adjust.
   9838 	* tests/input.at (AT_REQUIRE): New.
   9839 	Use it.
   9840 	* doc/bison.texinfo (Require Decl): New.
   9841 	(Calc++ Parser): Use %require.
   9842 
   9843 2005-10-02  Akim Demaille  <akim (a] epita.fr>
   9844 
   9845 	* data/location.cc: New.
   9846 
   9847 2005-10-02  Paul Eggert  <eggert (a] cs.ucla.edu>,
   9848 	    Akim Demaille  <akim (a] epita.fr>
   9849 
   9850 	Make sure -odir/foo.cc creates dir/location.hh etc.
   9851 	* src/files.h (spec_outfile, parser_file_name, spec_name_prefix)
   9852 	(spec_file_prefix, spec_verbose_file, spec_graph_file)
   9853 	(spec_defines_file): Now const.
   9854 	(dir_prefix): New.
   9855 	(short_base_name): Remove.
   9856 	* src/files.c: Adjust.
   9857 	(dirname.h): Include.
   9858 	(base_name): Don't prototype it.
   9859 	(finput): Remove, duplicates gram_in.
   9860 	(full_base_name, short_base_name): Replace by...
   9861 	(all_but_ext, all_but_tab_ext): these.
   9862 	(compute_base_names): Rename as...
   9863 	(compute_file_name_parts): this.
   9864 	Update to compute the new variables, including dir_prefix.
   9865 	Adjust dependencies.
   9866 	* src/output.c (prepare): Output them.
   9867 	* src/reader.c: Adjust to use gram_in, not finput.
   9868 	* src/scan-skel.l (@dir_prefix@): New.
   9869 
   9870 2005-10-02  Juan Manuel Guerrero  <juan.guerrero (a] gmx.de>
   9871 
   9872 	* lib/subpipe.c: New function end_of_output_subpipe() added
   9873 	to allow support for non-posix systems. This is a no-op function
   9874 	for posix systems.
   9875 
   9876 	* lib/subpipe.h: New function end_of_output_subpipe() added
   9877 	to allow support for non-posix systems. This is a no-op function
   9878 	for posix systems.
   9879 
   9880 	* src/output.c (output_skeleton): Use end_of_output_subpipe() to
   9881 	handle the lack of pipe/fork functionality on non-posix systems.
   9882 
   9883 	* djgpp/Makefile.maint: DJGPP specific file.
   9884 
   9885 	* djgpp/README.in: DJGPP specific file.
   9886 
   9887 	* djgpp/config.bat: DJGPP specific configuration file.
   9888 
   9889 	* djgpp/config.sed: DJGPP specific configuration file.
   9890 
   9891 	* djgpp/config.site: DJGPP specific configuration file.
   9892 
   9893 	* djgpp/config_h.sed: DJGPP specific configuration file.
   9894 
   9895 	* djgpp/subpipe.c: DJGPP specific replacement file for lib/subpipe.c.
   9896 
   9897 	* djgpp/subpipe.h: DJGPP specific replacement file for lib/subpipe.h.
   9898 
   9899 2005-10-02  Akim Demaille  <akim (a] epita.fr>
   9900 
   9901 	* data/location.cc: New, extract from...
   9902 	* data/lalr1.cc: here.
   9903 	(location.hh): Include it after the user prologue, in case the
   9904 	filename type is defined by the user.
   9905 	Forward declation location and position before the pre-prologue.
   9906 	(yyresult_): Rename as...
   9907 	(yyresult): this, it's a local variable, not an attribute.
   9908 	* data/Makefile.am (dist_pkgdata_DATA): Adjust.
   9909 
   9910 2005-10-01  Akim Demaille  <akim (a] epita.fr>
   9911 
   9912 	* examples/extexi: Restore the #line generation.
   9913 
   9914 2005-09-30  Akim Demaille  <akim (a] epita.fr>,
   9915 	    Alexandre Duret-Lutz <adl (a] gnu.org>
   9916 
   9917 	Move the token type and YYSTYPE in the parser class.
   9918 	* data/lalr1.cc (stack.hh, location.hh): Include earlier.
   9919 	(parser::token): New, from the moved free definition of tokens.
   9920 	(parser::semantic_value): Now a full definition instead of an
   9921 	indirection to YYSTYPE.
   9922 	(b4_post_prologue): No longer included in the header file, but
   9923 	in the implementation file.
   9924 	* doc/bison.texi (C+ Language Interface): Update.
   9925 	* src/parse-gram.y: Support unary %define.
   9926 	* tests/actions.at: Define global_tokens_and_yystype for backward
   9927 	compatibility until we update the tests.
   9928 	* tests/calc.at: Idem.
   9929 	(first_line, first_column, last_line, last_column): Define for lalr1.cc
   9930 	to simplify the code.
   9931 
   9932 2005-09-29  Paul Eggert  <eggert (a] cs.ucla.edu>
   9933 
   9934 	Port to SunOS 4.1.4, which lacks strtoul and strerror.
   9935 	Ah, the good old days!  Problem reported by Peter Klein.
   9936 	* bootstrap (gnulib_modules): Add strerror, strtoul.
   9937 	* lib/.cvsignore: Add strerror.c, strtol.c, strtoul.c
   9938 	* m4/.cvsignore: Add strerror.m4, strtol.m4, strtoul.m4.
   9939 
   9940 2005-09-29  Akim Demaille  <akim (a] epita.fr>
   9941 
   9942 	* data/c.m4 (b4_error_verbose_if): New.
   9943 	* data/lalr1.cc: Use it.
   9944 	(YYERROR_VERBOSE_IF): Remove.
   9945 	(yyn_, yylen_, yystate_, yynerrs_, yyerrstatus_): Remove as
   9946 	parser members, replaced by...
   9947 	(yyn, yylen, yystate, yynerss, yyerrstatus): these parser::parse
   9948 	local variables.
   9949 	(yysyntax_error_): Takes the state number as argument.
   9950 	(yyreduce_print_): Use the argument yyrule, not the former
   9951 	attribute yyn_.
   9952 
   9953 2005-09-26  Paul Eggert  <eggert (a] cs.ucla.edu>
   9954 
   9955 	* bootstrap (gnulib_modules): Add verify.
   9956 	* lib/.cvsignore: Add verify.h.
   9957 	* src/getargs.c: Use ARGMATCH_VERIFY rather than verify.
   9958 	* src/system.h (verify): Remove.
   9959 	Include verify.h instead.
   9960 	* src/tables.c (tables_generate): Use new API for 'verify'.
   9961 
   9962 2005-09-21  Paul Eggert  <eggert (a] cs.ucla.edu>
   9963 
   9964 	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Do not use
   9965 	local variables whose names begin with 'yy'.
   9966 	* tests/calc.at (_AT_DATA_CALC_Y): Likewise.
   9967 	Trivial changes from Joel E. Denny.
   9968 
   9969 	* bootstrap (gnulib_modules): Remove alloca.  Bison doesn't need
   9970 	it itself.
   9971 	* src/main.c (main) [C_ALLOCA]: Don't flush alloca'ed memory; we
   9972 	don't use alloca any more.
   9973 
   9974 	* data/yacc.c [YYSTACK_USE_ALLOCA && !defined __GNUC__ && ! defined
   9975 	__BUILTIN_VA_ARG_INCR && ! defined _AIX && ! defined _MSC_VER &&
   9976 	defined _ALLOCA_H]: Don't include <stdlib.h>; not needed in this case.
   9977 	* tests/torture.at (Exploding the Stack Size with Alloca): Adjust
   9978 	to match yacc.c, to test more hosts.
   9979 
   9980 2005-09-20  Paul Eggert  <eggert (a] cs.ucla.edu>
   9981 
   9982 	* data/yacc.c (YYSIZE_T): Reindent to make it clearer.  This
   9983 	doesn't affect behavior.
   9984 	(YYSTACK_ALLOC) [YYSTACK_USE_ALLOCA]: Improve support for
   9985 	Solaris, AIX, MSC.
   9986 	(_STDLIB_H): Renamed from YYINCLUDED_STDLIB_H.  All uses changed.
   9987 	This works a bit better with glibc, if user code has already included
   9988 	stdlib.h.
   9989 	* doc/bison.texinfo (Bison Parser): Document that users can't
   9990 	arbitrarily use malloc and free for other purposes.  Document
   9991 	that <alloca.h> and <malloc.h> might be included.
   9992 	(Table of Symbols): Under YYSTACK_USE_ALLOCA, Don't claim that the
   9993 	user must declare alloca.
   9994 
   9995 	* HACKING (release): Forwarn the Translation Project about
   9996 	stable releses.
   9997 
   9998 2005-09-20  Akim Demaille  <akim (a] epita.fr>
   9999 
   10000 	* data/glr.c: Use b4_token_enums, not b4_token_enums_defines.
   10001 
   10002 2005-09-19  Paul Eggert  <eggert (a] cs.ucla.edu>
   10003 
   10004 	* data/yacc.c (YYSIZE_MAXIMUM): New macro.
   10005 	(YYSTACK_ALLOC_MAXIMUM): Use it.
   10006 	(yysyntax_error): New function.
   10007 	(yyparse) [YYERROR_VERBOSE]: Don't leak memory indefinitely if
   10008 	multiple syntax errors are reported, and alloca is being used.
   10009 	Instead, reallocate buffers twice as big each time, so that
   10010 	we waste at most half the allocated memory.  Start with a small
   10011 	(128-byte) buffer that will suffice in most cases anyway.
   10012 	Use yysyntax_error to do most of the work.
   10013 
   10014 	* doc/bison.texinfo (Error Reporting, Table of Symbols):
   10015 	yynerrs is the number of errors reported, not the number of
   10016 	errors encountered.
   10017 
   10018 	* tests/glr-regression.at (Duplicated user destructor for lookahead):
   10019 	Mark it as expected to fail.
   10020 	Cast result of malloc; problem reported by twlevo (a] xs4all.nl.
   10021 	* tests/actions.at, tests/calc.at, tests/glr-regression.at:
   10022 	Don't start user-code symbols with "yy", to avoid name space problems.
   10023 
   10024 2005-09-19  Akim Demaille  <akim (a] epita.fr>
   10025 
   10026 	Remove the traits, failed experiment.
   10027 	It never proved useful, and anyway because of the current
   10028 	definition, it was not possible to have several specialization of
   10029 	this traits, making it useless.
   10030 	* data/lalr1.cc (yy:traits): Remove.
   10031 	Inline its definitions in the parser class.
   10032 
   10033 2005-09-19  Akim Demaille  <akim (a] epita.fr>
   10034 
   10035 	* tests/atlocal.in (LIBS): Pass INTLLIBS to address failures on at
   10036 	least Mac OSX with a /usr/local install of gettext.
   10037 
   10038 2005-09-19  Akim Demaille  <akim (a] epita.fr>
   10039 
   10040 	* data/lalr1.cc (yyparse): Rename yylooka and yyilooka as yychar
   10041 	and yytoken for similarity with the other skeletons.
   10042 
   10043 2005-09-19  Akim Demaille  <akim (a] epita.fr>
   10044 
   10045 	* NEWS, configure.ac: update version number to 2.1a.
   10046 
   10047 2005-09-16  Paul Eggert  <eggert (a] cs.ucla.edu>
   10048 
   10049 	* NEWS: Version 2.1.
   10050 
   10051 	* NEWS: Remove notice of yytname change, since it was never in an
   10052 	official release.
   10053 	* data/glr.c (yydestroyGLRState): Rename local var to avoid shadowing
   10054 	diagnostic.
   10055 	* src/output.c (prepare): Likewise.
   10056 	* data/lalr1.cc (YYERROR_VERBOSE_IF): New macro.
   10057 	(yysyntax_error_): Use it to avoid GCC warning when YYERROR_VERBOSE
   10058 	is not defined.  This is an awful hack, but it's enough for now.
   10059 	All callers changed.
   10060 	* tests/glr-regression-at (make_value): Args are const pointers now,
   10061 	to avoid GCC warning.
   10062 	(Duplicated user destructor for lookahead): New test.  Currently
   10063 	skipped.  It fails on my host but I'm not sure it'll always fail.
   10064 
   10065 2005-09-16  Akim Demaille  <akim (a] epita.fr>
   10066 
   10067 	* src/symtab.h (struct symbol): Declare the printer and destructor
   10068 	as const, to avoid accidental calls to free.
   10069 	(symbol_destructor_set, symbol_printer_set): Adjust.
   10070 	* src/symtab.c: Adjust.
   10071 
   10072 2005-09-16  Akim Demaille  <akim (a] epita.fr>
   10073 
   10074 	* data/c.m4 (b4_token_enums): New.
   10075 	(b4_token_defines): Rename as...
   10076 	(b4_token_enums_defines): this.
   10077 	(b4_token_defines): New, output only the #defines.
   10078 	* data/yacc.c, data/glr.c: Adjust.
   10079 	* data/lalr1.cc: Use b4_token_enums instead of b4_token_enums_defines.
   10080 	* data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Define
   10081 	as default values.
   10082 
   10083 2005-09-16  Akim Demaille  <akim (a] epita.fr>
   10084 
   10085 	* data/lalr1.cc (yylex_): Remove, inline its code.
   10086 	(yyreport_syntax_error_): Remove, replaced by...
   10087 	(yysyntax_error_): this which returns a string and leaves to the
   10088 	caller the call to the users' error function.
   10089 	(yylooka_, yyilooka_, yylval, yylloc, yyerror_range_, yyval, yyloc):
   10090 	Move from members of the parser object...
   10091 	(yylooka, yyilooka, yylval, yylloc, yyerror_range, yyval, yyloc):
   10092 	to local variables of the parse function.
   10093 
   10094 2005-09-16  Akim Demaille  <akim (a] epita.fr>
   10095 
   10096 	* doc/bison.texinfo (Calc++ Parser): Don't promote defining YYEOF
   10097 	since it's in Bison's name space.
   10098 
   10099 2005-09-15  Paul Eggert  <eggert (a] cs.ucla.edu>
   10100 
   10101 	* data/glr.c (yyresolveValue): Add default case to pacify
   10102 	gcc -Wswitch-default.  Problem reported by twlevo (a] xs4all.nl.
   10103 
   10104 	* NEWS: Document when yyparse started to return 2.
   10105 	* doc/bison.texinfo (Parser Function): Document when yyparse
   10106 	returns 2.
   10107 
   10108 	* data/lalr1.cc: Revert part of previous change, as it's incompatible.
   10109 	(b4_filename_type): Renamed back from b4_file_name_type.  All uses
   10110 	changed.
   10111 	(class position): file_name -> filename (reverting).  All uses changed.
   10112 
   10113 2005-09-14  Paul Eggert  <eggert (a] cs.ucla.edu>
   10114 
   10115 	* examples/calc++/Makefile.am ($(calc_sources_generated)): Don't
   10116 	do anything if $@ exists.  This reverts part of the 2005-07-07
   10117 	patch.
   10118 
   10119 2005-09-11  Paul Eggert  <eggert (a] cs.ucla.edu>
   10120 
   10121 	* Makefile.am (EXTRA_DIST): Do not distribute REFERENCES; it
   10122 	contains obsolete information and isn't worth distributing as a
   10123 	separate file anyway.
   10124 	* data/glr.c [defined YYSETJMP]: Don't include <setjmp.h>.
   10125 	(YYJMP_BUF, YYSETJMP, YYLONGJMP) [!defined YYSETJMP]: New macros.
   10126 	All uses of jmp_buf, setjmp, longjmp changed to use these instead.
   10127 	(yyparse): Abort if user code uses longjmp to throw an unexpected
   10128 	value.
   10129 
   10130 2005-09-09  Paul Eggert  <eggert (a] cs.ucla.edu>
   10131 
   10132 	* data/c.m4 (b4_identification): Define YYBISON_VERSION.
   10133 	Suggested by twlevo (a] xs4all.nl.
   10134 
   10135 	* data/glr.c (YYCHK1): Do not assume YYE is in range.
   10136 	This avoids a diagnostic from gcc -Wswitch-enum.
   10137 	Problem reported by twlevo (a] xs4all.nl.
   10138 
   10139 	* doc/bison.texinfo: Don't use "filename", as per GNU coding
   10140 	standards.  Use "file name" or "file" or "name", depending on
   10141 	the context.
   10142 	(Invocation): The output of "bison hack/foo.y" goes to foo.tab.c,
   10143 	not to hack/foo.tab.c.
   10144 	(Calc++ Top Level): 2nd arg of main is not const.
   10145 	* data/glr.c: b4_filename -> b4_file_name.
   10146 	* data/lalr1.cc: Likewise.  Also, b4_filename_type -> b4_file_name_type.
   10147 	All uses changed.
   10148 	(class position): filename -> file_name.  All uses changed.
   10149 	* data/yacc.c: b4_filename -> b4_file_name.
   10150 	* lib/bitset.h: filename -> file_name in local vars.
   10151 	* lib/bitset_stats.c: Likewise.
   10152 	* src/files.c: Likewise.
   10153 	* src/scan-skel.l ("@output ".*\n): Likewise.
   10154 	* src/files.c (file_name_split): Renamed from filename_split.
   10155 	* src/muscle_tab.c (muscle_init): Output b4_file_name, not b4_filename.
   10156 
   10157 2005-09-08  Paul Eggert  <eggert (a] cs.ucla.edu>
   10158 
   10159 	* lib/.cvsignore: Add pipe-safer.c, stdio--.h, unistd--.h,
   10160 	to accommodate latest gnulib.
   10161 
   10162 	* tests/glr-regression.at (Duplicate representation of merged trees):
   10163 	Add casts to pacify g++.  Problem reported by twlevo (a] xs4all.nl.
   10164 
   10165 	* bootstrap: Add comment as to why the AM_LANGINFO_CODESET hack is
   10166 	needed.
   10167 
   10168 2005-08-26  Paul Eggert  <eggert (a] cs.ucla.edu>
   10169 
   10170 	* data/glr.c (yydestroyGLRState): Renamed from yydestroyStackItem.
   10171 	All uses changed.  Invoke user destructor after an error during a
   10172 	split parse (trivial change from Joel E. Denny).
   10173 
   10174 	* tests/glr-regression.at
   10175 	(User destructor after an error during a split parse):  New test case.
   10176 	Problem reported by Joel E. Denny in:
   10177 	http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00029.html
   10178 
   10179 2005-08-25  Paul Eggert  <eggert (a] cs.ucla.edu>
   10180 
   10181 	* README-cvs: Give URLs for recommended tools.
   10182 	Mention Gzip version problem, and bootstrapping issues.
   10183 	Remove troubleshooting section, as it's somewhat obsolete.
   10184 
   10185 	* bootstrap (no_cache): New var, to accommodate different wget
   10186 	variants.  Use it instead of '-C off'.  Problem reported by
   10187 	twlevo (a] xs4all.nl.
   10188 
   10189 	* data/glr.c (yydestroyStackItem): New function.
   10190 	(yyrecoverSyntaxError, yyreturn): Use it to improve quality of
   10191 	debugging information.  Problem reported by Joel E. Denny.
   10192 
   10193 2005-08-25  Akim Demaille  <akim (a] epita.fr>
   10194 
   10195 	* tests/local.at (AT_COMPILE_CXX): Pass $LINKS too.
   10196 
   10197 2005-08-24  Paul Eggert  <eggert (a] cs.ucla.edu>
   10198 
   10199 	* data/glr.c (yyrecoverSyntaxError, yyreturn):
   10200 	Don't invoke destructor on unresolved entries.
   10201 	* tests/glr-regression.at
   10202 	(User destructor for unresolved GLR semantic value): New test case.
   10203 	Problem reported by Joel E. Denny in:
   10204 	http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00016.html
   10205 
   10206 2005-08-21  Paul Eggert  <eggert (a] cs.ucla.edu>
   10207 
   10208 	* lib/.cvsignore: Remove realloc.c, strncasecmp.c, xstrdup.c.
   10209 	Add strnlen.c.
   10210 	* m4/.cvsignore: Remove codeset.m4, gettext.m4, lib-ld.m4,
   10211 	lib-prefix.m4, po.m4.
   10212 
   10213 	* data/glr.c (yyreturn): Use "Cleanup:" rather than "Error:"
   10214 	in yydestruct diagnostic, since it might not be an error.
   10215 	Problem reported by Joel Denny near end of
   10216 	<http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
   10217 	* data/lalr1.cc (yyerturn): Likewise.
   10218 	* data/yacc.c (yyreturn): Likewise.
   10219 	* tests/calc.at (_AT_CHECK_CALC_ERROR): Adjust to the above change.
   10220 
   10221 	* src/files.c: Remove obsolete FIXME comment.
   10222 
   10223 	* data/glr.c (YY_SYMBOL_PRINT): Append a newline, for consistency
   10224 	with the other templates, and to fix bogus run-on messages such
   10225 	as the one reported at the end of
   10226 	<http://lists.gnu.org/archive/html/help-bison/2005-07/msg00040.html>.
   10227 	All callers changed to avoid the newline.
   10228 	(yyprocessOneStack): Output two lines rather than one, to accommodate
   10229 	the above change.  This changes the debug output format slightly.
   10230 
   10231 	* data/glr.c (yyresolveValue): Fix redundant parse tree problem
   10232 	reported by Joel E. Denny in
   10233 	<http://lists.gnu.org/archive/html/bison-patches/2005-08/msg00004.html>
   10234 	(trivial change).
   10235 	* tests/glr-regression.at (Duplicate representation of merged trees):
   10236 	New test, from Joel E. Denny in:
   10237 	<http://lists.gnu.org/archive/html/help-bison/2005-07/msg00013.html>.
   10238 	* THANKS: Add Joel E. Denny.
   10239 
   10240 	* configure.ac (AC_INIT): Bump to 2.0c.
   10241 
   10242 2005-07-24  Paul Eggert  <eggert (a] cs.ucla.edu>
   10243 
   10244 	* NEWS: Version 2.0b.
   10245 
   10246 	* Makefile.am (SUBDIRS): Put examples before tests, so that
   10247 	"make check" doesn't finish with "All 1 tests passed".
   10248 
   10249 	* tests/regression.at (Token definitions): Don't rely on
   10250 	AT_PARSER_CHECK for data that contains backslashes.  It currently
   10251 	uses 'echo', and 'echo' isn't portable if its argument contains
   10252 	backslashes.  Problem found on OpenBSD 3.4.  Also, do not assume
   10253 	that the byte '\0xff' is not printable in the C locale; it is,
   10254 	under OpenBSD 3.4 (!).  Luckily, '\0x80' through '\0x9e' are
   10255 	not printable, so use '\0x81' to test.
   10256 
   10257 	* data/glr.c (YYOPTIONAL_LOC): Define even if it's not a recent
   10258 	version of GCC, since the macro is used with non-GCC compilers.
   10259 
   10260 	Fix core dump reported by Pablo De Napoli in
   10261 	<http://lists.gnu.org/archive/html/bug-bison/2005-07/msg00053.html>.
   10262 	* tests/regression.at (Invalid inputs with {}): New test.
   10263 	* src/parse-gram.y (token_name): Translate type before using
   10264 	it as an index.
   10265 
   10266 	* data/glr.c (ATTRIBUTE_UNUSED): Remove, since it infringes on
   10267 	the user's name space.  All uses changed to __attribute__
   10268 	((__unused__)).
   10269 	(yyFail, yyMemoryExhausted, yyreportAmbiguity):
   10270 	Add __attribute__ ((__noreturn__)).
   10271 
   10272 	* etc/clcommit: Remove.  We weren't using it, and it failed
   10273 	"make maintainer-distcheck".
   10274 	* Makefile.maint: Merge from coreutils.
   10275 	(CVS_LIST, CVS_LIST_EXCEPT): New macros.
   10276 	(syntax-check-rules): Change list of rules as described below.
   10277 	(sc_cast_of_alloca_return_value, sc_dd_max_sym_length):
   10278 	(sc_file_system, sc_obsolete_symbols, sc_prohibit_atoi_atof):
   10279 	(sc_prohibit_jm_in_m4, sc_root_tests, sc_tight_scope):
   10280 	(sc_trailing_space): New rules.
   10281 	(sc_xalloc_h_in_src): Remove.
   10282 	(sc_cast_of_argument_to_free, sc_cast_of_x_alloc_return_value):
   10283 	(sc_space_tab, sc_error_exit_success, sc_changelog):
   10284 	(sc_system_h_headers, sc_sun_os_names, sc_unmarked_diagnostics):
   10285 	(makefile-check, po-check, author_mark_check):
   10286 	(makefile_path_separator_check, copyright-check):
   10287 	Use grep -n, to make it easier to find violations.
   10288 	Use CVS_LIST and CVS_LIST_EXCEPT.
   10289 	(header_regexp, h_re): Remove.
   10290 	(dd_c): New macro.
   10291 	(sc_dd_max_sym_length, .re-list, news-date-check): New rules.
   10292 	(my-distcheck): Use more-modern GCC flags.
   10293 	(signatures, %.asc): Remove.
   10294 	(rel-files, announcement): Remove signatures.
   10295 	Restore old updating code, even though we don't use it, so
   10296 	that we're the same as coreutils.
   10297 	(alpha, beta, major): Depend on news-date-check.
   10298 	Make the upload commands.
   10299 
   10300 	* data/c.m4, data/lalr1.cc, data/yacc.c: Normalize white space.
   10301 	* lib/abitset.h, lib/bbitset.h, lib/bitset.h: Likewise.
   10302 	* lib/bitset_stats.c, lib/ebitset.h, lib/lbitset.c: Likewise.
   10303 	* lib/libitset.h, lib/timevar.c, lib/vbitset.h: Likewise.
   10304 	* src/Makefile.am, src/gram.c, src/muscle_tab.h: Likewise.
   10305 	* src/parse-gram.y, src/system.h, src/tables.c, src/vcg.c: Likewise.
   10306 	* src/vcg_defaults.h, tests/cxx-type.at, tests/existing.at: Likewise.
   10307 	* tests/sets.at: Likewise.
   10308 
   10309 	* data/m4sugar/m4sugar.m4: Sync from Autoconf, except that
   10310 	we comment out the Autoconf version number.
   10311 	* doc/bison.texinfo (Calc++ Scanner): Don't use atoi, as
   10312 	it's error-prone and "make maintainer-distcheck" rejects it.
   10313 
   10314 	* lib/subpipe.c: Include <fcntl.h> without checking for HAVE_FCNTL_H.
   10315 	Indent calls to "error" to pacify "make maintainer-distcheck",
   10316 	when the calls are not intended to be translated.
   10317 	* m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't check for fcntl.h.
   10318 
   10319 	* src/Makefile.am (DEFS): Use +=, to pacify
   10320 	"make maintainer-distcheck".
   10321 	(bison_SOURCES): Add scan-skel.h.
   10322 	(sc_tight_scope): New rule, from coreutils.
   10323 
   10324 	* src/files.c (src_extension, header_extension):
   10325 	Now static, not extern.
   10326 	* src/getargs.c (short_options): Likewise.
   10327 	* src/muscle_tab.c (muscle_table): Likewise.
   10328 	* src/parse-gram.y (current_class, current_type, current_prec):
   10329 	Likewise.
   10330 	* src/reader.c (grammar_end, previous_rule_end): Likewise.
   10331 	* src/getargs.h: Redo comments to pacify "make maintainer-distcheck".
   10332 	* src/main.c (main): Cast bindtextdomain and textdomain calls to
   10333 	void, to avoid warning when NLS is disabled.
   10334 	* src/output.c: Include scan-skel.h.
   10335 	(scan_skel): Remove decl, since scan-skel.h does this.
   10336 	(output_skeleton):
   10337 	Indent calls to "error" to pacify "make maintainer-distcheck".
   10338 	* src/print_graph.c: Don't include <obstack.h>, as system.h does this.
   10339 	* src/reader.h (gram_end, gram_lineno): New decls to pacify
   10340 	"make maintainer-distcheck".
   10341 	* src/scan-skel.l (skel_lex, skel_get_lineno, skel_get_in):
   10342 	(skel_get_out, skel_get_leng, skel_get_text, skel_set_lineno):
   10343 	(skel_set_in, skel_set_out, skel_get_debug, skel_set_debug):
   10344 	(skel_lex_destroy, scan_skel): Move these decls to...
   10345 	* src/scan-skel.h: New file.
   10346 	* src/uniqstr.c (uniqstr_assert):
   10347 	Indent calls to "error" to pacify "make maintainer-distcheck".
   10348 
   10349 	* tests/Makefile.am ($(srcdir)/package.m4): Use $(VAR),
   10350 	not @VAR@.
   10351 
   10352 	* tests/torture.at: Revamp to avoid misuse of atoi that
   10353 	"make maintainer-distcheck" complained about.
   10354 
   10355 	* examples/extexi (message): Don't print a message more than once,
   10356 	and omit line-number decoration that makes Emacs compile think
   10357 	that informative messages are worth worrying about.
   10358 
   10359 2005-07-22  Paul Eggert  <eggert (a] cs.ucla.edu>
   10360 
   10361 	* configure.ac: Update version number.
   10362 
   10363 	* Makefile.am (SUBDIRS): Add examples; somehow this got removed
   10364 	accidentally.
   10365 	* examples/calc++/calc++-parser.yy: Remove from CVS, as it's
   10366 	autogenerated by the maintainer.
   10367 	* examples/calc++/.cvsignore: Add *.yy.
   10368 
   10369 	* lib/bitset.c (bitset_alloc): Don't cast xcalloc result.
   10370 	* lib/bitset_stats.c (bitset_stats_init): Likewise.
   10371 	* lib/bitsetv.c (bitsetv_alloc): Likewise.
   10372 
   10373 	* po/POTFILES.in: Add lib/xalloc-die.c; remove lib/xmalloc.c.
   10374 
   10375 	* src/relation.c (relation_transpose): Rewrite to avoid bogus complaint
   10376 	from maintainer-distcheck about casting the argument of 'free'.
   10377 
   10378 	* NEWS: Mention recent yytname changes.
   10379 	* THANKS: Add Anthony Heading, twlevo (a] xs4all.nl.
   10380 
   10381 	* bootstrap: For translations that have not yet been upgraded to
   10382 	the new runtime-po domain, prime the pump by extracting the
   10383 	relevant strings from the obsolete translations.  This code can be
   10384 	removed once the bison-runtime domain has been translated by each
   10385 	team.
   10386 
   10387 	* src/scan-gram.l (<SC_PRE_CODE>.): Don't double-quote token names,
   10388 	now that token names are already quoted.
   10389 
   10390 	Fix problem reported by Anthony Heading.
   10391 	* data/glr.c (YYTOKEN_TABLE): New macro.
   10392 	(yytname): Define if YYTOKEN_TABLE.
   10393 	* data/yacc.c (YYTOKEN_TABLE, yytname): Likewise.
   10394 	* data/lalr1.cc (YYTOKEN_TABLE, yytname_): Likewise.
   10395 	(YYERROR_VERBOSE): Define the same way the other skeletons do.
   10396 	* src/output.c (prepare_symbols): Output token_table_flag.
   10397 
   10398 2005-07-21  Paul Eggert  <eggert (a] cs.ucla.edu>
   10399 
   10400 	* data/glr.c (yyinitGLRStack, yyreturn): Don't call malloc
   10401 	again if the first call fails.
   10402 
   10403 	* data/glr.c (yytnamerr): New function.
   10404 	(yyreportSyntaxError): Use it to dequote most string literals.
   10405 	* data/lalr1.c (yytname_): Renamed from yyname_, for compatibility
   10406 	with other skeletons.  All uses changed.
   10407 	(yytnameerr_): New function.
   10408 	(yyreport_syntax_error): Use it to dequote most string literals.
   10409 	* data/yacc.c (yytnamerr): New function.
   10410 	(yyerrlab): Use it to decode most string literals.
   10411 	* doc/bison.texinfo (Decl Summary, Calling Convention):
   10412 	Clarify quoting convention of yytname.
   10413 	* src/output.c (prepare_symbols): Quote all names.  This undoes
   10414 	the 2005-04-17 change, which is now accomplished (mostly) via
   10415 	changes in the parsers as described above.
   10416 	* tests/regression.at (Token definitions, Web2c Actions):
   10417 	Undo most 2005-04-17 change here, too.
   10418 
   10419 2005-07-20  Paul Eggert  <eggert (a] cs.ucla.edu>
   10420 
   10421 	Fix more problems reported by twlevo (a] xs4all.nl.
   10422 	* tests/cxx-type.at: Don't pipe output of ./types through sed to
   10423 	remove trailing spaces.  This loses the exit status of ./types,
   10424 	and isn't needed since ./types shouldn't be emitting trailing
   10425 	spaces.
   10426 	* data/glr.c (yyreturn): Don't pop stack if yyinitStateSet failed,
   10427 	as the stack isn't valid in that case.
   10428 
   10429 	* src/scan-gram.l (gram_get_lineno, gram_get_in, gram_get_out):
   10430 	(gram_get_leng, gram_get_text, gram_set_lineno, gram_set_in):
   10431 	(gram_set_out, gram_get_debug, gram_set_debug, gram_lex_destroy):
   10432 	Add declarations to pacify "gcc -Wmissing-prototypes" when flex 2.5.31
   10433 	is used.
   10434 	* src/scan-skel.l (skel_get_lineno, skel_get_in, skel_get_out):
   10435 	(skel_get_leng, skel_get_text, skel_set_lineno, skel_set_in):
   10436 	(skel_set_out, skel_get_debug, skel_set_debug, skel_lex_destroy):
   10437 	Likewise.
   10438 
   10439 	* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Work even with
   10440 	overly-picky compilers that reject 'char *foo = "bar";'.
   10441 
   10442 	* src/symtab.c (SYMBOL_ATTR_PRINT, symbol_print): Direct output
   10443 	to FILE * parameter, not to stderr.  This fixes a typo introduced
   10444 	in the 2005-07-12 change.
   10445 
   10446 	* lib/subpipe.c (create_subpipe): Rewrite slightly to avoid
   10447 	warnings from GCC 4.
   10448 
   10449 	* data/glr.c (yyexpandGLRStack, yyaddDeferredAction, yyexpandGLRStack):
   10450 	(yyglrShiftDefer, yysplitStack):
   10451 	Remove unused parameters b4_pure_formals.  All uses changed.
   10452 	(yyglrShift): Remove unused parameters b4_user_formals.
   10453 	All uses changed.
   10454 	(yyglrReduce): Removed unused parameter yylocp.  All uses changed.
   10455 
   10456 2005-07-18  Paul Eggert  <eggert (a] cs.ucla.edu>
   10457 
   10458 	Destructor cleanups and regularization among the three skeletons.
   10459 	* NEWS: Document the behavior changes.
   10460 	* data/glr.c (yyrecoverSyntaxError): Don't bother to pop the
   10461 	stack before failing, as the cleanup code will do it for us now.
   10462 	* data/lalr1.cc (yyerrlab): Likewise.
   10463 	* data/glr.c (yyparse): Pop everything off the stack before
   10464 	freeing it, so that destructors get called properly.
   10465 	* data/lalr1.cc (yyreturn): Likewise.
   10466 	* data/yacc.c (yyreturn): Pop and destroy the start symbol, too.
   10467 	This is more consistent.
   10468 	* doc/bison.texinfo (Destructor Decl): Mention more reasons
   10469 	why destructors might be called.  1.875 -> 2.1.
   10470 	(Destructor Decl, Decl Summary, Table of Symbols):
   10471 	Some English-language cleanups for %destructor.
   10472 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
   10473 	Add output line for destructor of start symbol.
   10474 	* tests/calc.at (AT_CHECK_CALC): Add one to line counts,
   10475 	because of that same extra output line.
   10476 
   10477 	* NEWS: Document minor wording changes in diagnostics of
   10478 	Bison-generated parsers.
   10479 	* data/glr.c (yyMemoryExhausted): Renamed from yyStackOverflow.
   10480 	Remove unused formals.  All uses changed.
   10481 	(yyreportAmbiguity): "ambiguity detected" -> "syntax is ambiguous".
   10482 	(yyparse): Rename yyoverflowlab to yyexhaustedlab.
   10483 	* data/yacc.c (yyparse): "parser stack overflow" -> "memory exhausted".
   10484 	Rename yyoverflowab to yyexhaustedlab.
   10485 	When memory exhaustion occurs during syntax-error reporting,
   10486 	report it separately rather than in a single diagnostic; this
   10487 	eases translation.
   10488 	* doc/bison.texinfo (Memory Management): Renamed from Stack Overflow.
   10489 	(Memory Exhausted): Renamed from Parser Stack Overflow.
   10490 	Revamp wording slightly to prefer "memory exhaustion".
   10491 	* tests/actions.at: "parser stack overflow" -> "memory exhausted".
   10492 
   10493 	* data/c.m4 (b4_yysymprint_generate): Use YYFPRINTF, not fprintf.
   10494 
   10495 	Add i18n support to the GLR skeleton.  Partially fix the C++
   10496 	skeleton; a C++ expert needs to finish this.  Remove debugging
   10497 	msgids; there's little point to having them translated, since they
   10498 	can be understood only by someone who can read the
   10499 	(English-language) source code.
   10500 
   10501 	Generate runtime-po/bison-runtime.pot automatically, so that we
   10502 	don't have to worry about garbage getting in that file.  We'll
   10503 	make sure after the next official release that old msgids don't
   10504 	get lost.  See
   10505 	<http://lists.gnu.org/archive/html/bison-patches/2005-07/msg00119.html>.
   10506 
   10507 	* runtime-po/Makefile.in.in, runtime-po/bison-runtime.pot: Remove.
   10508 	Now auto-generated.
   10509 	* PACKAGING: Don't claim that Gawk, GCC, Perl use this method yet.
   10510 	Fix typos in explanations of the runtime file.
   10511 	* bootstrap: Change gettext keyword from YYI18N to YY_.
   10512 	Use standard Makefile.in.in in runtime-po, since we'll arrange
   10513 	for backward-compatible bison-runtime.po files in a different way.
   10514 	* data/glr.c (YY_): New macro, from yacc.c.
   10515 	(yyuserAction, yyreportAmbiguity, yyreportSyntaxError, yyparse):
   10516 	Translate messages intended for users.
   10517 	(yyreportSyntaxError): Change "virtual memory" to "memory" to match
   10518 	the wording in the other skeletons.  We don't know that the memory
   10519 	is virtual.
   10520 	* data/lalr1.cc (YY_): Renamed from _.  All uses changed.
   10521 	Use same method that yacc.c uses.
   10522 	Don't translate debugging messages.
   10523 	(yy::yyreport_syntax_error): Put in a FIXME for the i18n stuff;
   10524 	it doesn't work (yet), and requires C++ expertise to fix.
   10525 	* data/yacc.c (YY_): Renamed from YY18N.  All uses changed.
   10526 	Move defn to a more logical place, to be consistent with other
   10527 	skeletons.
   10528 	Don't translate debugging messages.
   10529 	Don't assume line numbers fit in unsigned int; use unsigned long fmts.
   10530 	* doc/bison.texinfo: Mention <libintl.h>.  Change glibc cross reference
   10531 	to gettext cross reference.  Add indexing terms.  Mention YYENABLE_NLS.
   10532 	* runtime-po/POTFILES.in: Add data/glr.c, data/lalr1.cc.
   10533 
   10534 	Fix yyerror / yylex test glitches noted by twlevo (a] xs4all.nl.
   10535 	* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Have yyerror return
   10536 	void, not int.
   10537 	* tests/glr-regression.at (Badly Collapsed GLR States):
   10538 	Likewise.
   10539 	(Improper handling of embedded actions and dollar(-N) in GLR parsers):
   10540 	yylex should return 0 at EOF rather than aborting.
   10541 
   10542 	Improve tests for stack overflow in GLR parser.
   10543 	Problem reported by twlevo (a] xs4all.nl.
   10544 	* data/glr.c (struct yyGLRStack): Remove yyerrflag member.
   10545 	All uses removed.
   10546 	(yyStackOverflow): Just longjmp, but with value 2 so that caller
   10547 	can handle the problem.
   10548 	(YYCHK1): Use goto (a la yacc.c) rather than setting a flag.
   10549 	(yyparse): New local variable yyresult to record the result.
   10550 	Use result of setjmp to set it, rather than storing itinto
   10551 	struct.
   10552 	(yyDone): Remove label.
   10553 	(yyacceptlab, yyabortlab, yyoverflowlab, yyreturn): New labels,
   10554 	to mimic yacc.c.  Do not discard lookahead if it's EOF (possible
   10555 	if YYABORT is used).
   10556 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Exit with
   10557 	yyparse status; put status > 1 into diagnostic.
   10558 	Check that status==2 works.
   10559 	* tests/calc.at, tests/cxx-type.at, tests/glr-regression.at:
   10560 	Use exit status 3 for failure to open (which shouldn't happen).
   10561 
   10562 2005-07-17  Paul Eggert  <eggert (a] cs.ucla.edu>
   10563 
   10564 	* tests/conflicts.at (%nonassoc and eof):  Don't exit with status
   10565 	1 on syntax error; just let yyparse do its thing.
   10566 	* tests/glr-regression.at (Badly Collapsed GLR States): Likewise.
   10567 	* tests/torture.at (AT_DATA_STACK_TORTURE): Likewise.
   10568 	(Exploding the Stack Size with Alloca):
   10569 	(Exploding the Stack Size with Malloc):
   10570 	Expect exit status 2, not 1, since the parser is supposed to blow
   10571 	its stack.  Problem reported by twlevo (a] xs4all.nl.
   10572 
   10573 	* data/glr.c (yyparse): Don't assume that the initial calls
   10574 	to YYMALLOC succeed; in that case, yyparse incorrectly returned 0.
   10575 	Print a stack-overflow message and fail instead.
   10576 	Initialize the line-number information before creating the stack,
   10577 	so that the stack-overflow message can report line zero safely.
   10578 
   10579 2005-07-14  Paul Eggert  <eggert (a] cs.ucla.edu>
   10580 
   10581 	Fix problems reported by twlevo (a] xs4all.nl.
   10582 	* data/glr.c (YYSTACKEXPANDABLE): Don't define if already defined.
   10583 	(yyuserMerge): Provide a default case if b4_mergers is empty.
   10584 	* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Define YYSTACKEXPANDABLE.
   10585 	* tests/glr-regression.at
   10586 	(Improper handling of embedded actions and dollar(-N) in GLR parsers):
   10587 	Add casts to pacify C++ compilers.
   10588 	* tests/glr-regression.at (Improper merging of GLR delayed action
   10589 	sets): Declare yylex before using it.
   10590 	* tests/Makefile.am (maintainer-check-g++): Fix a stray
   10591 	$(GXX) that escaped the renaming of GXX to CXX.  Remove bogus
   10592 	test for valgrind; valgrind is independent of g++.
   10593 	(maintainer-check-posix): Add _POSIX2_VERSION=200112, to check
   10594 	for compatibility with POSIX 1003.1-2001 (if running coreutils).
   10595 	* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Port to stricter C++.
   10596 	Use a destructor, so that we can expand the stack.  Change
   10597 	YYSTYPE to char * so that we can free it.  Cast result of malloc.
   10598 
   10599 2005-07-13  Paul Hilfinger  <hilfingr (a] CS.Berkeley.EDU>
   10600 
   10601 	* data/glr.c (yyuserAction): Fix uninitialized variable that caused
   10602 	a valgrind failure.  Problem reported by twlevo (a] xs4all.nl.
   10603 
   10604 2005-07-13  Paul Eggert  <eggert (a] cs.ucla.edu>
   10605 
   10606 	* PACKAGING: New file, suggested by Bruno Haible and taken from
   10607 	similar wording in gettext's PACKAGING file.
   10608 	* NEWS: Mention PACKAGING.
   10609 	* Makefile.am (EXTRA_DIST): Add PACKAGING.
   10610 
   10611 2005-07-12  Paul Eggert  <eggert (a] cs.ucla.edu>
   10612 
   10613 	* NEWS: Document recent i18n improvements.
   10614 	* bootstrap: Get runtime translations into runtime-po.
   10615 	Create runtime-po files automatically, if possible.
   10616 	* configure.ac: Invoke BISON_I18N, so that we eat our own dog food.
   10617 	* data/yacc.c: Rewrite inclusion of <libintl.h> so that ENABLE_NLS
   10618 	does not infringe on the user's name space.
   10619 	(YYENABLE_NLS): Renamed from ENABLE_BISON_NLS.
   10620 	* doc/bison.texinfo (Internationalization): Revamp the English
   10621 	and Texinfo syntax a bit, to try to make it clearer.
   10622 	(Bison Options, Option Cross Key): Mention --print-localedir.
   10623 	* m4/bison-i18n.m4 (BISON_I18N): Rename ENABLE_BISON_NLS to
   10624 	YYENABLE_NLS.  Quote a bit more.
   10625 	* runtime-po/.cvsignore: New file.
   10626 	* runtime-po/Makefile.in.in (mostlyclean): Remove *.old.pot.
   10627 	* runtime-po/Rules-quot: Remove; now created by bootstrap.
   10628 	* runtime-po/quot.sed: Likewise.
   10629 	* runtime-po/boldquot.sed: Likewise.
   10630 	* runtime-po/en@quot.header: Likewise.
   10631 	* runtime-po/en@boldquot.header: Likewise.
   10632 	* runtime-po/insert-header.sin: Likewise.
   10633 	* runtime-po/remove-potcdate.sin: Likewise.
   10634 	* runtime-po/Makevars: Likewise.
   10635 	* runtime-po/LINGUAS: Likewise.
   10636 	* runtime-po/de.po: Likewise; we will rely on the translation project
   10637 	to maintain this, so "bootstrap" should get it.
   10638 	* src/getarg.c (PRINT_LOCALEDIR_OPTION): Let the C compiler determine
   10639 	its value.
   10640 	* src/main.c (main): Bind the bison-runtime domain, too.
   10641 
   10642 2005-07-12  Bruno Haible  <bruno (a] clisp.org>
   10643 
   10644 	* data/yacc.c: Include <libintl.h> when NLS is enabled.
   10645 	(YYI18N): Renamed from _. Use dgettext when NLS is enabled.
   10646 	* po/POTFILES.in: Remove autogenerated file src/parse-gram.c.
   10647 	* runtime-po: New directory.
   10648 	* runtime-po/Makefile.in.in: New file, copied from po/, with modified
   10649 	$(DOMAIN).pot-update rule, so that old messages are never dropped.
   10650 	* runtime-po/Rules-quot: New file, copied from po/.
   10651 	* runtime-po/quot.sed: Likewise.
   10652 	* runtime-po/boldquot.sed: Likewise.
   10653 	* runtime-po/en@quot.header: Likewise.
   10654 	* runtime-po/en@boldquot.header: Likewise.
   10655 	* runtime-po/insert-header.sin: Likewise.
   10656 	* runtime-po/remove-potcdate.sin: Likewise.
   10657 	* runtime-po/Makevars: New file.
   10658 	* runtime-po/POTFILES.in: New file.
   10659 	* runtime-po/LINGUAS: New file.
   10660 	* runtime-po/bison-runtime.pot: New file.
   10661 	* runtime-po/de.po: New file.
   10662 	* m4/bison.m4: New file.
   10663 	* Makefile.am (SUBDIRS): Add runtime-po.
   10664 	(aclocaldir, aclocal_DATA): New variables.
   10665 	* configure.ac: Add AC_CONFIG_FILES of runtime-po/Makefile.in.
   10666 	Define aclocaldir.
   10667 	* src/getargs.c (usage): Document --print-localedir option.
   10668 	(PRINT_LOCALEDIR_OPTION): New enum item.
   10669 	(long_options): Add --print-localedir option.
   10670 	(getargs): Handle --print-localedir option.
   10671 	* doc/bison.texinfo (Bison Parser): Remove paragraph about _().
   10672 	(Internationalization): New section.
   10673 
   10674 2005-07-12  Akim Demaille  <akim (a] epita.fr>
   10675 
   10676 	* src/symtab.h, src/symtab.c (symbol_print): Swap the arguments,
   10677 	for consistency with the rest of the code.
   10678 	* src/symlist.h, src/symlist.c (symbol_list_print): Ditto.
   10679 	Add separators.
   10680 
   10681 2005-07-12  Akim Demaille  <akim (a] epita.fr>
   10682 
   10683 	* src/parse-gram.y: Use %printer instead of YYPRINT.
   10684 
   10685 2005-07-12  Akim Demaille  <akim (a] epita.fr>
   10686 
   10687 	* src/symtab.h, src/symtab.c (symbol_print): New.
   10688 	* src/symlist.h, src/symlist.c (symbol_list_print): New.
   10689 	* src/symlist.c (symbol_list_n_type_name_get): Report the culprit.
   10690 
   10691 2005-07-12  Akim Demaille  <akim (a] epita.fr>
   10692 
   10693 	* data/glr.c (b4_syncline): Fix (swap) the definitions of
   10694 	b4_at_dollar and b4_dollar_dollar.
   10695 
   10696 2005-07-11  Paul Eggert  <eggert (a] cs.ucla.edu>
   10697 
   10698 	* doc/bison.texinfo (Mystery Conflicts): Add reference to DeRemer
   10699 	and Pennello's paper.
   10700 
   10701 2005-07-09  Paul Eggert  <eggert (a] cs.ucla.edu>
   10702 
   10703 	* data/yacc.c (yyparse): Undo previous patch.  Instead,
   10704 	set yylsp[0] and yyvsp[0] only if the initial action
   10705 	sets yylloc and yylval, respectively.
   10706 
   10707 	* data/yacc.c (yyparse): In the initial action, set
   10708 	yylsp[0] and yyvsp[0] rather than yylloc and yylval.
   10709 	This avoids the use of undefined variables if the initial
   10710 	action does not set yylloc and/or yylval.
   10711 
   10712 2005-07-07  Paul Eggert  <eggert (a] cs.ucla.edu>
   10713 
   10714 	* examples/calc++/calc++-driver.cc, examples/calc++/calc++-driver.hh:
   10715 	* examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc:
   10716 	Remove from CVS.  These files are automatically generated.
   10717 	* examples/extexi: Clarify that this file is now part of Bison,
   10718 	not GNU M4, and that it works with any POSIX-compatible Awk.
   10719 	* examples/calc++/Makefile.am (run_extexi): Remove; not used.
   10720 	($(calc_extracted)): Renamed from $(calc_sources_extracted),
   10721 	so that we also get calc++-parser.yy.  Geneate it.
   10722 	Use $(AWK), not gawk, since any conforming Awk will do.
   10723 	Put comment before action, since older 'make' can't handle comment
   10724 	in action.
   10725 	$(BUILT_SOURCES): List all built sources, not just some of them.
   10726 	$(MAINTAINERCLEANFILES): Remove *.stamp, and all built sources.
   10727 	$($(srcdir)/calc++-parser.stamp): Work even if POSIXLY_CORRECT.
   10728 	$($(calc_sources_generated)): Remove unnecessary test for existence
   10729 	of target.  (This had a shell syntax error anyway; a stray "x".)
   10730 	(calc_extracted): List $(srcdir)/calc++-parser.yy, not
   10731 	calc++-parser.yy.
   10732 	* examples/.cvsignore, examples/calc++/.cvsignore: New files.
   10733 
   10734 	* bootstrap (gnulib_modules): Add gettext, now that it's no longer
   10735 	implied by the other modules.
   10736 
   10737 2005-07-06  Akim Demaille  <akim (a] epita.fr>
   10738 
   10739 	Bind examples/calc++ to the package.
   10740 	* examples/calc++/Makefile: Remove, replaced by...
   10741 	* examples/calc++/Makefile.am: ... this new file.
   10742 	* examples/calc++/test: Remove input.
   10743 	* examples/calc++/compile: Remove.
   10744 	* examples/Makefile.am: New.
   10745 	* configure.ac, Makefile.am: Adjust.
   10746 	* doc/Makefile.am (clean-local): New, for more recent texi2dvis.
   10747 
   10748 2005-07-05  Paul Eggert  <eggert (a] cs.ucla.edu>
   10749 
   10750 	* data/glr.c (yyFail): Drastically simplify; since the format argument
   10751 	never had any % directives, we can simply pass it to yyerror.
   10752 	(yyparse): Use "t a; a=b;" rather than "t a = b;" when a will
   10753 	be modified later, as that is the usual style in glr.c.
   10754 	Problems reported by Paul Hilfinger.
   10755 
   10756 	Rewrite GLR parser to catch more buffer overrun, storage exhaustion,
   10757 	and size overflow errors.
   10758 	* data/glr.c: Include <stdio.h> etc. after user prolog, not before,
   10759 	in case the user prolog sets feature-test macros like _GNU_SOURCE.
   10760 	(YYSIZEMAX): New macro.
   10761 	(yystpcpy): New function, taken from yacc.c.
   10762 	(struct yyGLRStack.yyspaceLeft): Now size_t, not int.
   10763 	(yyinitGLRStack, yyfreeGLRstack): Remove unnecessary forward decls,
   10764 	so that we don't have to maintain their signatures.
   10765 	(yyFail): Check for buffer overflow, by using vsnprintf rather
   10766 	than vsprintf.  Allocate a bigger buffer if possible.
   10767 	Report an error if buffer allocation fails.
   10768 	(yyStackOverflow): New function.
   10769 	(yyinitStateSet, yyinitGLRStack): Return a boolean indicating whether
   10770 	the initialization was successful.  It might fail if storage was
   10771 	exhausted.
   10772 	(yyexpandGLRStack): Add more checks for storage allocation failure.
   10773 	Use yyStackOverflow to report failures.
   10774 	(yymarkStackDeleted, yyglrShift, yyglrShiftDefer, yydoAction):
   10775 	(yysplitStack, yyprocessOneStack, yyparse, yypstack):
   10776 	Don't assume stack number fits in int.
   10777 	(yysplitStack): Check for storage allocation failure.
   10778 	(yysplitStack, yyprocessOneStack): Add pure_formals, so that we
   10779 	can print diagnostics on storage allocation failure.  All callers
   10780 	changed.
   10781 	(yyresolveValue): Use yybool for boolean.
   10782 	(yyreportSyntaxError): Check for size-calculation overflow.
   10783 	This code is taken from yacc.c.
   10784 	(yyparse): Check for storage allocation errors when allocating
   10785 	the initial stack.
   10786 
   10787 2005-07-05  Akim Demaille  <akim (a] epita.fr>
   10788 
   10789 	Extract calc++ from the documentation.
   10790 	* doc/bison.texinfo (Calc++): Add the extraction marks.
   10791 	* examples/extexi: New, from the aborted GNU Programming 2E.
   10792 	Separate the different paragraph of a file with empty lines.
   10793 	* examples/Makefile: Use it to extract the whole calc++ example.
   10794 
   10795 2005-06-24  Akim Demaille  <akim (a] epita.fr>
   10796 
   10797 	* doc/bison.texinfo (C++ Parser Interface): Use defcv to define
   10798 	class typedefs.
   10799 
   10800 2005-06-22  Akim Demaille  <akim (a] epita.fr>
   10801 
   10802 	* doc/bison.texinfo (C++ Language Interface): First stab.
   10803 	(C++ Parsers): Remove.
   10804 
   10805 2005-06-22  Akim Demaille  <akim (a] epita.fr>
   10806 
   10807 	* data/lalr1.cc (yylex_): Honor %lex-param.
   10808 
   10809 2005-06-22  Akim Demaille  <akim (a] epita.fr>
   10810 
   10811 	Start a set of simple examples.
   10812 	* examples/calc++/Makefile, examples/calc++/calc++-driver.cc,
   10813 	* examples/calc++/calc++-driver.hh,
   10814 	* examples/calc++/calc++-parser.yy,
   10815 	* examples/calc++/calc++-scanner.ll, examples/calc++/calc++.cc,
   10816 	* examples/calc++/compile, examples/calc++/test: New.
   10817 
   10818 2005-06-09  Paul Eggert  <eggert (a] cs.ucla.edu>
   10819 
   10820 	* data/yacc.c (malloc, free) [defined __cplusplus]: Wrap inside
   10821 	extern "C" {}.  This fixes a problem reported by Paul Hilfinger,
   10822 	which stems from the 2005-05-27 patch.
   10823 
   10824 2005-06-06  Paul Hilfinger  <hilfingr (a] tully.CS.Berkeley.EDU>
   10825 
   10826 	* data/glr.c: Modify treatment of unused parameters to permit use
   10827 	of g++ (which doesn't allow __attribute__ ((unused)) for parameters).
   10828 
   10829 2005-05-30  Paul Eggert  <eggert (a] cs.ucla.edu>
   10830 
   10831 	Fix infringement on user name space reported by Janos Zoltan Szabo.
   10832 	* data/yacc.c (yyparse): strlen -> yystrlen.
   10833 
   10834 2005-05-30  Akim Demaille  <akim (a] epita.fr>
   10835 
   10836 	* data/lalr1.cc (_): New.
   10837 	Translate the various messages.
   10838 
   10839 2005-05-27  Paul Eggert  <eggert (a] cs.ucla.edu>
   10840 
   10841 	Fix infringement on user name space reported by Bruno Haible.
   10842 	* data/yacc.c (YYSIZE_T): Define first, so that later decls can use it.
   10843 	Prefer GCC's __SIZE_TYPE__ if available, so that we don't infringe on
   10844 	the user's name space.
   10845 	(alloca): Include <stdlib.h> to get it, if it's not built in.
   10846 	(YYMALLOC, YYFREE): Define only if needed.
   10847 	(malloc, free): Declare, but only if needed, as this infringes on
   10848 	the user name space.
   10849 
   10850 2005-05-25  Paul Eggert  <eggert (a] cs.ucla.edu>
   10851 
   10852 	Fix BeOS, FreeBSD, MacOS porting problems reported by Bruno Haible.
   10853 	* lib/bitset.c (bitset_print): Don't assume size_t can be printed
   10854 	with %d format.
   10855 	* lib/ebitset.c (min, max): Undef before defining.
   10856 	* lib/vbitset.c (min, max): Likewise.
   10857 	* lib/subpipe.c (create_subpipe): Save local variables in case
   10858 	vfork clobbers them.
   10859 
   10860 2005-05-24  Bruno Haible  <bruno (a] clisp.org>
   10861 
   10862 	* tests/synclines.at (AT_SYNCLINES_COMPILE): Add support for the
   10863 	error message syntax used by gcc-4.0.
   10864 
   10865 2005-05-23  Paul Eggert  <eggert (a] cs.ucla.edu>
   10866 
   10867 	* README: Mention m4 1.4.3.  Remove obsolete advice about
   10868 	Sun Forte Developer 6 update 2, VMS, and MS-DOS.
   10869 
   10870 	* bootstrap: Remove workaround for problem I encountered with
   10871 	gettext 0.14.1; it seems to be fixed now.
   10872 
   10873 2005-05-22  Paul Eggert  <eggert (a] cs.ucla.edu>
   10874 
   10875 	* NEWS: Version 2.0a.
   10876 
   10877 	* src/files.c: Include "stdio-safer.h"; this fixes a typo in
   10878 	the previous change.
   10879 
   10880 	Various maintainer cleanups.
   10881 	* .cvsignore: Add a.exe, a.out, b.out,, conf[0-9]*, confdefs*,
   10882 	conftest*, for benefit of CVS commands run at the same time as
   10883 	"configure".  Add build-aux, since "bootstrap" now creates it and
   10884 	its subfiles.
   10885 	* Makefile.cfg (move_if_change): Remove.
   10886 	* Makefile.maint: Remove the update stuff; we now use "bootstrap".
   10887 	(ftp-gnu, www-gnu, move_if_change, local_updates, update):
   10888 	(po_repo, do-po-update, po-update, wget_files, get-targets):
   10889 	(config.guess-url_prefix, config.sub-url_prefix):
   10890 	(ansi2knr.c-url_prefix, texinfo.tex-url_prefix):
   10891 	(standards.texi-url_prefix, make-stds.texi-url_prefix, taget, url):
   10892 	($(get-targets), cvs-files, automake_repo, wget-update, cvs-update):
   10893 	Remove.
   10894 	* configure.ac (AC_CONFIG_AUX_DIR): Change from config to build-aux;
   10895 	this is now the recommended name.
   10896 	* config/.cvsignore: Remove config.guess, config.rpath, config.sub,
   10897 	depcomp, install-sh, mdate-sh, missing, mkinstalldirs, texinfo.tex,
   10898 	ylwrap.  These files now go into build-aux.
   10899 	* config/move-if-change: Remove.
   10900 	* config/prev-version.txt: Bump from 1.75 to 2.0.
   10901 
   10902 	* bootstrap: Add stdio-safer, unistd-safer modules.
   10903 	Remove m4/glibc2.m4 (introduced by latest gnulib, but
   10904 	we don't need it).
   10905 	* lib/.cvsignore: Add dup-safer.c, fd-safer.c,
   10906 	fopen-safer.c, stdio-safer.h, unistd-safer.h.
   10907 	* lib/subpipe.c: Include "unistd-safer.h".
   10908 	(create_subpipe): Make sure all the newly-created
   10909 	file descriptors are > 2, so that diagnostics don't
   10910 	get sent down them (which might cause Bison to hang, in theory).
   10911 	* m4/.cvsignore: Add stdio-safer.m4, unistd-safer.m4.
   10912 	* src/files.c (xfopen): Use fopen_safer, not fopen.
   10913 
   10914 	* data/lalr1.cc (yy::]b4_parser_class_name[::parse): Port
   10915 	yesterday's yacc.c fix.
   10916 
   10917 2005-05-21  Paul Eggert  <eggert (a] cs.ucla.edu>
   10918 
   10919 	* data/glr.c, data/lalr1.cc: Update copyright date.
   10920 
   10921 	Fix a destructor bug reported by Wolfgang Spraul in
   10922 	<http://lists.gnu.org/archive/html/bug-bison/2005-05/msg00042.html>.
   10923 	* data/yacc.c (yyabortlab): Don't call destructor, and
   10924 	don't set yychar to EMPTY.
   10925 	(yyoverflowlab): Don't call destructor.
   10926 	(yyreturn): Call destructor, if yychar is neither YYEOF nor YYEMPTY.
   10927 	* tests/calc.at (AT_CHECK_CALC): Expect one fewer output lines,
   10928 	since we no longer output the message "discarding lookahead token
   10929 	end of input ()".
   10930 
   10931 2005-05-20  Paul Hilfinger  <hilfingr (a] CS.Berkeley.EDU>
   10932 
   10933 	* data/glr.c (YY_SYMBOL_PRINT): Don't print newline at end to
   10934 	fix a small glitch in debugging output.
   10935 	(yyprocessOneStack, yyrecoverSyntaxError, yyparse): Print newline
   10936 	after YY_SYMBOL_PRINT where needed.
   10937 
   10938 	(struct yyGLRState): Add some comments.
   10939 	(struct yySemanticOption): Add some comments.
   10940 	(union yyGLRStackItem): Add comment.
   10941 
   10942 	(yymergeOptionSets): Correct this to properly perform the union,
   10943 	avoiding infinite reported by Michael Rosien.
   10944 	Update comment.
   10945 
   10946 	* tests/glr-regression.at: Add test for GLR merging error reported
   10947 	by M. Rosien.
   10948 
   10949 2005-05-13  Paul Eggert  <eggert (a] cs.ucla.edu>
   10950 
   10951 	* COPYING, ChangeLog, GNUmakefile, HACKING, Makefile.am,
   10952 	Makefile.cfg, Makefile.maint, NEWS, README, README-alpha,
   10953 	README-cvs, TODO, bootstrap, configure.ac, data/Makefile.am,
   10954 	data/README, data/c.m4, data/glr.c, data/lalr1.cc, data/yacc.c,
   10955 	data/m4sugar/m4sugar.m4, doc/Makefile.am, doc/bison.texinfo,
   10956 	doc/fdl.texi, doc/gpl.texi, doc/refcard.tex, lib/Makefile.am,
   10957 	lib/abitset.c, lib/abitset.h, lib/bbitset.h, lib/bitset.c,
   10958 	lib/bitset.h, lib/bitset_stats.c, lib/bitset_stats.h,
   10959 	lib/bitsetv-print.c, lib/bitsetv-print.h, lib/bitsetv.c,
   10960 	lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/get-errno.c,
   10961 	lib/get-errno.h, lib/lbitset.c, lib/lbitset.h, lib/libiberty.h,
   10962 	lib/main.c, lib/subpipe.c, lib/subpipe.h, lib/timevar.c,
   10963 	lib/timevar.def, lib/timevar.h, lib/vbitset.c, lib/vbitset.h,
   10964 	lib/yyerror.c, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4, m4/timevar.m4,
   10965 	m4/warning.m4, src/LR0.c, src/LR0.h, src/Makefile.am, src/assoc.c,
   10966 	src/assoc.h, src/closure.c, src/closure.h, src/complain.c,
   10967 	src/complain.h, src/conflicts.c, src/conflicts.h, src/derives.c,
   10968 	src/derives.h, src/files.c, src/files.h, src/getargs.c,
   10969 	src/getargs.h, src/gram.c, src/gram.h, src/lalr.c, src/lalr.h,
   10970 	src/location.c, src/location.h, src/main.c, src/muscle_tab.c,
   10971 	src/muscle_tab.h, src/nullable.c, src/nullable.h, src/output.c,
   10972 	src/output.h, src/parse-gram.c, src/parse-gram.h,
   10973 	src/parse-gram.y, src/print.c, src/print.h, src/print_graph.c,
   10974 	src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c,
   10975 	src/reduce.h, src/relation.c, src/relation.h, src/scan-gram.l,
   10976 	src/scan-skel.l, src/state.c, src/state.h, src/symlist.c,
   10977 	src/symlist.h, src/symtab.c, src/symtab.h, src/system.h,
   10978 	src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h,
   10979 	src/vcg.c, src/vcg.h, src/vcg_defaults.h, tests/Makefile.am,
   10980 	tests/actions.at, tests/c++.at, tests/calc.at, tests/conflicts.at,
   10981 	tests/cxx-type.at, tests/existing.at, tests/glr-regression.at,
   10982 	tests/headers.at, tests/input.at, tests/local.at, tests/output.at,
   10983 	tests/reduce.at, tests/regression.at, tests/sets.at,
   10984 	tests/synclines.at, tests/testsuite.at, tests/torture.at:
   10985 	Update FSF postal mail address.
   10986 
   10987 2005-05-11  Paul Eggert  <eggert (a] cs.ucla.edu>
   10988 
   10989 	* tests/local.at (AT_COMPILE_CXX): Treat LDFLAGS like AT_COMPILE does.
   10990 	Problem reported by Ralf Menzel.
   10991 
   10992 2005-05-01  Paul Eggert  <eggert (a] cs.ucla.edu>
   10993 
   10994 	* tests/actions.at: Test that stack overflow invokes destructors.
   10995 	From Marcus Holland-Moritz.
   10996 	* data/yacc.c (yyerrlab): Move the code that destroys the stack
   10997 	from here....
   10998 	(yyreturn): to here.  That way, destructors are called properly
   10999 	even if the stack overflows, or the user calls YYACCEPT or
   11000 	YYABORT.  Stack-overflow problem reported by Marcus Holland-Moritz.
   11001 	(yyoverflowlab): Destroy the lookahead.
   11002 
   11003 2005-04-24  Paul Eggert  <eggert (a] cs.ucla.edu>
   11004 
   11005 	* data/yacc.c (YYSTACK_ALLOC_MAXIMUM): Add more-descriptive comment.
   11006 
   11007 2005-04-17  Paul Eggert  <eggert (a] cs.ucla.edu>
   11008 
   11009 	* NEWS: Bison-generated C parsers no longer quote literal strings
   11010 	associated with tokens.
   11011 	* src/output.c (prepare_symbols): Don't escape strings,
   11012 	since users don't want to see C escapes.
   11013 	* tests/calc.at (AT_CHECK_CALC): Adjust to lack of quotes
   11014 	in diagnostics.
   11015 	* tests/input.at (Torturing the Scanner): Likewise.
   11016 	* tests/regression.at (Token definitions, Web2c Actions): Likewise.
   11017 
   11018 2005-04-16  Paul Eggert  <eggert (a] cs.ucla.edu>
   11019 
   11020 	* tests/torture.at (AT_INCREASE_DATA_SIZE): Skip the test if
   11021 	the data size is known to be too small and we can't increase it.
   11022 	This works around an HP-UX 11.00 glitch reported by Andrew Benham.
   11023 
   11024 2005-04-15  Paul Eggert  <eggert (a] cs.ucla.edu>
   11025 
   11026 	* src/parse-gram.y: Include quotearg.h.
   11027 	(string_as_id): Quote $1 before using it as a key, since the
   11028 	lexer no longer quotes it for us.
   11029 	(string_content): Don't strip quotes, since lexer no longer
   11030 	quotes it for us.
   11031 	* src/scan-gram.l: Include quotearg.h.
   11032 	("\""): Omit quote.
   11033 	("'"<SC_ESCAPED_CHARACTER>): Quote symbol before using it as
   11034 	a key, since the rest of the lexer doesn't quote it.
   11035 	* src/symtab.c (symbol_get): Don't quote symbol; caller does it now.
   11036 	* tests/regression.at (Token definitions): Check for backslashes
   11037 	in token strings.
   11038 
   11039 	* data/yacc.c (YYSTACK_ALLOC_MAXIMUM): New macro.
   11040 	(YYSIZE_T): Define to unsigned long int when using an older compiler.
   11041 	(yyparse): Revamp code to generate long syntax error message, to
   11042 	make it easier to translate, and to avoid problems with arithmetic
   11043 	overflow.  Change "virtual memory" to "memory" in diagnostic, since
   11044 	we don't know whether the memory is virtual.
   11045 
   11046 2005-04-13  Paul Eggert  <eggert (a] cs.ucla.edu>
   11047 
   11048 	* NEWS: Bison-generated C parsers now use the _ macro to
   11049 	translate strings.
   11050 	* data/yacc.c (_) [!defined _]: New macro.
   11051 	All English strings wrapped inside this macro.
   11052 	* doc/bison.texinfo (Bison Parser): Document _.
   11053 	* po/POTFILES.in: Include src/parse-gram.c, since it now
   11054 	includes translateable strings that parse-gram.y doesn't.
   11055 
   11056 2005-04-12  Paul Eggert  <eggert (a] cs.ucla.edu>
   11057 
   11058 	* src/symtab.c (symbol_make_alias): Call symbol_type_set,
   11059 	reverting the 2004-10-11 change to this function.
   11060 	(symbol_check_alias_consistency): Don't call symbol_type_set
   11061 	if the type name is already correct.
   11062 	* tests/input.at (Typed symbol aliases): New test, from Tim Van Holder.
   11063 
   11064 2005-03-25  Paul Eggert  <eggert (a] cs.ucla.edu>
   11065 
   11066 	* tests/regression.at (Token definitions): Don't use a token named
   11067 	c, as that generates a "#define c ..." that runs afoul of buggy
   11068 	stdlib.h that uses the identifier c as a member of struct
   11069 	drand48_data.  Problem reported by Horst Wente.
   11070 
   11071 2005-03-21  Paul Eggert  <eggert (a] cs.ucla.edu>
   11072 
   11073 	* bootstrap: Change translation URL from
   11074 	http://www2.iro.umontreal.ca/~gnutra/po/maint/bison/ to
   11075 	http://www.iro.umontreal.ca/translation/maint/bison/ to avoid
   11076 	redirection glitches.  Problem reported by twlevo (a] xs4all.nl.
   11077 
   11078 2005-03-20  Paul Eggert  <eggert (a] cs.ucla.edu>
   11079 
   11080 	* tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Don't put options
   11081 	after operands; POSIX says this isn't portable for the c99 command.
   11082 
   11083 2005-03-18  Paul Eggert  <eggert (a] cs.ucla.edu>
   11084 
   11085 	* tests/glr-regression.at (glr-regr2a.y): Try to dump core
   11086 	immediately if a data overrun has occurred; this may help us track
   11087 	down what may be a spurious failure on MacOS.
   11088 
   11089 2005-03-17  Paul Eggert  <eggert (a] cs.ucla.edu>
   11090 
   11091 	Respond to problems reported by twlevo (a] xs4all.nl.
   11092 
   11093 	* bootstrap: Use "trap - 0" rather than the unportable "trap 0".
   11094 
   11095 	* src/vcg.h: Comment fix.
   11096 	* src/vcg_defaults.h: Parenthesize macro bodies to make them safe.
   11097 	(G_CMAX): Change to -1 instead of INT_MAX.
   11098 
   11099 	* data/yacc.c (yyparse): Omit spaces before #line.
   11100 
   11101 2005-03-15  Paul Eggert  <eggert (a] cs.ucla.edu>
   11102 
   11103 	* src/tables.c (state_number_to_vector_number): Put it inside an
   11104 	"#if 0", since it's not currently used.  Problem reported by
   11105 	Roland McGrath.
   11106 
   11107 2005-03-06  Paul Eggert  <eggert (a] cs.ucla.edu>
   11108 
   11109 	* src/output.c (escaped_output): Renamed from
   11110 	escaped_file_name_output, since we now use it for symbol tags as
   11111 	well.  All uses changed.
   11112 	(symbol_destructors_output, symbol_printers_output):
   11113 	Escape symbol tags too.
   11114 	Problem reported by Matyas Forstner in
   11115 	<http://lists.gnu.org/archive/html/bug-bison/2005-03/msg00009.html>.
   11116 
   11117 	* src/muscle_tab.c (muscle_code_grow): Don't quote numbers; it's
   11118 	not needed.
   11119 	* src/output.c (user_actions_output, token_definitions_output,
   11120 	symbol_destructors_output, symbol_printers_output): Likewise.
   11121 	* src/reader.c (prologue_augment): Likewise.
   11122 	* src/scan-gram.l (handle_action_dollar, handle_action_at): Likewise.
   11123 
   11124 	* src/vcg.c (output_edge): Don't quote linestyle arg.
   11125 	Problem reported by twlevo (a] xs4all.nl.
   11126 
   11127 2005-02-28  Paul Eggert  <eggert (a] cs.ucla.edu>
   11128 
   11129 	* doc/bison.texinfo (Semantic Tokens): Fix scoping problem in
   11130 	example, reported by Derek M Jones.  Also, make the example even
   11131 	more outrageous, to better illustrate how bad the problem is.
   11132 
   11133 2005-02-24  Paul Eggert  <eggert (a] cs.ucla.edu>
   11134 
   11135 	* doc/bison.texinfo (Mfcalc Symtab): Correct the prototype for
   11136 	putsym.  Typo reported by Sebastian Piping.
   11137 
   11138 2005-02-23  Paul Eggert  <eggert (a] cs.ucla.edu>
   11139 
   11140 	* doc/bison.texinfo (Language and Grammar): some -> same
   11141 	(Epilogue): int he -> in the
   11142 	Typos reported by Sebastian Piping via Justin Pence.
   11143 
   11144 2005-02-07  Paul Eggert  <eggert (a] cs.ucla.edu>
   11145 
   11146 	* tests/glr-regression.at (Improper handling of embedded actions
   11147 	and dollar(-N) in GLR parsers): Renamed from "Improper handling of
   11148 	embedded actions and $-N in GLR parsers", work around an Autoconf bug
   11149 	with dollar signs in test names.
   11150 	* tests/input.at (Invalid dollar-n): Renamed from "Invalid \$n",
   11151 	for a similar reason.
   11152 
   11153 2005-01-28  Paul Eggert  <eggert (a] cs.ucla.edu>
   11154 
   11155 	* src/vcg.c (output_graph): G_VIEW -> normal_view in case someone
   11156 	wants to redefine G_VIEW.
   11157 
   11158 2005-01-27  Paul Eggert  <eggert (a] cs.ucla.edu>
   11159 
   11160 	* src/vcg.c (get_view_str): Remove case for normal_view.
   11161 	Problem reported by twlevo (a] xs4all.nl.
   11162 
   11163 2005-01-24  Paul Eggert  <eggert (a] cs.ucla.edu>
   11164 
   11165 	* configure.ac (O0CFLAGS, O0CXXFLAGS): Fix quoting bug.
   11166 	Problem reported by twlevo (a] xs4all.nl.
   11167 
   11168 	* doc/bison.texinfo: Change @dircategory from "GNU programming
   11169 	tools" to "Software development".  Requested by Richard Stallman
   11170 	via Karl Berry.
   11171 
   11172 2005-01-23  Paul Eggert  <eggert (a] cs.ucla.edu>
   11173 
   11174 	* tests/c++.at (AT_CHECK_DOXYGEN): Don't use options after operands.
   11175 	Problem reported by twlevo (a] xs4all.nl.
   11176 
   11177 2005-01-21  Paul Eggert  <eggert (a] cs.ucla.edu>
   11178 
   11179 	* data/yacc.c (YYCOPY, yystpcpy, yyparse): Remove "register"
   11180 	keyword; it's not needed with modern compilers, and it doesn't
   11181 	affect correctness with older compilers.  Suggested by
   11182 	twlevo (a] xs4all.nl.
   11183 
   11184 2005-01-17  Paul Eggert  <eggert (a] cs.ucla.edu>
   11185 
   11186 	* data/glr.c (yyuserAction): Add "default: break;" case to pacify
   11187 	gcc -Wswitch-default.
   11188 	* data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
   11189 	* data/yacc.c (yyparse): Likewise.
   11190 
   11191 2005-01-12  Paul Eggert  <eggert (a] cs.ucla.edu>
   11192 
   11193 	* src/system.h (OUTPUT_EXT, TAB_EXT): Define only if not defined
   11194 	already.  Let config.h define any nonstandard values.
   11195 
   11196 2005-01-10  Paul Eggert  <eggert (a] cs.ucla.edu>
   11197 
   11198 	* tests/calc.at (_AT_DATA_CALC_Y): Use alarm (100), not alarm (10),
   11199 	for the benefit of slower hosts.  Problem reported by
   11200 	Nelson H. F. Beebe.
   11201 
   11202 2005-01-07  Paul Eggert  <eggert (a] cs.ucla.edu>
   11203 
   11204 	* data/yacc.c (yyparse): Pacify non-GCC compilers about yyerrorlab
   11205 	being defined and not used.
   11206 	* data/lalr1.cc (yyparse): Likewise.
   11207 	Use "if (false)" rather than "if (0)".
   11208 
   11209 2005-01-05  Paul Eggert  <eggert (a] cs.ucla.edu>
   11210 
   11211 	* TODO: Mention that we should allow NUL bytes in tokens.
   11212 
   11213 2005-01-02  Paul Eggert  <eggert (a] cs.ucla.edu>
   11214 
   11215 	* src/scan-skel.l (<<EOF>>): Don't close standard output.
   11216 	Problem reported by Hans Aberg.
   11217 
   11218 2005-01-01  Paul Eggert  <eggert (a] cs.ucla.edu>
   11219 
   11220 	* src/getargs.c (version): Happy new year; update overall
   11221 	program copyright date from 2004 to 2005.
   11222 
   11223 	* src/scan-skel.l ("@output ".*\n): Don't close standard output.
   11224 	Problem reported by Hans Aberg.
   11225 	* tests/output.at (AT_CHECK_OUTPUT): New arg SHELLIO.
   11226 	(Output file names.): Add a test for the case when standard output
   11227 	is closed.
   11228 
   11229 2004-12-26  Paul Eggert  <eggert (a] cs.ucla.edu>
   11230 
   11231 	* doc/bison.texinfo (@copying): Update FDL version number to 1.2,
   11232 	to fix an oversight in the Bison 2.0 manual.
   11233 
   11234 2004-12-25  Paul Eggert  <eggert (a] cs.ucla.edu>
   11235 
   11236 	* NEWS: Version 2.0.  Reformat the existing news items since
   11237 	1.875, so that related items are grouped together.
   11238 	* configure.ac (AC_INIT): Bump version to 2.0.
   11239 	* src/parse-gram.c, src/parse-gram.h: Regenerate with 2.0.
   11240 
   11241 	* tests/torture.at (Exploding the Stack Size with Alloca): Set
   11242 	YYSTACK_USE_ALLOCA to 1 if __GNUC__ or alloca are defined;
   11243 	otherwise, we're not testing alloca.  Unfortunately there's no
   11244 	simple way to consult HAVE_ALLOCA here.
   11245 
   11246 	* data/lalr1.cc (yydestruct_): Pacify unused variable warning
   11247 	for yymsg, too.
   11248 
   11249 	* src/LR0.c (new_itemsets): Use memset rather than zeroing by
   11250 	hand.  This avoids a warning about comparing int to size_t when
   11251 	GCC warnings are enabled.
   11252 
   11253 2004-12-22  Paul Eggert  <eggert (a] cs.ucla.edu>
   11254 
   11255 	* NEWS: Bison-generated parsers no longer default to using the
   11256 	alloca function (when available) to extend the parser stack, due
   11257 	to widespread problems in unchecked stack-overflow detection.
   11258 	* data/glr.c (YYMAXDEPTH): Remove undef when zero.  It's the user's
   11259 	responsibility to set it to a positive value.  This lets the user
   11260 	specify a value that is not a preprocessor constant.
   11261 	* data/yacc.c (YYMAXDEPTH): Likewise.
   11262 	(YYSTACK_ALLOC): Define only if YYSTACK_USE_ALLOCA is nonzero.
   11263 	* doc/bison.texinfo (Stack Overflow): YYMAXDEPTH no longer needs
   11264 	to be a compile-time constant.  However, explain the constraints on it.
   11265 	Also, explain the constraints on YYINITDEPTH.
   11266 	(Table of Symbols): Explain that alloca is no longer the default.
   11267 	Explain the user's responsibility if they define YYSTACK_USE_ALLOCA
   11268 	to 1.
   11269 
   11270 	* doc/bison.texinfo (Location Default Action): Mention that n must
   11271 	be zero when k is zero.  Suggested by Frank Heckenbach.
   11272 
   11273 2004-12-22  Akim Demaille  <akim (a] epita.fr>
   11274 
   11275 	* data/lalr1.cc (parser::token_number_type, parser::rhs_number_type)
   11276 	(parser::state_type, parser::semantic_type, parser::location_type):
   11277 	Private, not public.
   11278 	(parser::parse): Return ints, not bool.
   11279 	Returning a bool introduces a problem: 0 corresponds to false, and
   11280 	it seems weird to return false on success.  Returning true changes
   11281 	the conventions for yyparse.
   11282 	Alternatively we could return void and send an exception.
   11283 	There is no clear consensus (yet?).
   11284 	(state_stack, semantic_stack, location_stack): Rename as...
   11285 	(state_stack_type, semantic_stack_type, location_stack_type): these.
   11286 	Private, not public.
   11287 	* tests/c++.at: New.
   11288 	* tests/testsuite.at, tests/Makefile.am: Adjust.
   11289 
   11290 2004-12-21  Akim Demaille  <akim (a] epita.fr>
   11291 
   11292 	* data/lalr1.cc (parser::parse): Return a bool instead of an int.
   11293 
   11294 2004-12-21  Akim Demaille  <akim (a] epita.fr>
   11295 
   11296 	Don't impose std::string for filenames.
   11297 
   11298 	* data/lalr1.cc (b4_filename_type): New.
   11299 	(position::filename): Use it.
   11300 	(parser.hh): Move the inclusion of stack.hh and location.hh below
   11301 	the user code, so that needed headers for the filename type can be
   11302 	included first.
   11303 	Forward declare them before the user code.
   11304 	* tests/Makefile.am (check-local, installcheck-local): Pass
   11305 	TESTSUITEFLAGS to the TESTSUITE.
   11306 
   11307 2004-12-20  Akim Demaille  <akim (a] epita.fr>
   11308 
   11309 	Use more STL like names: my_class instead of MyClass.
   11310 
   11311 	* data/lalr1.cc (LocationStack, LocationType, RhsNumberType)
   11312 	(SemanticStack, SemanticType, StateStack, StateType)
   11313 	(TokenNumberType, Stack, Slice, Traits, Parser::location)
   11314 	(Parser::value): Rename as...
   11315 	(location_stack, location_type, rhs_number_type, semantic_stack)
   11316 	(semantic_type, state_stack, state_type, token_number_type, stack)
   11317 	(slice, traits, parser::yylloc, parser::yylval): these.
   11318 
   11319 	* tests/calc.at, tests/regression.at, tests/actions.at: Adjust.
   11320 
   11321 2004-12-19  Paul Eggert  <eggert (a] cs.ucla.edu>
   11322 
   11323 	* data/glr.c (YYLLOC_DEFAULT): Use GNU spacing conventions.
   11324 	* data/yacc.c (YYLLOC_DEFAULT): Likewise.
   11325 
   11326 2004-12-17  Paul Eggert  <eggert (a] cs.ucla.edu>
   11327 
   11328 	Remove uses of 'short int' and 'unsigned short int'.  This raises
   11329 	some arbitrary limits.  It uses more memory but nowadays that's
   11330 	not much of an issue.
   11331 
   11332 	This change does not affect the generated parsers; that's a different
   11333 	task, as some users will want to conserve memory there.
   11334 
   11335 	Ideally we should use size_t to represent all object counts, and
   11336 	something like ptrdiff_t to represent signed differences of object
   11337 	counts; but that will require more code-cleanup than I have the
   11338 	time to do right now.
   11339 
   11340 	* src/LR0.c (allocate_itemsets, new_itemsets, save_reductions):
   11341 	Use size_t, not int or short int, to count objects.
   11342 	* src/closure.c (nritemset, closure): Likewise.
   11343 	* src/closure.h (nritemset, closure): Likewise.
   11344 	* src/nullable.c (nullable_compute): Likewise.
   11345 	* src/print.c (print_core): Likewise.
   11346 	* src/print_graph.c (print_core): Likewise.
   11347 	* src/state.c (state_compare, state_hash): Likewise.
   11348 	* src/state.h (struct state): Likewise.
   11349 	* src/tables.c (default_goto, goto_actions): Likewise.
   11350 
   11351 	* src/gram.h (rule_number, rule): Use int, not short int.
   11352 	* src/output.c (prepare_rules): Likewise.
   11353 	* src/state.h (state_number, STATE_NUMBER_MAXIMUM, transitions,
   11354 	errs, reductions): Likewise.
   11355 	* src/symtab.h (symbol_number, SYMBOL_NUMBER_MAXIMUM, struct symbol):
   11356 	Likewise.
   11357 	* src/tables.c (vector_number, tally, action_number,
   11358 	ACTION_NUMBER_MINIMUM): Likewise.
   11359 	* src/output.c (muscle_insert_short_int_table): Remove.
   11360 
   11361 2004-12-17  Akim Demaille  <akim (a] epita.fr>
   11362 
   11363 	* data/lalr1.cc: Extensive Doxygenation.
   11364 	(error_): Rename as...
   11365 	(error): this, since it is visible to the user.
   11366 	Adjust callers.
   11367 	(Parser::message): Now an automatic variable from...
   11368 	(Parser::yyreport_syntax_error_): here.
   11369 	* tests/actions.at, tests/calc.at, tests/regression.at: Adjust to
   11370 	Parser::error.
   11371 	* tests/input.at: Escape $.
   11372 
   11373 2004-12-16  Paul Eggert  <eggert (a] cs.ucla.edu>
   11374 
   11375 	* data/glr.c (b4_lhs_value, b4_rhs_value, b4_rhs-location):
   11376 	Parenthesize rhs to avoid obscure problems with mistakes like
   11377 	"foo$$bar = foo$1bar;".  Problem reported by twlevo at xs4all.
   11378 	* data/lalr1.cc (b4_lhs_value, b4_rhs_value, b4_lhs_location,
   11379 	b4_rhs_location): Likewise.
   11380 	* data/yacc.c (b4_lhs_value, b4_rhs_value, b4_lhs_location,
   11381 	b4_rhs_location): Likewise.
   11382 
   11383 2004-12-16  Akim Demaille  <akim (a] epita.fr>
   11384 
   11385 	* data/lalr1.cc (yyreport_syntax_error_): Catch up with glr.c and
   11386 	yacc.c: be sure to stay within yycheck_.
   11387 	* tests/actions.at: Re-enable C++ tests.
   11388 
   11389 2004-12-16  Akim Demaille  <akim (a] epita.fr>
   11390 
   11391 	* src/print_graph.c (print_graph): Remove layoutalgorithm uses for
   11392 	real.
   11393 
   11394 2004-12-16  Akim Demaille  <akim (a] epita.fr>
   11395 
   11396 	Use #define to handle the %name-prefix.
   11397 
   11398 	* data/glr.c, data/yacc.c: Comment changes.
   11399 	* data/lalr1.cc (yylex): Use #define to select the name of yylex,
   11400 	so that one can refer to yylex in the parser file, and have it
   11401 	renamed, as is the case with other skeletons.
   11402 
   11403 2004-12-16  Akim Demaille  <akim (a] epita.fr>
   11404 
   11405 	Move lalr1.cc internals into yy*.
   11406 
   11407 	* data/lalr1.cc (semantic_stack_, location_stack_, state_stack_)
   11408 	(semantic_stack_, location_stack_, pact_, pact_ninf_, defact_)
   11409 	(pgoto_, defgoto_, table_, table_ninf_, check_, stos_, r1_, r2_)
   11410 	(name_, rhs_, prhs_, rline_, token_number_, eof_, last_, nnts_)
   11411 	(empty_, final_, terror_, errcode_, ntokens_)
   11412 	(user_token_number_max_, undef_token_, n_, len_, state_, nerrs_)
   11413 	(looka_, ilooka_, error_range_, nerrs_):
   11414 	Rename as...
   11415 	(yysemantic_stack_, yylocation_stack_, yystate_stack_)
   11416 	(yysemantic_stack_, yylocation_stack_, yypact_, yypact_ninf_)
   11417 	(yydefact_, yypgoto_, yydefgoto_, yytable_, yytable_ninf_)
   11418 	(yycheck_, yystos_, yyr1_, yyr2_, yyname_, yyrhs_, yyprhs_)
   11419 	(yyrline_, yytoken_number_, yyeof_, yylast_, yynnts_, yyempty_)
   11420 	(yyfinal_, yyterror_, yyerrcode_, yyntokens_)
   11421 	(yyuser_token_number_max_, yyundef_token_, yyn_, yylen_, yystate_)
   11422 	(yynerrs_, yylooka_, yyilooka_, yyerror_range_, yynerrs_):
   11423 	these.
   11424 
   11425 2004-12-15  Paul Eggert  <eggert (a] cs.ucla.edu>
   11426 
   11427 	Fix some problems reported by twlevo at xs4all.
   11428 	* src/symtab.c (symbol_new): Report an error if the input grammar
   11429 	contains too many symbols.  This is better than calling abort() later.
   11430 	* src/vcg.h (enum layoutalgorithm): Remove.  All uses removed.
   11431 	(struct node, struct graph):
   11432 	Rename member expand to stretch.  All uses changed.
   11433 	(struct graph): Remove member layoutalgorithm.  All uses removed.
   11434 	* src/vcg.c (get_layoutalgorithm_str): Remove.  All uses removed.
   11435 	* src/vcg_defaults.h (G_STRETCH): Renamed from G_EXPAND.
   11436 	All uses changed.
   11437 	(N_STRETCH): Rename from N_EXPAND.  All uses changed.
   11438 
   11439 2004-12-15  Akim Demaille  <akim (a] epita.fr>
   11440 
   11441 	* data/lalr1.cc: Normalize /** \brief ... */ to ///.
   11442 	Add more Doxygen comments.
   11443 	(symprint_, stack_print_, reduce_print_, destruct_, pop)
   11444 	(report_syntax_error_, translate_): Rename as...
   11445 	(yysymprint_, yystack_print_, yyreduce_print_, yydestruct_)
   11446 	(yypop_, yyreport_syntax_error_, yytranslate_): this.
   11447 
   11448 2004-12-15  Akim Demaille  <akim (a] epita.fr>
   11449 
   11450 	* data/lalr1.cc (lex_): Rename as...
   11451 	(yylex_): this.
   11452 	Move the trace here.
   11453 	Take the %name-prefix into account.
   11454 	Reported by Alexandre Duret-Lutz.
   11455 
   11456 2004-12-15  Akim Demaille  <akim (a] epita.fr>
   11457 
   11458 	Simplify the C++ parser constructor.
   11459 
   11460 	* data/lalr1.cc (debug_): Rename as...
   11461 	(yydebug_): so that the parser's internals are always in the yy*
   11462 	pseudo namespace.
   11463 	Adjust uses.
   11464 	(b4_parse_param_decl): Remove the leading comma as it is now only
   11465 	called as unique argument list.
   11466 	(Parser::Parser): Remove the constructor accepting a location and
   11467 	an initial debugging level.
   11468 	Remove from the other ctor the argument for the debugging level.
   11469 	(debug_level_type, debug_level, set_debug_level): New.
   11470 
   11471 	* tests/actions.at, tests/calc.at, tests/regression.at: Adjust
   11472 	constructor calls.
   11473 
   11474 2004-12-15  Akim Demaille  <akim (a] epita.fr>
   11475 
   11476 	Remove b4_root related material: failure experiment
   11477 	(which goal was to allow to derive from a class).
   11478 
   11479 	* data/lalr1.cc (b4_root, b4_param, b4_constructor): Remove
   11480 	definitions and uses.
   11481 
   11482 2004-12-14  Paul Eggert  <eggert (a] cs.ucla.edu>
   11483 
   11484 	* data/glr.c (struct yyGLRStack): yyerror_range now has 3 items,
   11485 	not 2, since it's not portable to subtract 1 from the start of an
   11486 	array.  The new item 0 is never set or used.  All uses changed.
   11487 
   11488 	(yyrecoverSyntaxError): Use YYLLOC_DEFAULT instead of assuming
   11489 	the default definition of YYLLOC_DEFAULT.  Problem reported
   11490 	by Frank Heckenbach.
   11491 
   11492 2004-12-12  Paul Eggert  <eggert (a] cs.ucla.edu>
   11493 
   11494 	* data/glr.c (YYRHSLOC): Don't have two definitions, one for
   11495 	the normal case and one for the error case.  Just use the
   11496 	first one uniformly.  Problem reported by Frank Heckenbach.
   11497 	(YYLLOC_DEFAULT): Use the conventions of yacc.c, so we can
   11498 	use exactly the same macro in both places.
   11499 	(yyerror_range): Now of type yyGLRStackItem, not YYLTYPE,
   11500 	so that the normal-case YYRHSLOC works for the error case too.
   11501 	All uses changed.
   11502 	* data/yacc.c (YYRHSLOC): New macro, taken from glr.c.
   11503 	(YYLLOC_DEFAULT): Use the same macro as glr.c.
   11504 	* doc/bison.texinfo (Location Default Action): Don't claim that
   11505 	we have an array of locations.  Use the same macro for both glr
   11506 	and lalr parsers.  Mention YYRHSLOC.  Mention what happens when
   11507 	the index is 0.
   11508 
   11509 2004-12-10  Paul Eggert  <eggert (a] cs.ucla.edu>
   11510 
   11511 	* HACKING: Update email addresses to send announcements to.
   11512 
   11513 	* configure.ac (AC_INIT): Bump version to 1.875f.
   11514 
   11515 2004-12-10  Paul Eggert  <eggert (a] cs.ucla.edu>
   11516 
   11517 	* NEWS: Version 1.875e.
   11518 	* src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875e.
   11519 
   11520 	* src/scan-skel.l: Include "complain.h", for "fatal".
   11521 
   11522 	* src/relation.h (relation_print, relation_digraph):
   11523 	Relation sizes are of type relation_node, not size_t (this is
   11524 	merely a doc fix, since the two types are equivalent).
   11525 	(relation_transpose): Relation sizes are of type relation_node,
   11526 	not int.
   11527 	* src/relation.c: Likewise.
   11528 	(top, infinity): Now of type relation_node, not int.
   11529 	(traverse, relation_transpose): Use relation_node, not int.
   11530 
   11531 	* data/glr.c (yyuserAction, yyrecoverSyntaxError): Mark args
   11532 	with ATTRIBUTE_UNUSED if they're not used, to avoid GCC warning.
   11533 	(yyparse): Remove unused local introduced in 2004-10-25 patch.
   11534 
   11535 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): New arg
   11536 	specifying whether the test should be skipped.  Use it tp
   11537 	specify that the [%defines %skeleton "lalr1.cc"] tests currently
   11538 	fail on some hosts, and should be skipped.
   11539 
   11540 2004-12-08  Paul Eggert  <eggert (a] cs.ucla.edu>
   11541 
   11542 	* src/system.h (CALLOC, MALLOC, REALLOC): Remove.  All callers
   11543 	changed to use xcalloc, xnmalloc, xnrealloc, respectively,
   11544 	unless otherwise specified below.
   11545 
   11546 	* src/LR0.c (allocate_itemsets): Use xnmalloc, not xcalloc,
   11547 	to allocate kernel_base, kernel_items, kernel_size, since
   11548 	they needn't be initialized to 0.
   11549 	(allocate_storgae): Likewise, for shiftset, redset, shift_symbol.
   11550 	* src/closure.c (new_closure): Likewise, for itemset.
   11551 	* src/derives.c (derives_compute): Likewise, for delts, derives, q.
   11552 	* src/lalr.c (set_goto_map): Likewise, for temp_map.
   11553 	(initialize_F): Likewise, for reads, edge, reads[i], includes[i].
   11554 	(build_relations): Likewise for edge, states1, includes.
   11555 	* src/nullable.c (nullable_compute): Likewise, for squeue, relts.
   11556 	* src/reader.c (packgram): Likewise, for ritem, rules.
   11557 	* src/reduce.c (nonterminals_reduce): Likewise for nontermmap.
   11558 	* src/relation.c (relation_digraph): Likewise for VERTICES.
   11559 	(relation_transpose): Likewise for new_R, end_R.
   11560 	* src/symtab.c (symbols_token_translations_init): Likewise for
   11561 	token_translations.
   11562 	* src/tables.c (save_row): Likewise for froms, tos, conflict_tos.
   11563 	(token_actions): Likewise for yydefact, actrow, conflrow,
   11564 	conflict_list.
   11565 	(save_column): Likewise for froms[symno], tos[symno].
   11566 	(goto_actions): Likewise for state_count.
   11567 	(pack_table): Likewise for base, pos, check.
   11568 	(tables_generate): Likewise for width.
   11569 
   11570 	* src/LR0.c (set_states): Don't reuse kernel_size and kernel_base
   11571 	for initial core.  Just have a separate core, so we needn't worry
   11572 	about whether kernel_size and kernel_base are initialized.
   11573 
   11574 	* src/LR0.c (shift_symbol, redset, shiftset, kernel_base,
   11575 	kernel_size, kernel_items): Remove unnecessary initialization.
   11576 	* src/conflicts.c (conflicts): Likewise.
   11577 	* src/derives.c (derives): Likewise.
   11578 	* src/muscle_tablc (muscle_insert): Likewise.
   11579 	* src/relation.c (relation_digraph): Likewise.
   11580 	* src/tables.c (froms, tos, conflict_tos, tally, width, actrow, order,
   11581 	conflrow, conflict_table, conflict_list, table, check):
   11582 	Likewise.
   11583 
   11584 	* src/closure.c (new_closure): Arg is of type unsigned int, not int.
   11585 	This is because all callers pass unsigned int.
   11586 	* src/closure.h (new_closure): Likewise.
   11587 
   11588 	* src/lalr.c (initialize_F): Initialize reads[i] in all cases.
   11589 	(build_relations): Initialize includes[i] in all cases.
   11590 	* src/reader.c (packgram): Always initialize rules[ruleno].prec
   11591 	and rules[ruleno].precsym.  Initialize members in order.
   11592 	* src/relation.c (relation_transpose): Always initialize new_R[i]
   11593 	and end_R[i].
   11594 	* src/table.c (conflict_row): Initialize 0 at end of conflict_list.
   11595 
   11596 	* src/output.c (prepare_actions): Pass 0 instead of conflict_list[0];
   11597 	conflict_list[0] was always 0, but now it isn't initialized.
   11598 
   11599 	* src/table.c (table_grow): When conflict_table grew, the grown
   11600 	area wasn't cleared.  Fix this.
   11601 
   11602 	* lib/.cvsignore: Add strdup.c, strdup.h.
   11603 	* m4/.cvsignore: Add strdup.m4.
   11604 
   11605 2004-12-07  Paul Eggert  <eggert (a] cs.ucla.edu>
   11606 
   11607 	* src/lalr.h (GOTO_NUMBER_MAXIMUM): New macro.
   11608 	* src/lalr.c (set_goto_map): Don't allow ngotos to equal
   11609 	GOTO_NUMBER_MAXIMUM, since we occasionally compute
   11610 	ngotos + 1 without checking for overflow.
   11611 	(build_relations): Use END_NODE, not -1, to denote end of edges.
   11612 	* src/lalr.c (set_goto_map, map_goto, initialize_F, add_loopback_edge,
   11613 	build_relations): Use goto_number, not int, for goto numbers.
   11614 	* src/tables.c (save_column, default_goto): Likewise.
   11615 
   11616 2004-11-23  Akim Demaille  <akim (a] epita.fr>
   11617 
   11618 	* data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
   11619 	of #defining from yystype.
   11620 	Don't typedef yystype, C++ does not need it.
   11621 	This lets it possible to forward declare it as union.
   11622 
   11623 2004-11-23  Paul Eggert  <eggert (a] cs.ucla.edu>
   11624 
   11625 	* bootstrap (gnulib_modules): Add extensions.
   11626 	Problem reported by Jim Meyering.
   11627 
   11628 2004-11-22  Paul Eggert  <eggert (a] cs.ucla.edu>
   11629 
   11630 	* src/LR0.c, src/closure.c, src/derives.c, src/gram.c,
   11631 	src/lalr.c, src/nullable.c, src/relation.c, src/scan-skel.l,
   11632 	src/system.h, src/tables.c: XFREE -> free, to accommodate
   11633 	recent change to gnulib xalloc.h.
   11634 	Problem reported by Jim Meyering.
   11635 
   11636 2004-11-17  Akim Demaille  <akim (a] epita.fr>
   11637 
   11638 	* data/lalr1.cc (symprint_): Use cdebug_ to avoid warnings.
   11639 
   11640 2004-11-17  Akim Demaille  <akim (a] epita.fr>,
   11641 	    Alexandre Duret-Lutz <adl (a] gnu.org>
   11642 
   11643 	* data/lalr1.cc (Parser::yycdebug_): New, a pointer, to allow
   11644 	changes.
   11645 	(YYCDEBUG): Adjust.
   11646 	Use it instead of cdebug_.
   11647 	(Parser::debug_stream, Parser::set_debug_stream): New.
   11648 	(Parser::symprint_): Define cdebug_ for temporary backward
   11649 	compatibility.
   11650 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use
   11651 	debug_stream ().
   11652 
   11653 2004-11-17  Akim Demaille  <akim (a] epita.fr>
   11654 
   11655 	* data/lalr1.cc (Parser:print_): Remove, use %printer instead.
   11656 	* tests/regression.at (_AT_DATA_DANCER_Y): Adjust.
   11657 	* tests/calc.at (_AT_DATA_CALC_Y): Ditto.
   11658 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
   11659 
   11660 2004-10-27  Paul Eggert  <eggert (a] cs.ucla.edu>
   11661 
   11662 	* data/glr.c (yyloc_default): Remove; not used.
   11663 	Problem reported by Frank Heckenbach.
   11664 
   11665 2004-10-25  Akim Demaille  <akim (a] epita.fr>
   11666 
   11667 	* data/glr.c (YYRHSLOC): Move its definition next to its uses.
   11668 	Introduce another definition to address simple location arrays.
   11669 	(yyGLRStack): New member: yyerror_range.
   11670 	(yyrecoverSyntaxError, yyparse): Update it.
   11671 	(yyrecoverSyntaxError): Use it when shifting the error token to
   11672 	have an accurate range, equivalent to the one computed by both
   11673 	yacc.c and lalr1.cc.
   11674 	* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Change its yylex so
   11675 	that column numbers start at column 0, as per GNU Coding
   11676 	Standards, the others tests, and the doc.
   11677 	(_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT_WITH_LOC):
   11678 	Adjust to the above change (first column is 0).
   11679 	And adjust the location of the "<error>", now covering the whole
   11680 	line.
   11681 
   11682 2004-10-22  Akim Demaille  <akim (a] epita.fr>
   11683 	and Paul Eggert  <eggert (a] cs.ucla.edu>
   11684 
   11685 	Remove some arbitrary limits on goto numbers and relations.
   11686 	* src/lalr.c (goto_map, ngotos, from_state, to_state): Omit
   11687 	initial values, since they're never used.
   11688 	(set_goto_map): ngotos is now unsigned, so test for overflow
   11689 	by seeing whether it wraps around to zero.
   11690 	* src/lalr.h (goto_number): Now size_t, not short int.
   11691 	(GOTO_NUMBER_MAXIMUM): Remove.
   11692 	* src/relation.c (relation_print, traverse, relation_transpose):
   11693 	Check for END_NODE rather than looking at sign.
   11694 	* src/relation.h (END_NODE): New macro.
   11695 	(relation_node): Now size_t, not short int.
   11696 
   11697 2004-10-22  Paul Eggert  <eggert (a] cs.ucla.edu>
   11698 
   11699 	* doc/bison.texinfo (Language and Grammar): In example, "int" is a
   11700 	keyword, not an identifier.  Problem reported by Baron Schwartz in
   11701 	<http://lists.gnu.org/archive/html/bug-bison/2004-10/msg00017.html>.
   11702 
   11703 2004-10-11  Akim Demaille  <akim (a] epita.fr>
   11704 
   11705 	* src/symtab.c (symbol_check_alias_consistency): Also check
   11706 	type names, destructors, and printers.
   11707 	Reported by Alexandre Duret-Lutz.
   11708 	Recode the handling of associativity and precedence in terms
   11709 	of symbol_precedence_set.
   11710 	Accept no redeclaration at all, not even equal to the previous
   11711 	value.
   11712 	(redeclaration): New.
   11713 	Use it to factor redeclaration complaints.
   11714 	(symbol_make_alias): Don't set the type of the alias, let
   11715 	symbol_check_alias_consistency do it as for other features.
   11716 	* src/symtab.h (symbol): Add new member prec_location, and
   11717 	type_location.
   11718 	* src/symtab.c (symbol_precedence_set, symbol_type_set): Set them.
   11719 	* tests/input.at (Incompatible Aliases): New.
   11720 
   11721 2004-10-09  Paul Eggert  <eggert (a] cs.ucla.edu>
   11722 
   11723 	.cvsignore fixes to accommodate gnulib changes,
   11724 	and the practice of naming build directories "_build".
   11725 	* .cvsignore: Add "_*".  Sort.
   11726 	* lib/.cvsignore: Add getopt_.h, xalloc-die.c.
   11727 	* m4/.cvsignore: Add "*_gl.m4".
   11728 
   11729 2004-10-06  Akim Demaille  <akim (a] epita.fr>
   11730 
   11731 	* src/parse-gram.y (add_param): Fix the truncation of trailing
   11732 	spaces.
   11733 
   11734 2004-10-05  Akim Demaille  <akim (a] epita.fr>
   11735 
   11736 	In Bison 1.875's yacc.c, YYLLOC_DEFAULT was called regardless
   11737 	whether the reducion was empty or not.  This leaves room to
   11738 	improve the use of YYLLOC_DEFAULT in such a case.
   11739 	lalr1.cc is still experimental, so changing this is acceptable.
   11740 	And finally, there are probably not many users who changed the
   11741 	handling of locations in GLR, so changing is admissible too.
   11742 
   11743 	* data/glr.c, data/lalr1.cc, data/yacc.c (YYLLOC_DEFAULT): On an
   11744 	empty reduction, set @$ to an empty location ending the previously
   11745 	stacked symbol.
   11746 	Adjust uses to make sure the code is triggered on empty
   11747 	reductions.
   11748 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust the
   11749 	expected output: empty reductions have empty locations.
   11750 
   11751 2004-09-29  Akim Demaille  <akim (a] epita.fr>
   11752 
   11753 	* data/lalr1.cc: Move towards a more standard C++ coding style
   11754 	for templates: Class < T > -> Class<T>.
   11755 
   11756 2004-09-29  Akim Demaille  <akim (a] epita.fr>
   11757 
   11758 	* data/lalr1.cc: Reinstall the former ctor, for sake of
   11759 	compatibility, but warn it will be removed.
   11760 	Move towards a more standard C++ coding style (i.e., type *var ->
   11761 	type* var).
   11762 
   11763 2004-09-27  Paul Eggert  <eggert (a] cs.ucla.edu>
   11764 
   11765 	* src/parse-gram.y (add_param): Rewrite to avoid strchr,
   11766 	since it's less likely to work if NULs are involved in the future.
   11767 
   11768 2004-09-27  Akim Demaille  <akim (a] epita.fr>
   11769 
   11770 	* data/yacc.c (YY_LOCATION_PRINT): Fix its default declaration.
   11771 
   11772 2004-09-27  Akim Demaille  <akim (a] epita.fr>
   11773 
   11774 	* data/lalr1.cc (b4_parse_param_decl_1): New.
   11775 	(b4_parse_param_decl): Use it to have different names between attribute
   11776 	and argument names.
   11777 	(b4_cc_constructor_call): Likewise.
   11778 
   11779 2004-09-24  Akim Demaille  <akim (a] epita.fr>
   11780 
   11781 	* src/parse-gram.y (add_param): Strip the leading and trailing
   11782 	blanks from a formal argument declaration.
   11783 	(YY_LOCATION_PRINT): New.
   11784 
   11785 2004-09-24  Akim Demaille  <akim (a] epita.fr>
   11786 
   11787 	* data/c.m4 (b4_yysymprint_generate): Move the YYINPUT invocation
   11788 	after the location.
   11789 
   11790 2004-09-24  Akim Demaille  <akim (a] epita.fr>
   11791 
   11792 	* doc/bison.texinfo (Table of Symbols): Sort.
   11793 
   11794 2004-09-21  Akim Demaille  <akim (a] epita.fr>
   11795 
   11796 	* data/yacc.c, data/glr.c (b4_at_dollar, b4_dollar_dollar): Remove
   11797 	the useless parentheses.
   11798 	Suggested by Paul Eggert.
   11799 
   11800 2004-09-20  Akim Demaille  <akim (a] epita.fr>
   11801 
   11802 	Let the initial-action act on the look-ahead, and use it for the
   11803 	"initial push" (corresponding to an hypothetical beginning-of-file).
   11804 	And let lalr1.cc honor %initial-action.
   11805 
   11806 	* doc/bison.texinfo (Initial Action Decl): Clarify, and add an
   11807 	example.
   11808 	* data/lalr1.cc (Parser::initlocation_): Remove, bad experiment.
   11809 	(Parser::Parser): Remove the ctor that used to initialize it.
   11810 	(Parser::parse): Like in the other skeletons, issue the "starting
   11811 	parse" message before any action.
   11812 	Honor %initial-action.
   11813 	Initialize the stacks with the lookahead.
   11814 	* data/yacc.c: Let $$ and @$ in %initial-action designate the
   11815 	look-ahead.
   11816 	Push them in the stacks.
   11817 	* tests/actions.at, tests/calc.at: Adjust the C++ ctor invocations.
   11818 
   11819 2004-09-20  Akim Demaille  <akim (a] epita.fr>
   11820 
   11821 	* doc/bison.texinfo (Initial Action Decl): New.
   11822 
   11823 2004-09-20  Akim Demaille  <akim (a] epita.fr>
   11824 
   11825 	* data/yacc.c (YY_LOCATION_PRINT): Use YYLTYPE_IS_TRIVIAL as a
   11826 	clearer criterion to define it.
   11827 	(parse): Initialize the initial location when YYLTYPE_IS_TRIVIAL.
   11828 	When reducing on an empty RHS, use the latest stacked location as
   11829 	location.
   11830 	yylloc is not always available.
   11831 	* data/glr.c: Likewise.
   11832 	Also, honor initial-actions.
   11833 
   11834 2004-09-20  Akim Demaille  <akim (a] epita.fr>
   11835 
   11836 	* data/yacc.c (YY_LOCATION_PRINT): New.
   11837 	Define when we know YYLTYPE's structure, i.e., when the default
   11838 	YYLLOC_DEFAULT is used.
   11839 	* data/c.m4 (b4_yysymprint_generate): Use it.
   11840 	* data/lalr1.cc (YYLLOC_DEFAULT): Stop relying on the initial
   11841 	value of the result.
   11842 	(error_start_): Replace with...
   11843 	(error_range_): this location array.
   11844 	This allows to replace code relying on the implementation of
   11845 	locations by portable code.
   11846 	* data/yacc.c (yylerrsp): Replace with...
   11847 	(yyerror_range): this.
   11848 	Every time a token is popped, update yyerror_range[0], to have an
   11849 	accurate location for the error token.
   11850 	* data/glr.c (YY_LOCATION_PRINT): New.
   11851 	(yyprocessOneStack): Fix an invocation of YY_SYMBOL_PRINT:
   11852 	deference a pointer.
   11853 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): No longer
   11854 	report the location in %printers.
   11855 
   11856 	* src/scan-skel.l: Instead of abort, report error messages to ease
   11857 	understanding skeleton scanning failures.
   11858 
   11859 2004-09-16  Akim Demaille  <akim (a] epita.fr>
   11860 
   11861 	* data/lalr1.cc (Stack::Iterator, Stack::ConstIterator): Rename as...
   11862 	(iterator, const_iterator): these, to be more in the C++ spirit.
   11863 	Also, return reverse iterators so that when displaying the stack
   11864 	we display its bottom first.
   11865 	(Parser::stack_print_, Parser::reduce_print_): Match the messages
   11866 	from yacc.c.
   11867 	We should probably use vector here though.
   11868 
   11869 2004-09-16  Akim Demaille  <akim (a] epita.fr>
   11870 
   11871 	Have more complete shift traces.
   11872 
   11873 	* data/yacc.c, data/lalr1.c, data/glr.c: Use YY_SYMBOL_PRINT
   11874 	to report Shifts instead of ad hoc YYDPRINTF invocations,
   11875 	including for the error token.
   11876 	* data/lalr1.cc (symprint_): Output the location.
   11877 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): In C++, don't
   11878 	output the location within the %printer.
   11879 	Activate GLR tests, at least to make sure they compile properly.
   11880 	They still don't pass though.
   11881 	* tests/calc.at: Adjust expect verbose output, since now "Entering
   11882 	state..." is on a different line than the "Shifting" message.
   11883 
   11884 2004-09-08  Akim Demaille  <akim (a] epita.fr>
   11885 
   11886 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Move the
   11887 	Bison directive from the Bison file to the invocation of this
   11888 	macro, so that these directives are passed to
   11889 	AT_BISON_OPTION_PUSHDEFS to get correct help macros.
   11890 	Use these helping macros (e.g., AT_LOC, AT_VAL and so forth).
   11891 	Move the AT_SETUP/AT_CLEANUP outside, to report as test title
   11892 	the extra Bison directives instead of the whole series.
   11893 	Change the grammar so that there are recoverable errors, and
   11894 	unrecoverable errors.  Now we can have the parser give up before
   11895 	consuming the whole input.  As a result we now can observe that
   11896 	the lookahead is freed when needed.
   11897 	Change the parser source to parse argv[1] instead of a hard coded
   11898 	string.
   11899 	Simplify yylex, and give a value and location to EOF.
   11900 	Simplify some invocations of AT_CHECK_PRINTER_AND_DESTRUCTOR that
   11901 	passed directives already coded in the file.
   11902 	Add some tests to check the location of "error".
   11903 	For some tests, the C++ parser is correct, and not yacc.c.
   11904 	For other tests, they provide different, but unsatisfying, values,
   11905 	so keep the C++ value so that at least one parser is "correct"
   11906 	according to the test suite.
   11907 	(Actions after errors): Remove, this is subsumed by the
   11908 	AT_CHECK_PRINTER_AND_DESTRUCTOR series.
   11909 
   11910 2004-09-06  Akim Demaille  <akim (a] epita.fr>
   11911 
   11912 	* data/lalr1.cc: Adjust the indentation of the labels.
   11913 	(Parser::pop): New.
   11914 	Use it.
   11915 
   11916 2004-09-06  Akim Demaille  <akim (a] epita.fr>
   11917 
   11918 	* data/yacc.cc, data/glr.cc (yydestruct): Accept an additional
   11919 	argument, an informative message.
   11920 	Call YY_SYMBOL_PRINT.
   11921 	Adjust all callers: integrate the associated YY_SYMBOL_PRINT.
   11922 	* data/lalr1.cc (destruct_): Likewise.
   11923 	In addition, no longer depend on b4_yysymprint_generate and
   11924 	b4_yydestruct_generate to generate these functions, do it "by
   11925 	hand".
   11926 
   11927 2004-09-03  Akim Demaille  <akim (a] epita.fr>
   11928 
   11929 	* data/glr.c, data/lalr1.cc, data/yacc.c: When YYABORT was
   11930 	invoked, yydestruct the lookahead.
   11931 	* tests/calc.at (Calculator $1): Update the expected lengths of
   11932 	traces: there is an added line for the discarded lookahead.
   11933 	* doc/bison.texinfo (Destructor Decl): Some rewording.
   11934 	Define "discarded" symbols.
   11935 
   11936 2004-09-02  Akim Demaille  <akim (a] epita.fr>
   11937 
   11938 	* data/lalr1.cc (translate_, destruct_): No reason to be static.
   11939 
   11940 2004-09-02  Akim Demaille  <akim (a] epita.fr>
   11941 
   11942 	* data/glr.c, yacc.c (YYDSYMPRINT): Remove, not used.
   11943 	(YYDSYMPRINTF): Rename as...
   11944 	(YY_SYMBOL_PRINT): this.
   11945 	* data/lalr1.cc (YY_SYMBOL_PRINT): New, modeled after the previous
   11946 	two.
   11947 	Use it instead of direct symprint_ calls.
   11948 	(yybackup): Tweak the "Now at end of input" case to match yacc.c's
   11949 	one.
   11950 
   11951 2004-09-02  Akim Demaille  <akim (a] epita.fr>
   11952 
   11953 	* data/lalr1.cc (b4_yysymprint_generate): New.
   11954 	(symprint_): New member function, defined when YYDEBUG.
   11955 	Use it consistently instead of token/nterm debugging output by
   11956 	hand.
   11957 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust
   11958 	%printer calls to use cdebug_ when using lalr1.cc.
   11959 
   11960 2004-08-30  Florian Krohm  <florian (a] edamail.fishkill.ibm.com>
   11961 
   11962 	* data/glr.c: Guard the declarations of yypstack and yypdumpstack
   11963 	with #ifdef YYDEBUG.
   11964 
   11965 2004-08-26  Akim Demaille  <akim (a] epita.fr>
   11966 
   11967 	* doc/bison.texinfo (Implementing Loops): Rename as...
   11968 	(Implementing Gotos/Loops): this.
   11969 
   11970 2004-08-13  Paul Eggert  <eggert (a] cs.ucla.edu>
   11971 
   11972 	Adjust to latest gnulib.
   11973 	* bootstrap (gnulib_modules): Add xalloc-die.
   11974 	Set LC_ALL=C so that file names sort consistently.
   11975 	Prefer the gnulib copies of gettext.m4, glibc21.m4,
   11976 	inttypes_h.m4, lib-ld.m4, lib-prefix.m4, po.m4, stdint_h.m4,
   11977 	uintmax_t.m4, ulonglong.m4.
   11978 	(intl_files_to_remove): Add gettext.m4, lib-ld.m4, lib-prefix.m4,
   11979 	po.m4 since we are now using _gl.m4 instead.
   11980 
   11981 2004-08-10  Florian Krohm  <florian (a] edamail.fishkill.ibm.com>
   11982 
   11983 	* src/scan-action.l: Remove. Scanning of semantic actions is
   11984 	handled in scan-gram.l.
   11985 
   11986 2004-08-07  Florian Krohm  <florian (a] edamail.fishkill.ibm.com>
   11987 
   11988 	* src/scan-gram.l (handle_syncline): Use uniqstr_new not xstrdup.
   11989 
   11990 	* src/location.h (struct): The file member is a uniqstr.
   11991 	(equal_boundaries): Use UNIQSTR_EQ for comparison.
   11992 
   11993 2004-07-22  Paul Eggert  <eggert (a] cs.ucla.edu>
   11994 
   11995 	Fix bug with non-%union parsers that have printers or destructors,
   11996 	which led to a Bison core dump.  Reported by Peter Fales in
   11997 	<http://lists.gnu.org/archive/html/bug-bison/2004-07/msg00014.html>.
   11998 
   11999 	* data/c.m4 (b4_symbol_actions): Don't assume %union was used.
   12000 	* data/lalr1.cc (yystype) [defined YYSTYPE]: Define to YYSTYPE,
   12001 	not to our own type.
   12002 	* src/output.c (symbol_destructors_output, symbol_printers_output):
   12003 	Don't assume %union.
   12004 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR,
   12005 	AT_CHECK_PRINTER_AND_DESTRUCTOR): New argument
   12006 	UNION-FLAG.  All callers changed.
   12007 	(_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't assume %union.
   12008 	Use type char, not unsigned int, when declaring an array of char;
   12009 	this lets us remove a cast.
   12010 	(Printers and Destructors): Add non-%union test cases.
   12011 
   12012 2004-06-21  Paul Eggert  <eggert (a] cs.ucla.edu>
   12013 
   12014 	* doc/bison.texinfo: Minor editorial changes, mostly to the new
   12015 	GLR writeups.  E.g., avoid frenchspacing and the future tense,
   12016 	change "lookahead" to "look-ahead", and change "wrt" to "with
   12017 	respect to".
   12018 
   12019 2004-06-21  Paul Hilfinger  <hilfingr (a] CS.Berkeley.EDU>
   12020 
   12021 	* doc/bison.texinfo (Merging GLR Parses, Compiler Requirements):
   12022 	New sections, split off from the GLR Parsers section.  Put the new
   12023 	Simple GLR Parser near the start of the GLR section, for clarity.
   12024 	Rewrite connective text.
   12025 
   12026 2004-06-21  Frank Heckenbach  <frank (a] g-n-u.de>
   12027 
   12028 	* doc/bison.texinfo (Simple GLR Parsers): New section.
   12029 
   12030 2004-06-21  Paul Eggert  <eggert (a] cs.ucla.edu>
   12031 
   12032 	* NEWS, TODO, doc/bison.texinfo:
   12033 	Use "look-ahead" instead of "lookahead", to be consistent.
   12034 	* REFERENCES: Fix incorrect reference to DeRemer and Pennello,
   12035 	while we're fixing "look-ahead".
   12036 	* src/conflicts.c (shift_set): Renamed from shiftset.
   12037 	(look_ahead_set): Renamed from lookaheadset.
   12038 	* src/print.c: Likewise.
   12039 	* src/getargs.c (report_args): Add "look-ahead" as the new canonical
   12040 	name for "lookahead".
   12041 	(report_types, usage): Likewise.
   12042 	* src/getargs.h (report_look_ahead_tokens): Renamed from
   12043 	report_lookaheads.
   12044 	* src/lalr.c (compute_look_ahead_tokens): Renamed from
   12045 	compute_lookaheads.
   12046 	(state_look_ahead_tokens_count): Renamed from state_lookaheads_count.
   12047 	(look_ahead_tokens_print): Renamed from lookaheads_print.
   12048 	* src/state.c (state_rule_look_ahead_tokens_print): Renamed from
   12049 	state_rule_lookaheads_print.
   12050 	* src/state.h: Likewise.
   12051 	(reductions.look_ahead_tokens): Renamed from lookaheads.
   12052 	* tests/torture.at (AT_DATA_LOOK_AHEAD_TOKENS_GRAMMAR): Renamed from
   12053 	AT_DATA_LOOKAHEADS_GRAMMAR.
   12054 
   12055 2004-06-03  Paul Eggert  <eggert (a] cs.ucla.edu>
   12056 
   12057 	* README: Update location of patched M4 distribution.
   12058 
   12059 2004-05-30  Albert Chin-A-Young  <china (a] thewrittenword.com>
   12060 
   12061 	Don't assume the C++ compiler takes the same arguments as the C compiler
   12062 	(trivial change).
   12063 	* configure.ac (O0CXXFLAGS): New var.
   12064 	* tests/atlocal.in (CXXFLAGS): Use it.
   12065 
   12066 2004-05-29  Paul Eggert  <eggert (a] cs.ucla.edu>
   12067 
   12068 	Fix some "make check" problems with C++ reported by
   12069 	Albert Chin-A-Young for Tru64 C++ in this thread:
   12070 	http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00049.html
   12071 
   12072 	* m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Check for std::cerr.
   12073 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
   12074 	Output to a .cc file for C++, not to a .c file.
   12075 	* tests/calc.at (AT_CHECK_CALC): Likewise.
   12076 	* tests/regression.at (AT_CHECK_DANCER): Likewise.
   12077 	* tests/local.at (AT_COMPILE_CXX): Default to OUTPUT.cc, not OUTPUT.c.
   12078 
   12079 2004-05-28  Albert Chin-A-Young  <china (a] thewrittenword.com>
   12080 
   12081 	* tests/calc.at, tests/actions.at: Workaround for SGI
   12082 	C++ compiler.  (trivial change)
   12083 
   12084 2004-05-27  Paul Eggert  <eggert (a] cs.ucla.edu>
   12085 
   12086 	Spent a few hours checking out which prerequisite versions the
   12087 	current sources actually require.  I went all the way back to
   12088 	Gettext 0.10.40, Automake 1.4, and Autoconf 2.57 and investigated
   12089 	a seemingly endless set of combinations of versions more recent
   12090 	than that.  The bottom line is that the current sources require
   12091 	fairly recent versions of the build tools, and it'll be some work
   12092 	to change this.
   12093 	* configure.ac (AC_PREREQ): Increase from 2.58 to 2.59.
   12094 	(AM_INIT_AUTOMAKE): Increase from 1.7 to 1.8.
   12095 	(AM_GNU_GETTEXT_VERSION): Increase from 0.11.5 to 0.12.
   12096 	Add comments explaining why those particular versions are
   12097 	currently needed.
   12098 
   12099 	* src/parse-gram.y (lloc_default): Rewrite to avoid compiler bug
   12100 	in SGI MIPSpro 7.4.1m.  Problem reported by Albert Chin-A-Young in
   12101 	<http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00037.html>.
   12102 
   12103 	* configure.ac (AC_PREREQ): Bump to 2.58, since 2.57 doesn't work
   12104 	(it fails with a Autoconf-without-aclocal-m4 diagnostic).
   12105 
   12106 2004-05-26  Paul Eggert  <eggert (a] cs.ucla.edu>
   12107 
   12108 	* configure.ac (AM_GNU_GETTEXT_VERSION): Lower it from 0.14.1 to
   12109 	0.11.5.  Suggested by Bruno Haible.
   12110 	* bootstrap: Remove gettext version checking.
   12111 
   12112 	* doc/bison.texinfo (Decl Summary): Also mention that %union
   12113 	can depend on prerequisite types.  Problem reported by Tim
   12114 	Van Holder.
   12115 
   12116 2004-05-25  Paul Eggert  <eggert (a] cs.ucla.edu>
   12117 
   12118 	* README: Mention GNU m4 1.4 bugs and Akim's patched version.
   12119 	* README-alpha: Don't tell people not to package this.
   12120 
   12121 	* bootstrap: Don't assume $(...) works; use `...` instead.
   12122 	Problem reported by Paul Hilfinger.  Also, diagnose non-GNU
   12123 	gettext better.
   12124 
   12125 	* doc/bison.texinfo (Decl Summary, Bison Options): Clarify what's
   12126 	put into the -d output file, and mention what to do if YYSTYPE is
   12127 	defined as a macro.
   12128 
   12129 2004-05-24  Paul Eggert  <eggert (a] cs.ucla.edu>
   12130 
   12131 	Undo change made earlier today: it caused autopoint to not bring
   12132 	in ABOUT-NLS.  Ouch.  Instead, substitute our own diagnostic for
   12133 	autopoint's.
   12134 
   12135 	* bootstrap: Check that gettext version matches what's in
   12136 	configure.ac.  Warn users to ignore robots.txt ERROR 404.
   12137 	* bootstrap: Undo today's earlier change (logged below).
   12138 	* configure.ac (AM_GNU_GETTEXT_VERSION): Likewise.
   12139 
   12140 	The gettext version checking is causing more trouble than it's
   12141 	curing; remove it.  Problem reported by Paul Hilfinger.
   12142 
   12143 	* bootstrap: Issue a warning that one can expect a message
   12144 	'AM_GNU_GETTEXT is used, but not AM_GNU_GETTEXT_VERSION'.
   12145 	* configure.ac (AM_GNU_GETTEXT_VERSION): Remove.
   12146 
   12147 2004-05-23  Paul Eggert  <eggert (a] cs.ucla.edu>
   12148 
   12149 	Ensure that the C++ compiler used for testing actually works on a
   12150 	simple test program; if not, skip the C++-related tests.  Problem
   12151 	reported by Vin Shelton in:
   12152 	http://lists.gnu.org/archive/html/bug-bison/2004-05/msg00026.html
   12153 
   12154 	* m4/cxx.m4: New file.
   12155 	* configure.ac (BISON_TEST_FOR_WORKING_CXX_COMPILER): Add.
   12156 	* tests/atlocal.in (BISON_CXX_WORKS): Add.
   12157 	* tests/local.at (AT_COMPILE_CXX): Use it.
   12158 
   12159 2004-05-21  Paul Eggert  <eggert (a] cs.ucla.edu>
   12160 
   12161 	* data/glr.c (yylloc): Output this macro even if locations are not
   12162 	being generated, as the GLR parser needs it even in that case.
   12163 	Problem reported by Troy A. Johnson
   12164 	<http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=195946>.
   12165 
   12166 	* configure.ac (AC_INIT): Update to 1.875e.
   12167 
   12168 2004-05-21  Paul Eggert  <eggert (a] cs.ucla.edu>
   12169 
   12170 	* NEWS: Version 1.875d.
   12171 	* configure.ac (AC_INIT): Likewise.
   12172 	* src/parse-gram.c, src/parse-gram.h: Regenerate with 1.875d.
   12173 
   12174 	* configure.ac (--enable-gcc-warnings): Do not enable -Wshadow,
   12175 	-Wmissing-prototypes, or -Wstrict-prototypes for C++.  The current
   12176 	lalr1.cc runs afoul of the first, and the last two are no longer
   12177 	supported by GCC 3.4.0.
   12178 	* README: Mention GNU m4 1.4 or later; mention m4 patches.
   12179 	* HACKING: Use ./bootstrap, not "make update" to import foreign files.
   12180 
   12181 2004-05-06  Paul Eggert  <eggert (a] cs.ucla.edu>
   12182 
   12183 	* src/muscle_tab.c (hash_muscle): Accept and return size_t, not
   12184 	unsigned int, for compatibility with latest gnulib hash module.
   12185 	* src/state.c (state_hash, state_hasher): Likewise.
   12186 	* src/symtab.c (hash_symbol, hash_symbol_hasher): Likewise.
   12187 	* src/uniqstr.c (hash_uniqstr): Likewise.
   12188 
   12189 2004-05-03  Paul Eggert  <eggert (a] cs.ucla.edu>
   12190 
   12191 	* NEWS: Unescaped newlines are no longer allowed in char & strings.
   12192 
   12193 	* src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER,
   12194 	SC_CHARACTER,SC_STRING>): Reject unescaped newlines in
   12195 	character and string literals.
   12196 	(unexpected_end): New function.
   12197 	(unexpected_eof): Use it.
   12198 	(unexpected_newline): New function.
   12199 	(<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>): Coalesce duplicate
   12200 	actions.
   12201 
   12202 	* NEWS: Document %expect-rr.
   12203 
   12204 	* bootstrap (--gnulib-srcdir=*, --cvs-user=*):
   12205 	Fix typo by replacing $1 with $option.
   12206 	Remove more 'intl'-related files.
   12207 	Don't DEFUN AM_INTL_SUBDIR twice.
   12208 
   12209 	* lib/.cvsignore: Add strndup.h.  Remove memchr.c, memcmp.c,
   12210 	memrchr.c, strcasecmp.c, strchr.c, strrchr.c, strspn.c, strtol.c,
   12211 	strtoul.c.
   12212 	* m4/.cvsignore: Add exitfail.m4, extensions.m4, gnulib.m4,
   12213 	hard-locale.m4, mbstate_t.m4, strerror_r.m4, strndup.m4,
   12214 	xstrndup.m4.  Remove glibc21.m4, intdiv0.m4, inttypes-pri.m4,
   12215 	inttypes.m4, inttypes_h.m4, isc-posix.m4, lcmessage.m4,
   12216 	stdint_h.m4, uintmax_t.m4, ulonglong.m4.
   12217 	* src/.cvsignore: Add *.output.
   12218 
   12219 	* src/parse-gram.y: Put copyright notice inside %{ %} so it
   12220 	gets copied to the output file.
   12221 
   12222 2004-04-28  Paul Eggert  <eggert (a] twinsun.com>
   12223 
   12224 	Get files from the gnulib and po repositories, instead of relying
   12225 	on them being in our CVS.  Upgrade to latest versions of gnulib
   12226 	and Automake.
   12227 
   12228 	* Makefile.am (SUBDIRS): Remove m4; Automake now does m4.
   12229 	* bootstrap: Bootstrap from gnulib and po repositories.
   12230 	Much of this code was stolen from GNU diff and GNU tar's bootstrap.
   12231 	* README-cvs: Document these changes.  Remove version numbers from
   12232 	mentions of build tools, since they change so often.  Mention Flex.
   12233 
   12234 	* configure.ac (AC_CONFIG_MACRO_DIR): Add, with m4 as arg.
   12235 	(gl_USE_SYSTEM_EXTENSIONS): Add.
   12236 	(AC_GNU_SOURCE, AC_AIX, AC_MINIX):
   12237 	Remove; no longer needed, as gl_USE_SYSTEM_EXTENSIONS
   12238 	does this for us.
   12239 	(AC_ISC_POSIX): Remove; we no longer support this
   12240 	ancient OS, as it gets in the way of latest Autoconf & gnulib.
   12241 	(AC_HEADER_STDC): Remove: we now assume C89 or better.
   12242 	(AC_CHECK_HEADERS_ONCE): Use instead of AC_CHECK_HEADERS.
   12243 	Do not check for C89 headers, except for locale.h which is used
   12244 	by the Yacc library and must port to K&R hosts.
   12245 	(AC_CHECK_FUNCS_ONCE): Use instead of AC_CHECK_FUNCS.
   12246 	Do not check for C89 functions, except for setlocale which is
   12247 	used by the Yacc library.
   12248 	(AC_CHECK_DECLS, AC_REPLACE_FUNCS): Remove; no longer needed.
   12249 	(gl_DIRNAME, gl_ERROR, gl_FUNC_ALLOCA, gl_FUNC_MEMCHR,
   12250 	gl_FUNC_MEMRCHR, gl_FUNC_STPCPY, gl_FUNC_STRNLEN, gl_FUNC_STRTOL,
   12251 	gl_GETOPT, gl_HASH, gl_MBSWIDTH, gl_OBSTACK, gl_QUOTE,
   12252 	gl_QUOTEARG, gl_XALLOC, jm_FUNC_GLIBC_UNLOCKED_IO, jm_FUNC_MALLOC,
   12253 	AM_GNU_GETTEXT): Remove; now done by:
   12254 	(GNULIB_AUTOCONF_SNIPPET): Add.  "bootstrap" builds this for us.
   12255 	(AC_CONFIG_FILES): Remove m4/Makefile, as Automake now does this
   12256 	for us.
   12257 
   12258 	* lib/Makefile.am: Include gnulib.mk, built for us by "bootstrap".
   12259 	(BUILT_SOURCES, EXTRA_DIST, MOSTLYCLEANFILES):
   12260 	Define to empty, as gnulib.mk will do the rest for us.
   12261 	($(libbison_a_OBJECTS), stdbool.h): Remove, as gnulib.mk does this
   12262 	for us.
   12263 	(libbison_a_SOURCES): Define to $(lib_SOURCES) now.
   12264 	(lib_SOURCES): New symbol, containing only the non-gnulib libs.
   12265 
   12266 	* src/files.c: Include gnulib's xstrndup.h.
   12267 
   12268 	* src/system.h (MALLOC): Use xnmalloc, for better overflow checking.
   12269 	(REALLOC): Use xnrealloc, for likewise.
   12270 	(xstrndup, stpcpy): Remove decls, as gnulib does this for us now.
   12271 	(strnlen, memrchr): Remove decls; functions no longer used.
   12272 	Include <stpcpy.h>.
   12273 
   12274 	* config/depcomp, config/install-sh, lib/alloca.c, lib/argmatch.c,
   12275 	lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
   12276 	lib/error.c, lib/error.h, lib/getopt.c, lib/getopt.h,
   12277 	lib/getopt1.c, lib/gettext.h, lib/hash.c, lib/hash.h,
   12278 	lib/malloc.c, lib/mbswidth.c, lib/mbswidth.h, lib/memchr.c,
   12279 	lib/memcmp.c, lib/memrchr.c, lib/obstack.c, lib/obstack.h,
   12280 	lib/quote.c, lib/quote.h, lib/quotearg.c, lib/quotearg.h,
   12281 	lib/realloc.c, lib/stdbool_.h, lib/stpcpy.c, lib/strcasecmp.c,
   12282 	lib/strchr.c, lib/strncasecmp.c, lib/strnlen.c, lib/strrchr.c,
   12283 	lib/strspn.c, lib/strtol.c, lib/strtoul.c, lib/unlocked-io.h,
   12284 	lib/xalloc.h, lib/xmalloc.c, lib/xstrdup.c, lib/xstrndup.c,
   12285 	m4/Makefile.am, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
   12286 	m4/error.m4, m4/getopt.m4, m4/hash.m4, m4/malloc.m4,
   12287 	m4/mbrtowc.m4, m4/mbswidth.m4, m4/memchr.m4, m4/memcmp.m4,
   12288 	m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/prereq.m4,
   12289 	m4/quote.m4, m4/quotearg.m4, m4/realloc.m4, m4/stdbool.m4,
   12290 	m4/stpcpy.m4, m4/strnlen.m4, m4/strtol.m4, m4/strtoul.m4,
   12291 	m4/unlocked-io.m4, m4/xalloc.m4, po/LINGUAS, po/Makefile.in.in,
   12292 	po/Makevars, po/da.po, po/de.po, po/es.po, po/et.po, po/fr.po,
   12293 	po/hr.po, po/id.po, po/it.po, po/ja.po, po/ms.po, po/nl.po,
   12294 	po/pt_BR.po, po/ro.po, po/ru.po, po/sv.po, po/tr.po:
   12295 	Remove, as these files are now generated automatically
   12296 	by bootstrap or automake.
   12297 
   12298 	* po/ChangeLog: Remove: all but one entry was a duplicate
   12299 	of this file, and I moved that 2000-11-02 entry here.
   12300 
   12301 	* config/.cvsignore: Add Makefile, depcomp, install-sh.
   12302 	* lib/.cvsignore: Add alloca.c, alloca.h, alloca_.h, argmatch.c,
   12303 	argmatch.h, basename.c, dirname.c, dirname.h, error.c, error.h,
   12304 	exit.h, exitfail.c, exitfail.h, getopt.c, getopt.h, getopt1.c,
   12305 	getopt_int.h, gettext.h, gnulib.mk, hard-locale.c, hard-locale.h,
   12306 	hash.c, hash.h, malloc.c, mbswidth.c, mbswidth.h, memchr.c,
   12307 	memcmp.c, memrchr.c, obstack.c, obstack.h, quote.c, quote.h,
   12308 	quotearg.c, quotearg.h, realloc.c, stdbool_.h, stpcpy.c, stpcpy.h,
   12309 	strcasecmp.c, strchr.c, stripslash.c, strncasecmp.c, strndup.c,
   12310 	strnlen.c, strrchr.c, strspn.c, strtol.c, strtoul.c,
   12311 	unlocked-io.h, xalloc.h, xmalloc.c, xstrdup.c, xstrndup.c,
   12312 	xstrndup.h.
   12313 	* m4/.cvsignore: Remove Makefile, Makefile.in.  Add alloca.m4,
   12314 	dirname.m4, dos.m4, error.m4, getopt.m4, hash.m4, mbrtowc.m4,
   12315 	mbswidth.m4, obstack.m4, onceonly.m4, quote.m4, quotearg.m4,
   12316 	stdbool.m4, stpcpy.m4, strnlen.m4, unlocked-io.m4, xalloc.m4.
   12317 	* po/.cvsignore: Add *.po, LINGUAS, Makefile.in.in, Makevars.
   12318 	* src/.cvsignore: Remove *_.c.
   12319 
   12320 
   12321 	* Makefile.maint (GZIP_ENV): Don't use --rsyncable if gzip doesn't
   12322 	support it.  (The latest stable gzip doesn't.)
   12323 
   12324 2004-04-27  Paul Eggert  <eggert (a] twinsun.com>
   12325 
   12326 	* data/lalr1.cc (Parser::stos_) [! YYDEBUG]: Define even in this
   12327 	case, as stos_ is now used by destructors due to the 2004-02-09
   12328 	change.
   12329 
   12330 	Remove more K&R C support.
   12331 	* lib/libiberty.y (PARAMS): Remove.  All uses removed.
   12332 	* lib/subpipe.c (errno): Remove decl.
   12333 	Include <stdlib.h> unconditionally.
   12334 	(EXIT_FAILURE): Remove macro.
   12335 	* src/complain.c (vfprintf, strerror): Remove.
   12336 	* src/system.h: Include limits.h, stdlib.h, string.h, locale.h
   12337 	unconditionally.
   12338 	(EXIT_FAILURE, EXIT_SUCCESS, setlocale): Remove defns.
   12339 	Use latest Autoconf recommendations for including inttypes.h, stdint.h.
   12340 	(strchr, strspn, memchr): Remove decls.
   12341 	* tests/calc.at (_AT_DATA_CALC_Y): Include stdlib.h, string.h
   12342 	unconditionally.  Do not declare perror.
   12343 	* tests/conflicts.at (%nonassoc and eof): Include stdlib.h
   12344 	unconditionally.
   12345 
   12346 	* src/complain.c (_): Remove useless defn, as system.h defines this.
   12347 
   12348 	* lib/bitset.h (__INT_TO_PTR): Remove; workaround no longer needed
   12349 	with latest obstack.h.
   12350 	* lib/ebitset.c (ebitset_elt_alloc): Don't bother to cast args
   12351 	to procedure types, as obstack.h now does that for us.
   12352 	* lib/lbitset.c (lbitset_elt_alloc): Likewise.
   12353 
   12354 	* lib/subpipe.h [HAVE_SYS_TYPES_H]: Include <sys/types.h>,
   12355 	so that this include file can stand alone.
   12356 	* lib/subpipe.c: Do not include <sys/types.h>, as subpipe.h
   12357 	does this now.  Include subpipe.h first after config.h, to
   12358 	test whether it can stand alone.
   12359 
   12360 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Don't
   12361 	declare yyerror when using lalr.cc, as GCC 3.4.0 warns about the
   12362 	unused declaration.
   12363 
   12364 	* tests/synclines.at (%union synch line): Put a dummy member in
   12365 	the union, because empty unions aren't allowed in C.  Caught
   12366 	by GCC 3.4.0.
   12367 
   12368 2004-04-13  Jim Meyering  <jim (a] meyering.net>
   12369 
   12370 	* src/conflicts.c (conflicts_print): Correct format string typo:
   12371 	use `%%' to produce literal `%'.  (trivial change)
   12372 
   12373 2004-03-30  Paul Eggert  <eggert (a] twinsun.com>
   12374 
   12375 	* src/getargs.c (version): Update copyright year to 2004.
   12376 
   12377 	* data/c.m4 (b4_int_type): Use 'short int' rather than
   12378 	'short', and similarly for 'long', 'unsigned', etc.
   12379 	* data/glr.c (YYTRANSLATE, yyconfl, yySymbol, yyItemNum,
   12380 	yygetLRActions, yyprocessOneStack, yyrecoverSyntaxError,
   12381 	yy_yypstack, yydumpstack): Likewise.
   12382 	* data/lalr1.cc (user_token_number_max_, user_token_number_max_,
   12383 	translate_, seq_, [], pop, Slice, range_, operator+, operator+=):
   12384 	Likewise.
   12385 	* data/yacc.c (b4_int_type, yyss, YYSTACK_BYTES, yysigned_char,
   12386 	yy_stack_print, yyparse): Likewise.
   12387 	* doc/bison.texinfo (Prologue, Multiple Types): Likewise.
   12388 	* lib/bbitset.h (bitset_word, BITSET_WORD_BITS): Likewise.
   12389 	* lib/bitset.c (bitset_print): Likewise.
   12390 	* lib/bitset_stats.c (bitste_log_histogram_print): Likewise.
   12391 	* lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
   12392 	* lib/bitsetv.c (bitsetv_dump): Likewise.
   12393 	* lib/ebitset.c (EBITSET_ELT_BITS, ebitset_elt_alloc): Likewise.
   12394 	* lib/lbitset.c (LBITSET_ELT_BITS, lbitset_elt_alloc, debug_lbitset):
   12395 	Likewise.
   12396 	* src/LR0.c (allocate_itemsets): Likewise.
   12397 	* src/gram.h (rule_number, rule): Likewise.
   12398 	* src/lalr.h (goto_number): Likewise.
   12399 	* src/nullable.c (nullable_compute): Likewise.
   12400 	* src/output.c (prepare_rules): Likewise.
   12401 	* src/relation.c (relation_print, relation_digraph): Likewise.
   12402 	* src/relation.h (relation_node): Likewise.
   12403 	* src/state.h (state_number, transitions, errs, reductions,
   12404 	struct state): Likewise.
   12405 	* src/symtab.h (symbol_number, struct symbol): Likewise.
   12406 	* src/tables.c (vector_number, tally, action_number,
   12407 	default_goto, goto_actions): Likewise.
   12408 	* tests/existing.at (GNU Cim Grammar): Likewise.
   12409 	* tests/regression.at (Web2c Actions): Likewise.
   12410 
   12411 	* src/output.c (muscle_insert_short_int_table): Renamed from
   12412 	muscle_insert_short_table.  All uses changed.
   12413 
   12414 2004-03-25  Paul Hilfinger  <hilfingr (a] tully.CS.Berkeley.EDU>
   12415 
   12416 	* src/parse-gram.y: Define PERCENT_EXPECT_RR.
   12417 	(declaration): Replace expected_conflicts with expected_sr_conflicts.
   12418 	Add %expect-rr rule.
   12419 
   12420 	* src/scan-gram.l: Recognize %expect-rr.
   12421 
   12422 	* src/conflicts.h (expected_sr_conflicts): Rename from
   12423 	expected_conflicts.
   12424 	(expected_rr_conflicts): Declare.
   12425 
   12426 	* src/conflicts.c (expected_sr_conflicts): Rename from
   12427 	expected_conflicts.
   12428 	(expected_rr_conflicts): Define.
   12429 	(conflicts_print): Check r/r conflicts against expected_rr_conflicts
   12430 	for GLR parsers.
   12431 	Use expected_sr_conflicts in place of expected_conflicts.
   12432 	Warn if expected_rr_conflicts used in non-GLR parser.
   12433 
   12434 	* doc/bison.texinfo: Add documentation for %expect-rr.
   12435 
   12436 2004-03-08  Paul Eggert  <eggert (a] gnu.org>
   12437 
   12438 	Add support for hex token numbers.  Suggested by Odd Arild Olsen in
   12439 	<http://lists.gnu.org/archive/html/bison-patches/2004-03/msg00000.html>.
   12440 
   12441 	* NEWS: Document hexadecimal tokens, no NUL bytes, %destructor
   12442 	in lalr1.cc.
   12443 	* doc/bison.texinfo (Token Decl): Add hexadecimal token numbers.
   12444 	* src/scan-gram.l (scan_integer): New function.
   12445 	({int}): Use it.
   12446 	(0[xX][0-9abcdefABCDEF]+): New pattern, to support hex numbers.
   12447 	(<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>, \\x[0-9abcdefABCDEF]+,
   12448 	handle_action_dollar, handle_action_at, convert_ucn_to_byte):
   12449 	Say "long int", not "long", for uniformity with GNU style.
   12450 
   12451 2004-02-25  Paul Eggert  <eggert (a] twinsun.com>
   12452 
   12453 	* tests/local.at (AT_COMPILE, AT_COMPILE_CXX): Ignore stdout from
   12454 	compilers.  This fixes a problem with Intel's C++ compiler being
   12455 	chatty, reported by Guido Trentalancia in
   12456 	<http://lists.gnu.org/archive/html/bug-bison/2004-02/msg00030.html>.
   12457 
   12458 2004-02-09  Alexandre Duret-Lutz  <adl (a] gnu.org>
   12459 
   12460 	Support %destructor and merge error locations in lalr1.cc.
   12461 
   12462 	* data/lalr1.cc (b4_cxx_destruct_def): New macro.
   12463 	(Parser::stos_): Define unconditionally.
   12464 	(Parser::destruct_): New method.  Generate its body with
   12465 	b4_yydestruct_generate.
   12466 	(Parser::error_start_): New attribute.
   12467 	(Parser::parse) <yyerrlab, yyerrlab1>: Call destruct_ on erroneous
   12468 	token which are discarded.
   12469 	(Parser::parse) <yyerrlab, yyerrorlab, yyerrlab1>: Update
   12470 	error_start_ when erroneous token are discarded.
   12471 	(Parser::parse) <yyerrlab1>: Compute the location of the error
   12472 	token so that it covers all the discarded tokens.
   12473 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Adjust so
   12474 	it can be called with `%skeleton "lalr1.cc"', and do that.
   12475 
   12476 2004-02-02  Paul Eggert  <eggert (a] twinsun.com>
   12477 
   12478 	* src/Makefile.am (AM_CPPFLAGS): New macro.  It mentions
   12479 	$(top_srcdir)/lib and ../lib.  This fixes a bug reported
   12480 	by Paul Hilfinger; the old INCLUDES value didn't mention ../lib.
   12481 	There's no need to mention top_builddir since Automake does that
   12482 	for us.
   12483 	(INCLUDES): Remove, as Automake says it's obsolescent.
   12484 	Contents migrated into AM_CPPFLAGS as described above.
   12485 	* lib/Makefile.am (INCLUDES): Remove; obsolescent.
   12486 
   12487 2004-01-14  Paul Hilfinger  <hilfingr (a] CS.Berkeley.EDU>
   12488 
   12489 	* data/glr.c (yytokenName): Bullet-proof against YYEMPTY token.
   12490 	(yyreportSyntaxError): Handle case where lookahead token is
   12491 	YYEMPTY.
   12492 
   12493 2004-01-13  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   12494 
   12495 	* data/glr.c: Put casts on uses of YYREALLOC and YYMALLOC so that
   12496 	resulting parsers are compilable with C++.
   12497 
   12498 2003-12-23  Paul Eggert  <eggert (a] twinsun.com>
   12499 
   12500 	* config/depcomp, config/install-sh: Sync with Automake 1.8.
   12501 	* src/output.c (output_skeleton): Rename local var.
   12502 	* tests/input.at (Torturing the Scanner): Don't use \x0 or \0 in
   12503 	Bison tokens, as this runs afoul of the 2003-10-07 change that
   12504 	disallowed NUL bytes in character constants or string literals.
   12505 
   12506 	* tests/local.at: Require Autoconf 2.59's Autotest.
   12507 	* tests/testsuite.at: Don't include local.at, since we now assume
   12508 	Autoconf 2.59 or later.  Autoconf 2.59 had some problems with
   12509 	including it.
   12510 	* tests/Makefile.am ($(TESTSUITE)): Remove warning about ignoring
   12511 	multiple inclusion warnings.
   12512 
   12513 2003-12-02  Akim Demaille  <akim (a] epita.fr>
   12514 
   12515 	* doc/bison.texinfo (How Can I Reset the Parser): More about start
   12516 	conditions.
   12517 	From Bruno Haible.
   12518 
   12519 2003-11-18  Alexandre Duret-Lutz  <adl (a] gnu.org>
   12520 
   12521 	* doc/bison.texinfo (Bison Options): Escape `@' in `$@'.
   12522 
   12523 2003-10-07  Paul Eggert  <eggert (a] twinsun.com>
   12524 
   12525 	* tests/Makefile.am (clean-local): Don't run 'testsuite --clean'
   12526 	if testsuite doesn't exist.
   12527 
   12528 	* doc/bison.texinfo (Symbols): NUL bytes are not allowed in string
   12529 	literals, unfortunately.
   12530 	* src/scan-gram.l (<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>):
   12531 	Complain about NUL bytes in character constants or string literals.
   12532 
   12533 2003-10-05  Paul Eggert  <eggert (a] twinsun.com>
   12534 
   12535 	* NEWS: Don't document %no-default-prec, as it's still
   12536 	too experimental.
   12537 	* doc/bison.texinfo: Document %no-default-prec only if
   12538 	the defaultprec flag is set.  Normally it's not.
   12539 
   12540 2003-10-04  Paul Eggert  <eggert (a] twinsun.com>
   12541 
   12542 	* data/glr.c (b4_rhs_value, b4_rhs_location): Yield a
   12543 	non-modifiable lvalue, instead of a modifiable one.
   12544 	* doc/bison.texinfo (Actions): Document that $$ can
   12545 	be assigned to.  Do not claim that $$ and $N are
   12546 	array element references: user code should not rely on this.
   12547 
   12548 2003-10-01  Paul Eggert  <eggert (a] twinsun.com>
   12549 
   12550 	* src/parse-gram.h (PERCENT_NO_DEFAULT_PREC): New token.
   12551 	(grammar_declaration): Use it.
   12552 	* src/scan-gram.l: New token %no-default-prec.
   12553 	* tests/conflicts.at: Revamp tests to use %no-default-prec.
   12554 	* NEWS, doc/bison.texinfo: Document the above.
   12555 
   12556 2003-10-01  Akim Demaille  <akim (a] epita.fr>
   12557 
   12558 	VCG no longer supports long_straight_phase.
   12559 
   12560 	* src/vcg.c, src/vcg.h: Remove the handling of long_straight_phase.
   12561 	* src/print_graph.c (print_graph): Adjust.
   12562 
   12563 2003-09-30  Frank Heckenbach  <frank (a] g-n-u.de>
   12564 	and Paul Eggert  <eggert (a] twinsun.com>
   12565 
   12566 	* doc/bison.texinfo (Decl Summary, Contextual Precedence,
   12567 	Table of Symbols): Document %default-prec.
   12568 	* src/parse-gram.y (PERCENT_DEFAULT_PREC): New token.
   12569 	(grammar_declaration): Set default_prec on %default-prec.
   12570 	* src/scan-gram.l (%default-prec): New token.
   12571 	* src/reader.h (default_prec): New flag.
   12572 	* src/reader.c: Likewise.
   12573 	(packgram): Handle it.
   12574 	* tests/conflicts.at (%default-prec without %prec,
   12575 	%default-prec with %prec, %default-prec 1): New tests.
   12576 
   12577 2003-09-30  Paul Eggert  <eggert (a] twinsun.com>
   12578 
   12579 	* tests/testsuite.at: Include local.at, not input.at, fixing
   12580 	a typo in the 2003-08-25 patch.
   12581 
   12582 2003-08-27  Akim Demaille  <akim (a] epita.fr>
   12583 
   12584 	* data/lalr1.cc (yyparse) [__GNUC__]: "Use" yyerrorlab to pacify
   12585 	GCC warnings.
   12586 
   12587 2003-08-26  Akim Demaille  <akim (a] epita.fr>
   12588 
   12589 	* config/announce-gen (print_changelog_deltas): Neutralize "<#" as
   12590 	"<\#" to avoid magic from Gnus when posting parts of this script.
   12591 
   12592 2003-08-26  Akim Demaille  <akim (a] epita.fr>
   12593 
   12594 	* data/lalr1.cc (Parser::report_syntax_error_): New, extracted from
   12595 	(Parser::parse): here.
   12596 	Adjust: nerrs and errstatus is now replaced by...
   12597 	(Parser::nerrs_, Parser::errstatus_): New.
   12598 
   12599 2003-08-25  Akim Demaille  <akim (a] epita.fr>
   12600 
   12601 	* config/announce-gen, Makefile.cfg: New.
   12602 	* Makefile.am: Adjust.
   12603 	* GNUmakefile, Makefile.maint: Update from CVS Autoconf, but
   12604 	keeping local WGET and WGETFLAGS modifications from Paul Eggert.
   12605 
   12606 2003-08-25  Akim Demaille  <akim (a] epita.fr>
   12607 
   12608 	When reducing initial empty rules, Bison parser read an initial
   12609 	location that is not defined.  This results in garbage, and that
   12610 	affects Bison's own parser.  Therefore we need (i) to extend Bison
   12611 	to support a means to initialize this location, and (ii) to use
   12612 	this CVS Bison to fix CVS Bison's parser.
   12613 
   12614 	* src/reader.h, reader.c (epilogue_augment): Remove, replace
   12615 	with...
   12616 	* src/muscle_tab.h, src/muscle_tab.c (muscle_code_grow): this.
   12617 	* src/parse-gram.y: Adjust.
   12618 	(%initial-action): New.
   12619 	(%error-verbose): Since we require CVS Bison, there is no reason
   12620 	not to use it.
   12621 	* src/scan-gram.l: Adjust.
   12622 	* src/Makefile.am (YACC): New, to make sure we use our own parser.
   12623 	* data/yacc.c (yyparse): Use b4_initial_action.
   12624 
   12625 2003-08-25  Akim Demaille  <akim (a] epita.fr>
   12626 
   12627 	* doc/bison.texinfo: Don't promote stdout for error messages.
   12628 
   12629 2003-08-25  Akim Demaille  <akim (a] epita.fr>
   12630 
   12631 	* data/lalr1.cc (Parser::reduce_print_): Remove unused yyi.
   12632 	From Alexandre Duret-Lutz.
   12633 
   12634 2003-08-25  Akim Demaille  <akim (a] epita.fr>
   12635 
   12636 	Version 1.875c.
   12637 
   12638 2003-08-25  Akim Demaille  <akim (a] epita.fr>
   12639 
   12640 	* data/lalr1.cc (Parser::stack_print_, YY_STACK_PRINT): New.
   12641 	Use them.
   12642 
   12643 2003-08-25  Akim Demaille  <akim (a] epita.fr>
   12644 
   12645 	* data/lalr1.cc (Parser::reduce_print_): New.
   12646 	Use it.
   12647 
   12648 2003-08-25  Akim Demaille  <akim (a] epita.fr>
   12649 
   12650 	Have lalr1.cc catch with Paul Eggert's patch to fix the infinite
   12651 	error recovery loops.  This patch is based on
   12652 	<http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00000.html>.
   12653 	Also, augment the similarity between lalr1.cc and yacc.c.
   12654 	Note: the locations of error recovery rules are not correct yet.
   12655 
   12656 	* data/lalr1.cc: Comment changes to augment the similarity between
   12657 	lalr1.cc and yacc.c.
   12658 	(YYERROR): Goto to yyerrorlab, not yyerrlab1.
   12659 	(yyerrlab1): Remove, but where it used to be (now the bottom part of
   12660 	yyerrlab), when hitting EOF, pop the whole stack here instead of
   12661 	merely falling through the default error handling mechanism.
   12662 	(yyerrorlab): New label, with the old contents of YYERROR,
   12663 	plus the following change: pop the stack of rhs corresponding
   12664 	to the production that invoked YYERROR.  That is how Yacc
   12665 	behaves (required by POSIX).
   12666 	* tests/calc.at (AT_CHECK_CALC_LALR1_CC): No longer expected to
   12667 	fail.
   12668 
   12669 2003-08-25  Akim Demaille  <akim (a] epita.fr>
   12670 
   12671 	Tune local.at so that people can "autom4te -l autotest calc.at -o
   12672 	calc" for instance, to extract a sub test suite.
   12673 
   12674 	* tests/testsuite.at: Move the initialization, Autotest version
   12675 	requirement, and AT_TESTED invocation into...
   12676 	* tests/local.at: here.
   12677 	* tests/testsuite.at: Include it for compatibility with Autoconf
   12678 	2.57.
   12679 	* tests/Makefile.am ($(TESTSUITE)): Report that the warning should
   12680 	be ignore.
   12681 
   12682 2003-08-04  Paul Eggert  <eggert (a] twinsun.com>
   12683 
   12684 	Rework code slightly to avoid gcc -Wtraditional warnings.
   12685 	* data/glr.c (yyuserMerge): Return void, not YYSTYPE.
   12686 	The returned value is now stored in *YY0.  All callers changed.
   12687 	* src/output.c (merge_output): Adjust to the above change.
   12688 
   12689 2003-07-26  Paul Eggert  <eggert (a] twinsun.com>
   12690 
   12691 	* data/glr.c (YYASSERT): New macro.
   12692 	(yyfillin, yydoAction, yyglrReduce, yysplitStack,
   12693 	yyresolveStates, yyprocessOneStack):
   12694 	Use `YYASSERT (FOO);' rather than `if (! (FOO)) abort ();'.
   12695 	Derived from a suggestion by Frank Heckenbach.
   12696 
   12697 2003-07-25  Paul Eggert  <eggert (a] twinsun.com>
   12698 
   12699 	* data/glr.c (yyglrReduce): Don't use C89 string concatenation,
   12700 	for portability to K&R C (after ansi2knr, presumably).  See
   12701 	<http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>
   12702 	by Frank Heckenbach, though I have omitted the structure-initialization
   12703 	part of his glr-knr.diff patch since I recall that the Portable
   12704 	C Compiler didn't require that change.
   12705 
   12706 	Let the user specify how to allocate and free memory.
   12707 	Derived from a suggestion by Frank Heckenbach in
   12708 	<http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00041.html>.
   12709 	* data/glr.c (YYFREE, YYMALLOC, YYREALLOC): New macros.
   12710 	All uses of free, malloc, realloc changed to use these macros,
   12711 	and unnecessary casts removed.
   12712 	* data/yacc.c (YYFREE, YYMALLOC): Likewise.
   12713 
   12714 2003-07-06  Matthias Mann  <MatthiasMann (a] gmx.de>
   12715 
   12716 	* data/lalr1.cc (operator<<(std::ostream&, const Position&)):
   12717 	use s.empty() rather than s == "" to test for empty string; see
   12718 	<http://lists.gnu.org/archive/html/bison-patches/2003-07/msg00003.html>
   12719 	(trivial change)
   12720 
   12721 2003-06-25  Akim Demaille  <akim (a] epita.fr>
   12722 
   12723 	* config/depcomp, config/install-sh: Update from masters.
   12724 
   12725 2003-06-20  Paul Eggert  <eggert (a] twinsun.com>
   12726 
   12727 	* data/glr.c (YYLLOC_DEFAULT): Parenthesize arguments as needed,
   12728 	and return properly parenthesized result.
   12729 	* data/lalar1.cc (YYLLOC_DEFAULT): Likewise.
   12730 	* data/yacc.c (YYLLOC_DEFAULT): Likewise.
   12731 	Remove unnecessary parentheses from uses.
   12732 	* doc/bison.texinfo (Location Default Action): Describe the
   12733 	conventions for parentheses.
   12734 
   12735 2003-06-19  Paul Eggert  <eggert (a] twinsun.com>
   12736 
   12737 	* data/glr.c (yyremoveDeletes, yy_reduce_print, yyglrReduce,
   12738 	yyreportTree): Do not assume that size_t is the same width as int,
   12739 	when printing sizes.  Print sizes using an unsigned format.
   12740 	Problem reported by Frank Heckenbach in
   12741 	<http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00035.html>.
   12742 
   12743 	Port to Forte Developer 7 C compiler.
   12744 	* data/glr.c (struct YYLTYPE): If locations are not being used,
   12745 	declare a single dummy member, as empty structs do not conform
   12746 	to the C standard.
   12747 	(YYERROR, YYBACKUP): Do not use "do { ...; return foo; } while (0)";
   12748 	the Forte Developer 7 C compiler complains that end-of-loop
   12749 	code is not reached.
   12750 
   12751 2003-06-17  Paul Eggert  <eggert (a] twinsun.com>
   12752 
   12753 	* lib/libiberty.h (PARAMS): Spell argument as Args, not as X, to
   12754 	avoid warnings from picky compilers about redefinition of PARAMS.
   12755 
   12756 2003-06-17  Paul Eggert  <eggert (a] twinsun.com>
   12757 
   12758 	Version 1.875b.
   12759 
   12760 	* NEWS: Document 1.875b.
   12761 
   12762 	* lib/bbitset.h: Do not include config.h; that's the includer's job.
   12763 	Do not include <sys/types.h>; shouldn't be needed on a C89 host.
   12764 	* lib/bitset.h (bitset_compatible_p): Indent as per GNU standard.
   12765 	Don't use 'index' in comments, as it's a builtin fn on some hosts.
   12766 	* lib/bitset_stats.c: Include gettext.h unconditionally, as
   12767 	per recent gettext manual's suggestion.
   12768 	* lib/ebitset.c (ebitset_resize, ebitset_unused_clear):
   12769 	Use prototypes, not old-style definitions.
   12770 	* lib/lbitset.c (lbitset_unused_clear): Likewise.
   12771 	* lib/vbitset.c (vbitset_resize, vbitset_ones, vbitset_zero,
   12772 	vbitset_empty_p, vbitset_copy1, vbitset_not, vbitset_equal_p,
   12773 	vbitset_subset_p, vbitset_disjoint_p, vbitset_and, vbitset_and_cmp,
   12774 	vbitset_andn, vbitset_andn_cmp, vbitset_or, vbitset_or_cmp,
   12775 	vbitset_xor, vbitset_xor_cmp, vbitset_and_or, vbitset_and_or_cmp,
   12776 	vbitset_andn_or, vbitset_andn_or_cmp, vbitset_or_and,
   12777 	vbitset_or_and_cmp, vbitset_copy): Likewise.
   12778 
   12779 	* lib/libiberty.h: Do not include config.h; that's the includer's job.
   12780 	Do not include <stdlib.h>.
   12781 	(PARAMS): Define unconditionally for C89.
   12782 	(ATTRIBUTE_NORETURN): Remove.
   12783 	(ATTRIBUTE_UNUSED): Define unconditionally.
   12784 
   12785 	Upgrade to 2003-06-08 libbitset, submitted by Michael Hayes in:
   12786 	<http://lists.gnu.org/archive/html/bison-patches/2003-06/msg00005.html>
   12787 	* lib/Makefile.am (bitsets_sources): Add vbitset.c, vbitset.h.
   12788 	* lib/vbitset.c, lib/vbitset.h: New files.
   12789 	* lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
   12790 	lib/bitset_stats.c, lib/ebitset.c, lib/lbitset.c: Import
   12791 	from libbitset.
   12792 
   12793 	* doc/bison.texinfo (How Can I Reset the Parser): Renamed from
   12794 	`How Can I Reset @code{yyparse}', since texinfo does not allow
   12795 	arbitrary @ in node names.
   12796 
   12797 	* m4/Makefile.am (EXTRA_DIST): Add the following files, which
   12798 	shouldn't be needed according to the gettext 0.12.1 documentation
   12799 	but which seem to be needed anyway: codeset.m4 glibc21.m4
   12800 	intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4
   12801 	lcmessage.m4 nls.m4 po.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4.
   12802 	* po/Makefile.in.in: Upgrade to gettext 0.12.1 version.
   12803 
   12804 	* lib/.cvsignore: Add stdbool.h.
   12805 	* m4/.cvsignore: Add nls.m4, po.m4.
   12806 
   12807 	Upgrade to CVS gnulib.
   12808 	* stdbool_.h: File renamed from stdbool.h.in.
   12809 	* configure.ac (AM_STDBOOL_H): Invoke this instead of
   12810 	AC_HEADER_STDBOOL.
   12811 	(AM_GNU_GETTEXT): Put brackets around args, as latest manual suggests.
   12812 	(AM_GNU_GETTEXT_VERSION): Update to 0.12.1.
   12813 	* lib/Makefile.am (EXTRA_DIST): Add stdbool_.h.
   12814 	(MOSTLYCLEANFILES): New var.
   12815 	($(libbison_a_OBJECTS)): Depend on $(STDBOOL_H).
   12816 	(stdbool.h): New rule.
   12817 	* lib/dirname.c, lib/dirname.h, lib/hash.c, lib/hash.h,
   12818 	lib/malloc.c, lib/obstack.h, lib/quote.c, lib/realloc.c,
   12819 	lib/strcasecmp.c, lib/xalloc.h, m4/alloca.m4, m4/onceonly.m4,
   12820 	m4/quote.m4: Upgrade to today's gnulib.
   12821 
   12822 	* tests/calc.at (AT_CHECK_CALC): New option EXPECTED-TO-FAIL.
   12823 	(AT_CHECK_CALC_LALR1_CC): Use it, since the C++ LALR parser fails
   12824 	the tests right now.
   12825 	* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Ensure yylex and
   12826 	yyerror are declared before use; C99 requires this.
   12827 
   12828 2003-06-09  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   12829 
   12830 	* data/glr.c (YYERROR): Update definition to reset yyerrState to 0
   12831 	first.
   12832 	(yyrecoverSyntaxError): Correct the logic for setting and testing
   12833 	yyerrState.
   12834 	Correct comment on handling EOF.
   12835 	Allow states with only a default reduction, rather than failing
   12836 	(I can't quite reconstruct why these were not allowed before).
   12837 
   12838 	Fixes to avoid problem that $-N rules in GLR parsers can cause
   12839 	buffer overruns, corrupting state.
   12840 
   12841 	* src/output.c (prepare_rules): Output max_left_semantic_context
   12842 	definition.
   12843 	* src/reader.h (max_left_semantic_context): New variable declaration.
   12844 	* src/scan-gram.l (max_left_semantic_context): Define.
   12845 	(handle_action_dollar): Update max_left_semantic_context.
   12846 	* data/glr.c (YYMAXLEFT): New definition.
   12847 	(yydoAction): Increase size of yyrhsVals by YYMAXLEFT.
   12848 	(yyresolveAction): Ditto.
   12849 
   12850 	Fixes to problems with location handling in GLR parsers reported by
   12851 	Frank Heckenbach (2003/06/05).
   12852 
   12853 	* data/glr.c (YYLTYPE): Make trivial if locations not used.
   12854 	(YYRHSLOC): Add parentheses, and define only if locations used.
   12855 	(YYLLOC_DEFAULT): Add parentheses, and give trivial definition if
   12856 	locations not used.
   12857 	(yyuserAction): Use YYLLOC_DEFAULT to set *yylocp.
   12858 	(yydoAction): Remove redundant initialization of *yyvalp and *yylocp.
   12859 
   12860 	* tests/cxx-type.at: Exercise location information; update tests
   12861 	to differentiate output with and without locations.
   12862 	Remove forward declarations of yylex and yyerror---caused errors
   12863 	because default YYLTYPE not yet defined.
   12864 	Change semantic actions to compute strings, rather than printing
   12865 	them directly (to test proper passing of semantics values).  Change
   12866 	output to prefix notation and update test data and expected results.
   12867 	(yylex): Track locations.
   12868 	(stmtMerge): Return value rather than printing, and include arguments
   12869 	in value.
   12870 
   12871 2003-06-03  Paul Eggert  <eggert (a] twinsun.com>
   12872 
   12873 	Avoid warnings generated by GCC 2.95.4 when Bison is
   12874 	configured with --enable-gcc-warnings.
   12875 	* data/lalr1.cc (yy::]b4_parser_class_name[::parse,
   12876 	yy::]b4_parser_class_name[::translate_,
   12877 	yy::Stack::operator[] (unsigned),
   12878 	yy::Stack::operator[] (unsigned) const,
   12879 	yy::Slice::operator[] (unsigned),
   12880 	yy::Slice::operator[] (unsigned) const):
   12881 	Rename local vars to avoid warnings.
   12882 	* tests/glr-regression.at (Improper handling of embedded actions
   12883 	and $-N in GLR parsers): Remove unused local variable from yylex.
   12884 	* tests/regression.at (_AT_DATA_DANCER_Y): Declare yylex to take
   12885 	(void) as arg when not pure, since we now assume C89 when building
   12886 	Bison.  Pacify GCC by using parameter.
   12887 
   12888 2003-06-02  Paul Eggert  <eggert (a] twinsun.com>
   12889 
   12890 	* data/lalr1.cc (yy::Position::lines, yy::Position::columns,
   12891 	yy::Location::lines, yy::Location::columns): Rename arguments
   12892 	to avoid shadowing; this removes a warning generated by GCC 3.3.
   12893 
   12894 2003-06-01  Paul Eggert  <eggert (a] twinsun.com>
   12895 
   12896 	Don't pass C-only warning optins (e.g., -Wmissing-declarations)
   12897 	to g++, as GCC 3.3 complains if you do it.
   12898 	* configure.ac (WARNING_CXXFLAGS): New subst.  Set it to
   12899 	everything that WARNING_CFLAGS has, except omit warnings
   12900 	not suitable for C++.
   12901 	(AC_PROG_CXX): Use this instead of AC_CHECK_PROGS([CXX], [g++]).
   12902 	* tests/atlocal.in (CXXFLAGS): New var.
   12903 	* tests/local.at (AT_COMPILE_CXX): Use it instead of CFLAGS.
   12904 
   12905 	Fix a GLR parser bug I reported in February; see
   12906 	<http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00008.html>.
   12907 	The problem was that GLR parsers did not conform to the C standard,
   12908 	because actions like { $1 = $2 + $3; } expanded to expressions
   12909 	that invoked YYFILL in separate subexpressions, and YYFILL assigned
   12910 	to a local variable.  The C standard says that expressions
   12911 	like (var = f ()) + (var = f ()) have undefined behavior.
   12912 	Another problem was that GCC sometimes issues warnings that
   12913 	yyfill and its parameters are unused.
   12914 
   12915 	* data/glr.c (yyfillin): Renamed from the old yyfill.  Mark
   12916 	as possibly unused.
   12917 	(yyfill): New function.
   12918 	(YYFILL): Use it.
   12919 	(yyuserAction): Change type of yynormal to bool, so that it matches
   12920 	the new yyfill signature.  Mark it as possibly unused.
   12921 
   12922 
   12923 	Follow up on a bug I reported in February, where a Bison-generated
   12924 	parser can loop.  Provide a test case and a fix for yacc.c.  I
   12925 	don't have a fix for lalr1.cc or for glr.c, unfortunately.
   12926 	The original bug report is in:
   12927 	<http://lists.gnu.org/archive/html/bison-patches/2003-02/msg00044.html>
   12928 
   12929 	* data/yacc.c (YYERROR): Now just 'goto yyerrorlab', since the
   12930 	macro's size was becoming unwieldy.
   12931 	(yyerrlab): Do not discard an empty lookahead symbol, as this
   12932 	might destroy garbage.
   12933 	(yyerrorlab): New label, with the old contents of YYERROR,
   12934 	plus the following change: pop the stack of rhs corresponding
   12935 	to the production that invoked YYERROR.  That is how Yacc
   12936 	behaves, and POSIX requires this behavior.
   12937 	(yyerrlab1): Use YYPOPSTACK instead of its definiens.
   12938 	* tests/calc.at (_AT_DATA_CALC_Y): Include unistd.h if available.
   12939 	Define 'alarm' to do nothing if unistd.h is not available.
   12940 	Add a new rule "exp: '-' error;" to test the above change to
   12941 	data/yacc.c.  Use 'alarm' to abort any test taking longer than
   12942 	10 seconds, as it's probably looping.
   12943 	(AT_CHECK_CALC): Test recovery from error in new grammar rule.
   12944 	Also, the new yacc.c generates two fewer diagnostics for an
   12945 	existing test.
   12946 
   12947 2003-05-24  Paul Eggert  <eggert (a] twinsun.com>
   12948 
   12949 	* data/glr.c (YYSTACKEXPANDABLE): Do not evaluate
   12950 	YYSTYPE_IS_TRIVIAL or YYSTYPE_IS_TRIVIAL unless they are defined.
   12951 	This fixes a problem reported by John Bowman when the Compaq/HP
   12952 	Alpha cxx compiler happy (e.g. using cxx -D__USE_STD_IOSTREAM
   12953 	-ansi -Wall -gall).
   12954 	* data/yacc.c (union yyalloc): Likewise.
   12955 	(YYCOPY): Do not evaluate __GNUC__ unless it is defined.
   12956 
   12957 	Switch from 'int' to 'bool' where that makes sense.
   12958 
   12959 	* lib/abitset.c (abitset_test, abitset_empty_p, abitset_equal_p,
   12960 	abitset_subset_p, abitset_disjoint_p, abitset_and_cmp,
   12961 	abitset_andn_cmp, abitset_or_cmp, abitset_xor_cmp, abitset_and_or,
   12962 	abitset_and_or_cmp, abitset_andn_or_cmp, abitset_or_and_cmp):
   12963 	Return or accept bool, not int.  All callers changed.
   12964 	* lib/bbitset.h: (bitset_toggle_, bitset_copy_, bitset_and_or_cmp_,
   12965 	bitset_andn_or_cmp_, bitset_or_and_cmp_): Likewise.
   12966 	* lib/bitset.c (bitset_only_set_p, bitset_print, bitset_toggle_,
   12967 	bitset_copy_, bitset_op4_cmp, bitset_and_or_cmp_, bitset_andn_or_cmp_,
   12968 	bitset_or_and_cmp_): Likewise.
   12969 	* lib/bitset.h (bitset_test, bitset_only_set_p): Likewise.
   12970 	* lib/bitset_stats.c (bitset_stats_print, bitset_stats_toggle,
   12971 	bitset_stats_test, bitset_stats_empty_p, bitset_stats_disjoint_p,
   12972 	bitset_stats_equal_p, bitset_stats_subset_p, bitset_stats_and_cmp,
   12973 	bitset_stats_andn_cmp, bitset_stats_or_cmp, bitset_stats_xor_cmp,
   12974 	bitset_stats_and_or_cmp, bitset_stats_andn_or_cmp,
   12975 	bitset_stats_or_and_cmp): Likewise.
   12976 	* lib/ebitset.c (ebitset_elt_zero_p, ebitset_equal_p, ebitset_copy_cmp,
   12977 	ebitset_test, ebitset_empty_p, ebitset_subset_p, ebitset_disjoint_p,
   12978 	ebitset_op3_cmp, ebitset_and_cmp, ebitset_andn_cmp, ebitset_or_cmp,
   12979 	ebitset_xor_cmp): Likewise.
   12980 	* lib/lbitset.c (lbitset_elt_zero_p, lbitset_equal_p, lbitset_copy_cmp,
   12981 	lbitset_test, lbitset_empty_p, lbitset_subset_p, lbitset_disjoint_p,
   12982 	lbitset_op3_cmp, lbitset_and_cmp, lbitset_andn_cmp, lbitset_or_cmp,
   12983 	lbitset_xor_cmp): Likewise.
   12984 	* lib/bbitset.h: Include <stdbool.h>.
   12985 	(struct bitset_vtable): The following members now return bool, not
   12986 	int: toggle, test, empty_p, disjoint_p, equal_p, subset_p,
   12987 	and_cmp, andn_cmp, or_cmp, xor_cmp, and_or_cmp, andn_or_cmp,
   12988 	or_and_cmp).
   12989 	* src/conflicts.c (count_rr_conflicts): Likewise.
   12990 	* lib/bitset_stats.h (bitset_stats_enabled): Now bool, not int.
   12991 	All uses changed.
   12992 	* lib/ebitset.c (ebitset_obstack_init): Likewise.
   12993 	* lib/lbitset.c (lbitset_obstack_init): Likewise.
   12994 	* src/getargs.c (debug_flag, defines_flag, locations_flag,
   12995 	no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
   12996 	graph_flag): Likewise.
   12997 	* src/getargs.h (debug_flag, defines_flag, locations_flag,
   12998 	no_lines_flag, no_parser_flag, token_table_flag, yacc_flag,
   12999 	graph_flag): Likewise.
   13000 	* src/output.c (error_verbose): Likewise.
   13001 	* src/output.h (error_verbose): Likewise.
   13002 	* src/reader.c (start_flag, typed): Likewise.
   13003 	* src/reader.h (typed): Likewise.
   13004 	* src/getargs.c (LOCATIONS_OPTION): New constant.
   13005 	(long_options, getargs): Use it.
   13006 	* src/lalr.c (build_relations): Use bool, not int.
   13007 	* src/nullable.c (nullable_compute): Likewise.
   13008 	* src/print.c (print_reductions): Likewise.
   13009 	* src/tables.c (action_row, pack_vector): Likewise.
   13010 	* src/muscle_tab.h (MUSCLE_INSERT_BOOL): New macro.
   13011 	* src/output.c (prepare): Use it.
   13012 	* src/output.c (token_definitions_output,
   13013 	symbol_destructors_output, symbol_destructors_output): Use string,
   13014 	not boolean integer, to keep track of whether to output separator.
   13015 	* src/print_graph.c (print_core): Likewise.
   13016 	* src/state.c (state_rule_lookaheads_print): Likewise.
   13017 
   13018 	* config/install-sh: Sync from automake 1.7.5.
   13019 
   13020 2003-05-14  Paul Eggert  <eggert (a] twinsun.com>
   13021 
   13022 	* src/parse-gram.y (rules_or_grammar_declaration): Require a
   13023 	semicolon after a grammar declaration, in the interest of possible
   13024 	future changes to the Bison input language.
   13025 	Do not allow a stray semicolon at the start of the grammar.
   13026 	(rhses.1): Allow one or more semicolons after any rule, including
   13027 	just before "|" as required by POSIX.
   13028 	* tests/input.at (Torturing the Scanner): Add tests for ";|" in a
   13029 	grammar.
   13030 
   13031 2003-05-14  Alexandre Duret-Lutz  <adl (a] gnu.org>
   13032 
   13033 	%parse-param support for lalr1.cc.
   13034 
   13035 	* data/lalr1.cc (b4_parse_param_decl, b4_parse_param_cons,
   13036 	b4_cc_constructor_calls, b4_cc_constructor_call,
   13037 	b4_parse_param_vars, b4_cc_var_decls, b4_cc_var_decl): New m4
   13038 	definitions.
   13039 	(yy::b4_parser_class_name::b4_parser_class_name): Take extra
   13040 	parse-param arguments.
   13041 	(yy::b4_parser_class_name): Declare instance variables to
   13042 	hold parse-param arguments.
   13043 	* tests/calc.at: s/value/semantic_value/ because value clashes
   13044 	with a member of yy::b4_parser_class_name.  Adjust C++ code
   13045 	to handle %parse-param.  Enable %parse-param test in C++.
   13046 
   13047 2003-05-12  Paul Eggert  <eggert (a] twinsun.com>
   13048 
   13049 	* doc/bison.texinfo (How Can I Reset @code{yyparse}): Reword the
   13050 	English a bit.  Fix fclose typo.  Change "const char" to "char
   13051 	const", and use ANSI C rather than K&R for "main".  Suggest
   13052 	YY_FLUSH_BUFFER over yyrestart (as that is what Flex recommends)
   13053 	and suggest yy_switch_to_buffer.
   13054 
   13055 2003-05-05  Paul Eggert  <eggert (a] twinsun.com>
   13056 
   13057 	* lib/bitset.h (__INT_TO_PTR): Define to a value that presumes
   13058 	C89.  This avoids a diagnostic on compilers that define __STDC__
   13059 	to 0, fixing a problem with Tru64 cc reported by Martin Mokrejs in
   13060 	<http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
   13061 
   13062 2003-05-03  Paul Eggert  <eggert (a] twinsun.com>
   13063 
   13064 	* lib/bitset.h (BITSET_FOR_EACH, BITSET_FOR_EACH_REVERSE):
   13065 	Do not overrun array bounds.
   13066 	This should fix a bug reported today by Olatunji Oluwabukunmi in
   13067 	<http://lists.gnu.org/archive/html/bug-bison/2003-05/msg00004.html>.
   13068 
   13069 2003-04-29  Akim Demaille  <akim (a] epita.fr>
   13070 
   13071 	* src/gram.h, src/gram.c (pure_parser, glr_parser): Move to...
   13072 	* src/getargs.c, src/getargs.h: here, as bool, not int.
   13073 	(nondeterministic_parser): New.
   13074 	* src/parse-gram.y, src/scan-gram.l: Support
   13075 	%nondeterministic-parser.
   13076 	* src/output.c (prepare): Use nondeterministic_parser instead
   13077 	of glr_parser where appropriate.
   13078 	* src/tables.c (conflict_row, action_row, save_row)
   13079 	(token_actions, token_actions, pack_vector): Ditto.
   13080 
   13081 2003-04-29  Akim Demaille  <akim (a] epita.fr>
   13082 
   13083 	* doc/bison.texinfo (C++ Parsers, Implementing Loops): New.
   13084 
   13085 2003-04-29  Akim Demaille  <akim (a] epita.fr>
   13086 
   13087 	* tests/calc.at: Also test yacc.c and glr.c (but not lalr1.cc yet)
   13088 	with %pure-parser and %locations to exercise the patch from Yakov
   13089 	Markovitch below.
   13090 
   13091 2003-04-28  Tim Van Holder <tim.van.holder (a] pandora.be>
   13092 
   13093 	* data/yacc.c: (b4_lex_param): Corrected for the case where
   13094 	%lex-param is provided and %pure-parser isn't.
   13095 
   13096 2003-04-27  Paul Eggert  <eggert (a] twinsun.com>
   13097 
   13098 	Avoid gcc -Wundef warnings reported by Gerald Pfeifer in
   13099 	<http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00044.html>.
   13100 	* data/yacc.c (YYSTACK_ALLOC): Don't evaluate YYSTACK_USE_ALLOCA
   13101 	if it is not defined.
   13102 	(YYMAXDEPTH): Don't evaluate YYMAXDEPTH if it is not defined.
   13103 
   13104 2003-04-26  Paul Eggert  <eggert (a] twinsun.com>
   13105 
   13106 	* data/lalr1.cc (yy::Parser::pact_ninf_, yy::Parser::table_ninf_):
   13107 	Declare to be of type suitable for the ninf value itself, not of
   13108 	type suitable for the corresponding table, since the latter might
   13109 	be unsigned but the ninf value might be negative.  This fixes a
   13110 	bug reported by Alexandre Duret-Lutz in
   13111 	<http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00017.html>.
   13112 
   13113 	* configure.ac (AC_FUNC_ERROR_AT_LINE): Remove, since gl_ERROR
   13114 	invokes it.  We shouldn't invoke it twice because it will attempt
   13115 	to put error.o in the archive twice.  This fixes a glitch reported
   13116 	by Martin Mokrejs in
   13117 	<http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00041.html>.
   13118 
   13119 2003-04-21  Paul Eggert  <eggert (a] twinsun.com>
   13120 
   13121 	* m4/error.m4: Update from Bruno Haible's 2003-04-14 patch
   13122 	to gnulib.
   13123 
   13124 2003-04-21  Yakov Markovitch <Markovitch (a] iso.ru>
   13125 
   13126 	* data/glr.c (yyexpandGLRStack) [!YYSTACKEXPANDABLE]:
   13127 	Fix obvious typo that results in uncompilable GLR parsers
   13128 	when both %pure-parser and %locations are used.  (trivial change)
   13129 
   13130 2003-04-17  Paul Eggert  <eggert (a] twinsun.com>
   13131 
   13132 	* src/scan-gram.l: Add %option nounput, since we no longer use unput.
   13133 	(unexpected_eof): Renamed from unexpected_end_of_file, for brevity.
   13134 	Do not insert the expected token via unput, as this runs afoul
   13135 	of a POSIX-compatibility bug in flex 2.5.31.
   13136 	All uses changed to BEGIN the parent state,
   13137 	since we no longer insert the expected token via unput.
   13138 	* tests/regression.at (Invalid inputs): Remove cascaded diagnostic
   13139 	that is no longer emitted after the above change.
   13140 
   13141 	* src/conflicts.c (set_conflicts): Resolve all conflicts, not just
   13142 	the first one.  This change is from Paul Hilfinger, and it fixes
   13143 	regression reported by Werner Lemberg in
   13144 	<http://lists.gnu.org/archive/html/bug-bison/2003-04/msg00026.html>.
   13145 
   13146 	(resolve_sr_conflict): Don't invoke state_errs_set
   13147 	unless one or more tokens have been explicitly made errors.
   13148 	Otherwise, the above change causes Bison to abort.
   13149 
   13150 	* tests/existing.at (GNU pic Grammar): New test case, taken from
   13151 	Lemberg's email.
   13152 
   13153 2003-03-31  Akim Demaille  <akim (a] epita.fr>
   13154 
   13155 	* doc/Makefile.am (AM_MAKEINFOFLAGS): Don't split the info file.
   13156 
   13157 2003-03-31  Akim Demaille  <akim (a] epita.fr>
   13158 
   13159 	* src/output.c (prepare_symbols): Avoid trailing spaces in the
   13160 	output.
   13161 
   13162 2003-03-31  Akim Demaille  <akim (a] epita.fr>
   13163 
   13164 	* doc/bison.texinfo (Strings are Destroyed): s/losses/loses/.
   13165 	From Paul Hilfinger.
   13166 
   13167 2003-03-29  Akim Demaille  <akim (a] epita.fr>
   13168 
   13169 	* m4/error.m4: Do not put under dynamic conditions some code which
   13170 	expansion is under static control.
   13171 
   13172 2003-03-29  Akim Demaille  <akim (a] epita.fr>
   13173 
   13174 	* doc/bison.texinfo (How Can I Reset @code{yyparse}): New.
   13175 
   13176 2003-03-29  Akim Demaille  <akim (a] epita.fr>
   13177 
   13178 	* doc/bison.texinfo (Strings are Destroyed): New.
   13179 
   13180 2003-03-13  Paul Eggert  <eggert (a] twinsun.com>
   13181 
   13182 	* .cvsignore: Add configure.lineno.
   13183 	* src/.cvsignore: Add yacc.
   13184 	* tests/.cvsignore: Add testsuite.log.
   13185 	* doc/fdl.texi: Sync with latest FSF version.
   13186 
   13187 2003-03-12  Paul Eggert  <eggert (a] twinsun.com>
   13188 
   13189 	* scan-gram.l (YY_USER_INIT): Initialize code_start, too.
   13190 	(<INITIAL><<EOF>>, <SC_PRE_CODE><<EOF>>): Set *loc to the scanner
   13191 	cursor, instead of leaving it undefined.  This fixes a bug
   13192 	reported by Tim Van Holder in
   13193 	<http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00023.html>.
   13194 	* tests/input.at (Torturing the Scanner): Test the scanner on
   13195 	an empty input file, which was Tim Van Holder's test case.
   13196 
   13197 	* m4/timevar.m4 (BISON_PREREQ_TIMEVAR): When checking whether
   13198 	<sys/resource.h> can be included, include sys/time.h and
   13199 	sys/times.h first, if available.  This works around the SunOS
   13200 	4.1.4 porting bug reported by Bruce Becker in
   13201 	<http://lists.gnu.org/archive/html/bug-bison/2003-03/msg00018.html>.
   13202 
   13203 	* m4/subpipe.m4 (BISON_PREREQ_SUBPIPE): Don't
   13204 	AC_CHECK_HEADERS([sys/wait.h]), as this interferes with
   13205 	AC_HEADER_SYS_WAIT.
   13206 
   13207 	Merge changes from gnulib.  This was prompted because the CVS
   13208 	snapshot didn't build on Solaris 7 due to strnlen problems.
   13209 
   13210 	These changes need to be merged back into gnulib:
   13211 	* lib/hash.c: Include <stdbool.h> unconditionally.
   13212 	* m4/onceonly.m4 (m4_quote): New macro.
   13213 	(AC_CHECK_HEADERS_ONCE, AC_CHECK_FUNCS_ONCE, AC_CHECK_DECLS_ONCE):
   13214 	Quote AC_FOREACH variable-expansions properly.
   13215 	The 2003-01-03 obstack.h change also needs merging.
   13216 	{end of changes requiring merging}
   13217 
   13218 	* lib/stdbool.h.in, m4/alloca.m4, m4/dirname.m4, m4/dos.m4,
   13219 	m4/getopt.m4, m4/hash.m4, m4/malloc.m4, m4/memchr.m4,
   13220 	m4/memrchr.m4, m4/obstack.m4, m4/onceonly.m4, m4/quote.m4,
   13221 	m4/quotearg.m4, m4/realloc.m4, m4/stpcpy.m4, m4/strnlen.m4,
   13222 	m4/strtol.m4, m4/strtoul.m4, m4/unlocked-io.m4, m4/xalloc.m4:
   13223 	New files, imported from gnulib.
   13224 	* m4/Makefile.am (EXTRA_DIST): Add the new m4/*.m4 files mentioned
   13225 	above.
   13226 
   13227 	* lib/mbswidth.c, m4/error.m4, m4/mbrtowc.m4, m4/mbswidth.m4,
   13228 	m4/memcmp.m4, m4/prereq.m4, m4/stdbool.m4: Update to current
   13229 	gnulib sources.
   13230 
   13231 	* configure.ac (gl_DIRNAME, gl_GETOPT, gl_HASH, gl_QUOTE, gl_XALLOC):
   13232 	Add.
   13233 	(gl_ERROR): New, replacing jm_PREREQ_ERROR.
   13234 	(gl_FUNC_ALLOCA): New, replacing AC_FUNC_ALLOCA.
   13235 	(gl_FUNC_STPCPY): New, replacing AC_REPLACE_FUNCS(stpcpy).
   13236 	(gl_FUNC_STRNLEN): New, replacing AC_FUNC_STRNLEN.
   13237 	(gl_MBSWIDTH): New, replacing jm_PREREQ_MBSWIDTH.
   13238 	(gl_OBSTACK): New, replacing AC_FUNC_OBSTACK.
   13239 	(gl_QUOTEARG): New, replacing jm_PREREQ_QUOTEARG.
   13240 	(jm_FUNC_GLIBC_UNLOCKED_IO, gl_FUNC_STPCPY, gl_FUNC_STRTOL): New.
   13241 	(jm_FUNC_MALLOC): New, replacing AC_FUNC_MALLOC.
   13242 	(jm_FUNC_REALLOC): New, replacing AC_FUNC_REALLOC.
   13243 	(jm_PREREQ_ARGMATCH): Remove.
   13244 	(AC_REPLACE_FUNCS): Remove memchr, memrchr, stpcpy, strtol, strtoul.
   13245 	* lib/Makefile.am (libbison_a_SOURCES): Add argmatch.c, argmatch.h.
   13246 
   13247 	* src/system.h: Include <stdbool.h> unconditionally.
   13248 
   13249 	* lib/bbitset.h: Include <limits.h> unconditionally.  We have been
   13250 	assuming at least C89 in the bitset code for some time now.
   13251 
   13252 2003-03-03  Akim Demaille  <akim (a] epita.fr>
   13253 
   13254 	* ro.po: New.
   13255 
   13256 2003-03-02  Akim Demaille  <akim (a] epita.fr>
   13257 
   13258 	* doc/bison.texinfo (Table of Symbols): Reactivate the
   13259 	documentation for %lex-param, and %parse-param.
   13260 
   13261 2003-03-02  Akim Demaille  <akim (a] epita.fr>
   13262 
   13263 	* data/yacc.c, data/glr.c, data/lal1.cc: Use similar code to
   13264 	generate verbose error messages.
   13265 	Use the number of tokens as an upper bound in yytname, as it
   13266 	cannot be a non terminal.
   13267 
   13268 2003-03-02  Akim Demaille  <akim (a] epita.fr>
   13269 
   13270 	* tests/regression.at (_AT_DATA_DANCER_Y): Fix the expected error
   13271 	message.
   13272 
   13273 2003-03-02  Akim Demaille  <akim (a] epita.fr>
   13274 
   13275 	* tests/regression.at (_AT_DATA_DANCER_Y, AT_CHECK_DANCER): New.
   13276 	Use them to exercise yycheck overrun.
   13277 	Based on Andrew Suffield's grammar.
   13278 
   13279 2003-03-02  Akim Demaille  <akim (a] epita.fr>
   13280 
   13281 	Create tests/local.at for Bison generic testing macros.
   13282 
   13283 	* tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Move to...
   13284 	* tests/local.at (AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS):
   13285 	This new file.
   13286 	* tests/calc.at (AT_CHECK_CALC): Adjust.
   13287 	* tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR)
   13288 	(AT_COMPILE, AT_COMPILE_CXX, AT_PARSER_CHECK): Move to...
   13289 	* tests/local.at: here.
   13290 	(AT_COMPILE_CXX): Tags the tests using it as c++.
   13291 	Ignore the test if CXX is not functional.
   13292 
   13293 2003-03-01  Paul Eggert  <eggert (a] twinsun.com>
   13294 
   13295 	* src/scan-gram.l (code_start): Initialize it to scanner_cursor,
   13296 	not loc->end, since loc->end might contain garbage and this leads
   13297 	to undefined behavior on some platforms.
   13298 	(id_loc, token_start): Use (IF_LINTed) initial values that do not
   13299 	depend on *loc, so that the reader doesn't give the the false
   13300 	impression that *loc is initialized.
   13301 	(<INITIAL>"%%"): Do not bother setting code_start, since its value
   13302 	does not survive the return.
   13303 
   13304 2003-03-01  Akim Demaille  <akim (a] epita.fr>
   13305 
   13306 	* src/scan-gram.l (code_start): Always initialize it when entering
   13307 	into yylex, as SC_EPILOGUE is activated *before* the corresponding
   13308 	yylex invocation.  An alternative would be making it static, but
   13309 	then it starts with the second %%'s beginning, instead of its end.
   13310 
   13311 2003-02-28  Paul Eggert  <eggert (a] twinsun.com>
   13312 
   13313 	* lib/mbswidth.c: Include <wchar.h> before "mbswidth.h", to work
   13314 	around a UnixWare 7.1.1 porting bug reported by John Hughes in
   13315 	<http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00030.html>.
   13316 
   13317 2003-02-26  Paul Eggert  <eggert (a] twinsun.com>
   13318 
   13319 	* README: Mention compiler bug in Sun Forte Developer 6 update 2.
   13320 	Remove Sequent/Pyramid discussion (nobody uses them any more).
   13321 	Merge VMS and MS-DOS discussion; these ports may well be dead
   13322 	but let's keep mentioning them for now.  Put <> around email
   13323 	addresses.  Add copyright notice.
   13324 
   13325 2003-02-24  Paul Eggert  <eggert (a] twinsun.com>
   13326 
   13327 	* data/glr.c (yy_reduce_print): yylineno -> yylno,
   13328 	to avoid collision with flex use of yylineno.
   13329 	Problem reported by Bruce Lilly in
   13330 	<http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00016.html>.
   13331 	* data/lalr1.cc (yy::]b4_parser_class_name[::parse): Likewise.
   13332 	* data/yacc.c (yy_reduce_print): Likewise.
   13333 
   13334 	* config/depcomp: Sync with Automake 1.7.3.
   13335 
   13336 2003-02-21  Akim Demaille  <akim (a] epita.fr>
   13337 
   13338 	* data/lalr1.cc: Use temporary variables instead of casts to
   13339 	change integer types.
   13340 	Suggested by Paul Eggert.
   13341 
   13342 2003-02-21  Akim Demaille  <akim (a] epita.fr>
   13343 
   13344 	* doc/bison.texinfo: Use "location" consistently to refer to @n,
   13345 	to avoid confusions with lalr1.cc's notion of Position.
   13346 	Suggested by Paul Eggert.
   13347 
   13348 2003-02-20  Akim Demaille  <akim (a] epita.fr>
   13349 
   13350 	* data/lalr1.cc (position.hh): Make sure "columns" never pushes
   13351 	before initial_columns.
   13352 	(location.hh): Use consistent variable names when defining the
   13353 	operator<<.
   13354 	Use "last" so that we subtract from Positions, not from unsigned.
   13355 
   13356 2003-02-20  Akim Demaille  <akim (a] epita.fr>
   13357 
   13358 	* data/lalr1.cc (position.hh): New subfile, including the extended
   13359 	and Doxygen'ed documentation of class Position.
   13360 	(location.hh): Use it.
   13361 	Document a` la Doxygen.
   13362 	With the help of Benoit Perrot.
   13363 
   13364 2003-02-20  Akim Demaille  <akim (a] epita.fr>
   13365 
   13366 	* tests/calc.at (AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): Define
   13367 	AT_YACC_IF.
   13368 	Redefine AT_YYERROR_SEES_LOC_IF using it.
   13369 	(_AT_DATA_CALC_Y): Don't declare yyerror when lalr1.cc, as it is
   13370 	not defined.
   13371 	Don't use the location in yy::Parser::error_ and
   13372 	yy::Parser::print_ when not %locations.
   13373 	Activate more lalr1.cc tests.
   13374 
   13375 2003-02-19  Akim Demaille  <akim (a] epita.fr>
   13376 
   13377 	* data/lalr1.cc: When displaying a line number, be sure to make it
   13378 	an int.
   13379 
   13380 2003-02-19  Akim Demaille  <akim (a] epita.fr>
   13381 
   13382 	* data/lalr1.cc (b4_stack_depth_init, yy::Parser::initdepth_):
   13383 	Remove, useless.
   13384 	(YYABORT, YYACCEPT, YYERROR): New.
   13385 	* tests/calc.at: Renable the lalr1.cc test.
   13386 
   13387 2003-02-19  Akim Demaille  <akim (a] epita.fr>
   13388 
   13389 	* tests/calc.at (AT_CHECK_CALC): Check different scenarios of
   13390 	error recovery, mixing with/without pops and discarding of the
   13391 	lookahead.
   13392 	Exercise YYERROR.
   13393 	Disable the lalr1.cc tests as currently it doesn't support YYERROR.
   13394 
   13395 2003-02-17  Paul Eggert  <eggert (a] twinsun.com>
   13396 
   13397 	* tests/atlocal.in (LDFLAGS, LIBS): New vars.
   13398 	* tests/testsuite.at (AT_COMPILE): Use them.
   13399 	This fixes the testsuite problem reported by Robert Lentz in
   13400 	<http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00011.html>.
   13401 
   13402 2003-02-12  Paul Eggert  <eggert (a] twinsun.com>
   13403 
   13404 	* data/yacc.c (yyerrlab) [YYERROR_VERBOSE]:
   13405 	Avoid subscript error in yycheck.  Bug reported by Andrew Suffield in
   13406 	<http://lists.gnu.org/archive/html/bug-bison/2003-02/msg00003.html>.
   13407 	* data/glr.c (yyreportSyntaxError) [YYERROR_VERBOSE]: Likewise.
   13408 	Check for malloc failure, for consistency with yacc.c.
   13409 	(yytname_size): Remove, for consistency with yacc.c.
   13410 
   13411 	The bug still remains in data/lalr1.cc, as I didn't have time
   13412 	to fix it there.
   13413 
   13414 2003-02-06  Akim Demaille  <akim (a] epita.fr>
   13415 
   13416 	* configure.ac (GXX): Rename as...
   13417 	(CXX): this, to keep the original Autoconf semantics.
   13418 	Require 2.57.
   13419 	* data/lalr1.cc: Fix b4_copyright invocations.
   13420 	If YYDEBUG is not defined, don't depend upon name_ being defined.
   13421 	(location.hh): Include string and iostream.
   13422 	(Position::filename): New member.
   13423 	(Position::Position ()): New.
   13424 	(operator<< (Position)): New.
   13425 	(operator- (Position, int)): New.
   13426 	(Location::first, Location::last): Rename as...
   13427 	(Location::begin, Location::end): these, to mock the conventional
   13428 	iterator names.
   13429 	(operator<< (Location)): New.
   13430 	* tests/atlocal.in (CXX): New.
   13431 	* tests/testsuite.at (AT_COMPILE_CXX): New.
   13432 	* tests/calc.at (_AT_DATA_CALC_Y): Adjust yyerror to report the
   13433 	locations in a more synthetic way.
   13434 	(AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF is positive if
   13435 	lalr1.cc is used.
   13436 	Adjust the C locations to match those from Emacs: first column is
   13437 	column 0.
   13438 	Change all the expected results.
   13439 	Conform to the GCS: simplify the locations when applicable.
   13440 	(LOC, VAL, YYLLOC_FORMAL, YYLLOC_ARG, USE_YYLLOC, LEX_FORMALS)
   13441 	(LEX_ARGS, USE_LEX_ARGS, LEX_PRE_FORMALS, LEX_PRE_ARGS): Replace
   13442 	these CPP macros with the m4 macros new defined by...
   13443 	(AT_CHECK_PUSHDEFS): this, i.e.:
   13444 	(AT_LALR1_CC_IF, AT_PURE_LEX_IF, AT_LOC, AT_VAL, AT_LEX_FORMALS)
   13445 	(AT_LEX_ARGS, AT_USE_LEX_ARGS, AT_LEX_PRE_FORMALS, AT_LEX_PRE_ARGS)
   13446 	New macros.
   13447 	(AT_CHECK_POPDEFS): Undefine them.
   13448 	(AT_CHECK_CALC_LALR1_CC): New.
   13449 	Use it for the first lalr1.cc test.
   13450 
   13451 2003-02-04  Akim Demaille  <akim (a] epita.fr>
   13452 
   13453 	* data/lalr1.cc (YYLLOC_DEFAULT): Fix its definition: be based on
   13454 	Location as is defined.
   13455 
   13456 2003-02-04  Akim Demaille  <akim (a] epita.fr>
   13457 
   13458 	* data/lalr1.cc: If YYDEBUG is not defined, don't depend upon
   13459 	name_ being defined.
   13460 
   13461 2003-02-03  Paul Eggert  <eggert (a] twinsun.com>
   13462 
   13463 	* src/gram.h (start_symbol): Remove unused decl.
   13464 
   13465 	Use more-consistent naming conventions for local vars.
   13466 
   13467 	* src/derives.c (derives_compute): Change type of local var from
   13468 	int to rule_number.
   13469 	* src/gram.c (grammar_rules_partial_print): Likewise.
   13470 	* src/print.c (print_core): Likewise.
   13471 	* src/reduce.c (reduce_grammar_tables): Likewise.
   13472 
   13473 	* src/gram.c (grammar_dump): Change name of item_number *
   13474 	local var from r to rp.
   13475 	* src/nullable.c (nullable_compute): Likewise.
   13476 
   13477 	* src/gram.h (ISTOKEN, ISVAR): Use i, not s, for int var.
   13478 
   13479 	* src/gram.h (symbol_number_as_item_number): Use sym, not s,
   13480 	for symbol or symbol_number var.
   13481 	* src/reader.c (grammar_start_symbol_set): Likewise.
   13482 	* src/reader.h (grammar_start_symbol_set, grammar_symbol_append):
   13483 	Likewise.
   13484 	* src/state.c (transitions_to): Likewise.
   13485 	* src/state.h: Likewise.
   13486 	* src/tables.c (symbol_number_to_vector_number): Likewise.
   13487 
   13488 	* src/muscle_tab.h (MUSCLE_OBSTACK_SGROW): Use p, not s, for
   13489 	char * var.
   13490 
   13491 	* src/parse-gram.y (lloc_default): Use loc, not r, for YYLTYPE
   13492 	var.
   13493 
   13494 	* src/scan-gram.l (no_cr_read): Use bytes_read, not s, for size
   13495 	var.
   13496 
   13497 	* src/system.h (xstrndup, strchr, strspn, strnlen, memchr, memrchr):
   13498 	Use str, not s, for char * var.  Use ch, not c, for character var.
   13499 	Use size for size var.
   13500 
   13501 	* src/uniqstr.c (uniqstr_new, uniqstr_assert): Use str, not s, for
   13502 	char * var.
   13503 	(uniqstr_print, uniqst_print_processor): Use ustr, not s, for
   13504 	uniqstr var.
   13505 	* src/uniqstr.h: Likewise.
   13506 
   13507 	* src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
   13508 	get_layoutalgorithm_str, get_decision_str, get_orientation_str,
   13509 	get_node_alignment_str, get_arrow_mode_str, get_crossing_type_str,
   13510 	get_view_str, get_linestyle_str, get_arrowstyle_str): Rename
   13511 	param to have same name as that of enum, so that we don't use
   13512 	"s" to stand for a non-state.
   13513 
   13514 2003-02-02  Akim Demaille  <akim (a] epita.fr>
   13515 
   13516 	* src/scan-skel.l: Scan more than one inert character per yylex
   13517 	invocation.
   13518 
   13519 2003-02-01  Paul Eggert  <eggert (a] twinsun.com>
   13520 
   13521 	Version 1.875a.
   13522 
   13523 	* po/LINGUAS: Add ms.
   13524 
   13525 2003-01-30  Akim Demaille  <akim (a] epita.fr>
   13526 
   13527 	* doc/Makefile.am (CLEANFILES): Add bison.fns for distcheck.
   13528 
   13529 2003-01-29  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   13530 
   13531 	* tests/cxx-type.at: Correct apparent typo in Bison input: $$ instead
   13532 	of $1.
   13533 
   13534 	Changes in response to error report by S. Eken: GLR mode does not
   13535 	handle negative $ indices or $ indices in embedded rules correctly.
   13536 	See <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00076.html>.
   13537 
   13538 	* data/glr.c (b4_rhs_value): Change to use YYFILL macro.
   13539 	(b4_rhs_location): Ditto.
   13540 	(yyfill): New function to copy from stack tree into array
   13541 	incrementally.
   13542 	(yyuserAction): Modify to allow incremental move of semantic values
   13543 	to rhs array when in GLR mode.
   13544 	Define YYFILL to use in user-defined actions to fill semantic array
   13545 	as needed.
   13546 	Remove dummy use of yystack, as there is now a guaranteed use.
   13547 	(yydoAction): Modify to allow incremental move of semantic values
   13548 	to rhs array when in GLR mode.
   13549 	(yyresolveAction): Ditto.
   13550 	(yyglrShiftDefer): Update comment.
   13551 	(yyresolveStates): Use X == NULL for pointers, not !X.
   13552 	(yyglrReduce): Ditto.
   13553 	(yydoAction): Ditto
   13554 
   13555 	* tests/glr-regr1.at: Rename to ...
   13556 	* tests/glr-regression.at: Add new regression test for the problems
   13557 	described above (adapted from S. Eken).
   13558 	Update copyright notice.
   13559 	* tests/testsuite.at: Rename glr-regr1.at to glr-regression.at.
   13560 	* tests/Makefile.am: Ditto.
   13561 
   13562 2003-01-28  Paul Eggert  <eggert (a] twinsun.com>
   13563 
   13564 	* data/lalr1.cc: Do not use @output_header_name@ unless
   13565 	b4_defines_flag is set.  This fixes two bugs reported by
   13566 	Tim Van Holder in
   13567 	<http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00071.html>
   13568 	and <http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00073.html>.
   13569 
   13570 2003-01-21  Paul Eggert  <eggert (a] twinsun.com>
   13571 
   13572 	* data/yacc.c (YYERROR): Move code from yyerrlab1 to here, so that
   13573 	we don't need to worry about yyerrlab1 being reported as an
   13574 	"unused label" by non-GCC C compilers.  The downside is that if
   13575 	locations are used then a couple of statements are duplicated each
   13576 	time YYERROR is invoked, but the upside is that the warnings
   13577 	should vanish.
   13578 	(yyerrlab1): Move code to YERROR.
   13579 	(yyerrlab2): Remove.  Change uses back to yyerrlab1.
   13580 	This reverts some of the 2002-12-27 change.
   13581 
   13582 2003-01-17  Paul Eggert  <eggert (a] twinsun.com>
   13583 
   13584 	* src/output.c (symbol_printers_output): Fix typo that led
   13585 	to core dump.  Problem reported by Antonio Rus in
   13586 	<http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00058.html>.
   13587 
   13588 2003-01-13  Akim Demaille  <akim (a] epita.fr>,
   13589 		Quoc Peyrot <chojin (a] lrde.epita.fr>,
   13590 		Robert Anisko <anisko_r (a] lrde.epita.fr>
   13591 
   13592 	* data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
   13593 	when the stacks contain one element, as the loop would otherwise
   13594 	free the last state, and then use the top state (the one we just
   13595 	popped).  This means that the initial elements will not be freed
   13596 	explicitly, as is the case in yacc.c; it is not a problem, as
   13597 	these elements have fake values.
   13598 
   13599 2003-01-11  Paul Eggert  <eggert (a] twinsun.com>
   13600 
   13601 	* NEWS: %expect-violations are now just warnings, reverting
   13602 	to Bison 1.30 and 1.75 behavior.  This fixes the GCC 3.2
   13603 	bootstrapping problem reported by Matthias Klose; see
   13604 	<http://lists.gnu.org/archive/html/bug-bison/2003-01/msg00053.html>.
   13605 	* src/conflicts.c (conflicts_print): Likewise.
   13606 	* tests/conflicts.at (%expect not enough, %expect too much,
   13607 	%expect with reduce conflicts): Likewise.
   13608 	* doc/bison.texinfo (Expect Decl): Document this.  Also mention
   13609 	that the warning is enabled if the number of conflicts changes
   13610 	(not necessarily increases).
   13611 
   13612 	* src/getargs.c (version): Update copyright year.
   13613 
   13614 2003-01-09  Akim Demaille  <akim (a] epita.fr>
   13615 
   13616 	* src/Makefile.am, lib/Makefile.am: Use $(VAR) instead of @VAR@.
   13617 
   13618 2003-01-08  Paul Eggert  <eggert (a] twinsun.com>
   13619 
   13620 	* Makefile.maint (WGETFLAGS):
   13621 	New macro, containing "-C off" to disable proxy caches.
   13622 	All uses of $(WGET) changed to $(WGET) $(WGETFLAGS).
   13623 	(rel-check): Use $(WGET) instead of wget.
   13624 
   13625 2003-01-06  Paul Eggert  <eggert (a] twinsun.com>
   13626 
   13627 	* doc/bison.texinfo (Generalized LR Parsing): Add a reference to
   13628 	the GLR paper of Scott, Johnstone and Hussain.
   13629 
   13630 2003-01-04  Paul Eggert  <eggert (a] twinsun.com>
   13631 
   13632 	* configure.ac (AC_ARG_ENABLE): Add --disable-yacc.
   13633 	(YACC_SCRIPT, YACC_LIBRARY): New vars to AC_SUBST.
   13634 	* lib/Makefile.am (lib_LIBRARIES): liby.a -> @YACC_LIBRARY@.
   13635 	(EXTRA_LIBRARIES): New var, for liby.a.
   13636 	* src/Makefile.am (bin_SCRIPTS): yacc -> @YACC_SCRIPT@.
   13637 	(EXTRA_SCRIPTS): New var, for yacc.
   13638 
   13639 	* data/yacc.c (yyerrlab1): Omit attribute if __cplusplus is defined,
   13640 	since GNU C++ (as of 3.2.1) does not allow attributes on labels.
   13641 	Problem reported by Nelson H. F. Beebe.
   13642 
   13643 2003-01-03  Paul Eggert  <eggert (a] twinsun.com>
   13644 
   13645 	* lib/obstack.h (__INT_TO_PTR) [__STDC__]: Cast result to
   13646 	(void *) to avoid diagnostic with native c89 on SGI IRIX 6.5
   13647 	when compiling Bison 1.875's `bitset bset = obstack_alloc
   13648 	(bobstack, bytes);'.  Problem reported by Nelson H. F. Beebe.
   13649 
   13650 	* src/scan-skel.l (QPUTS): Omit redundant `;' from macro definition.
   13651 	([^@\n]): Renamed from [^@\n]+ so that the token buffer does not
   13652 	grow to a huge size with typical invocation.
   13653 
   13654 	* lib/hash.c (_Bool, bool, false, true, __bool_true_false_are_defined):
   13655 	Use the pattern recommended by Autoconf 2.57, except also protect
   13656 	against double-definition.
   13657 	* src/system.h: Likewise.
   13658 	Portability issues reported by Nelson H. F. Beebe.
   13659 
   13660 	* data/glr.c (yybool): Renamed from bool, to avoid collisions in C.
   13661 	All uses changed.  Provide a definition in both C and C++.
   13662 	(yytrue, yyfalse): Define even if defined (__cplusplus).
   13663 
   13664 	* lib/bitset_stats.c (bitset_stats_list): Remove unused var.
   13665 	Reported by Nelson H. F. Beebe.
   13666 
   13667 	* src/scan-skel.l ("@oline@"): Output lineno+1, not lineno.
   13668 
   13669 2003-01-02  Paul Eggert  <eggert (a] twinsun.com>
   13670 
   13671 	* data/yacc.c (yyerrlab1): Append `;' after attribute, to
   13672 	pacify the buggy "smart preprocessor" in MacOS 10.2.3.
   13673 	Bug reported by Nelson H. F. Beebe.
   13674 
   13675 2003-01-01  Paul Eggert  <eggert (a] twinsun.com>
   13676 
   13677 	* Version 1.875.
   13678 
   13679 2002-12-30  Paul Eggert  <eggert (a] twinsun.com>
   13680 
   13681 	* src/scan-gram.l (<INITIAL,SC_AFTER_IDENTIFIER,SC_PRE_CODE>","):
   13682 	Moved here from...
   13683 	(<INITIAL>","): Here.  This causes stray "," to be treated
   13684 	more uniformly.
   13685 
   13686 	* src/scan-gram.l (<SC_BRACED_CODE>"}"): Output ";" before the
   13687 	last brace in braced code when not in Yacc mode, for compatibility
   13688 	with Bison 1.35.  This resurrects the 2001-12-15 patch to
   13689 	src/reader.c.
   13690 
   13691 	* src/reader.h (YYDECL): Use YYSTYPE, not its deprecated alias
   13692 	yystype.  This follows up the 2002-12-24 YYSTYPE bug fix.
   13693 
   13694 2002-12-28  Paul Eggert  <eggert (a] twinsun.com>
   13695 
   13696 	* src/symtab.c (symbol_make_alias): Set type of SYMVAL to be
   13697 	that of SYM's type.  This fixes Debian bug 168069, reported by
   13698 	Thomas Olsson.
   13699 
   13700 2002-12-28  Paul Eggert  <eggert (a] twinsun.com>
   13701 
   13702 	Version 1.75f.
   13703 
   13704 	Switch back to the Yacc style of conflict reports, undoing some
   13705 	of the 2002-07-30 change.
   13706 	* doc/bison.texinfo (Understanding): Use Yacc style for
   13707 	conflict reports.  Also, use new way of locating rules.
   13708 	* src/conflicts.c (conflict_report):
   13709 	Renamed from conflict_report_yacc, removing the old
   13710 	'conflict_report'.  Translate the entire conflict report at once,
   13711 	so that we don't assume that "," has the same interpretation in
   13712 	all languages.
   13713 	(conflicts_output): Use Yacc-style conflict report for each state,
   13714 	instead of our more-complicated style.
   13715 	(conflicts_print): Use Yacc-style conflict report, except print
   13716 	the input file name when not emulating Yacc.
   13717 	* tests/conflicts.at (Unresolved SR Conflicts, Defaulted
   13718 	Conflicted Reduction, %expect not enough, %expect too much,
   13719 	%expect with reduce conflicts): Switch to Yacc-style conflict reports.
   13720 	* tests/existing.at (GNU Cim Grammar): Likewise.
   13721 	* tests/glr-regr1.at (Badly Collapsed GLR States): Likewise.
   13722 
   13723 	* src/complain.c (warn_at, warn, complain_at, complain, fatal_at,
   13724 	fatal): Don't invoke fflush; it's not needed and it might even be
   13725 	harmful for stdout, as stdout might not be open.
   13726 	* src/reduce.c (reduce_print): Likewise.
   13727 
   13728 2002-12-27  Paul Eggert  <eggert (a] twinsun.com>
   13729 
   13730 	Fix a bug where error locations were not being recorded correctly.
   13731 	This problem was originally reported by Paul Hilfinger in
   13732 	<http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00086.html>.
   13733 
   13734 	* data/yacc.c (yyparse): New local var yylerrsp, to record the
   13735 	top of the location stack's error locations.
   13736 	(yyerrlab): Set it.  When discarding a token, push its location
   13737 	onto yylerrsp so that we don't lose track of the error's end.
   13738 	(yyerrlab1): Now is only the target of YYERROR, so that we can
   13739 	properly record the location of the action that failed.  For GCC
   13740 	2.93 and later, insert an __attribute__ ((__unused__)) to avoid
   13741 	GCC warning about yyerrlab1 being unused if YYERROR is unused.
   13742 	(yyerrlab2): New label, which yyerrlab now falls through to.
   13743 	Compute the error's location by applying YYLLOC_DEFAULT to
   13744 	the locations of all the symbols that went into the error.
   13745 	* doc/bison.texinfo (Location Default Action): Mention that
   13746 	YYLLOC_DEFAULT is also invoked for syntax errors.
   13747 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR):
   13748 	Error locations include the locations of all the tokens that were
   13749 	discarded, not just the last token.
   13750 
   13751 2002-12-26  Paul Eggert  <eggert (a] twinsun.com>
   13752 
   13753 	* src/files.c: Include quote.h.
   13754 	(compute_output_file_names): Warn if we detect conflicting
   13755 	outputs to the same file.  This should catch the misunderstanding
   13756 	exemplified by Debian Bug 165349, reported by Bruce Stephens..
   13757 
   13758 	* src/conflicts.c (conflicts_print): If the user specifies
   13759 	"%expect N", report an error if there are any reduce/reduce
   13760 	conflicts.  This is what the manual says should happen.
   13761 	This fixes Debian bug 130890, reported by Anthony DeRobertis.
   13762 	* tests/conflicts.at (%expect with reduce conflicts): New test.
   13763 
   13764 	Don't use m4_include on relative file names, as it doesn't work as
   13765 	desired if there happens to be a file with that name under ".".
   13766 
   13767 	* m4sugar/version.m4: Remove; it was included but it wasn't used.
   13768 	* data/Makefile.am (dist_m4sugar_DATA): Remove m4sugar/version.m4.
   13769 	* data/m4sugar/m4sugar.m4: Don't include m4sugar/version.m4.
   13770 	* data/glr.c, data/lalr1.cc, data/yacc.c: Don't include c.m4.
   13771 	* src/output.c (output_skeleton): Use full path names when
   13772 	specifying a file to include; don't rely on include path, as
   13773 	it's unreliable when the working file contains a file with
   13774 	that name.
   13775 
   13776 2002-12-25  Paul Eggert  <eggert (a] twinsun.com>
   13777 
   13778 	Remove obsolete references to bison.simple and bison.hairy.
   13779 	Problem mentioned by Aubin Mahe in
   13780 	<http://lists.gnu.org/archive/html/help-bison/2002-12/msg00010.html>.
   13781 	* data/glr.c: Comment fix.
   13782 	* doc/bison.1: Remove references.  Also, mention "yacc".
   13783 
   13784 	* src/getargs.c (getargs) [MSDOS]: Don't assume optarg != NULL
   13785 	with -g option.
   13786 
   13787 	* src/parse-gram.y (declaration): Use enum "report_states" rather
   13788 	than its numeric value 1.
   13789 
   13790 	* src/scan-skel.l ("@output ".*\n): Close any old yyout before
   13791 	opening a new one.  This fixes Debian bug 165349, reported by
   13792 	Bruce Stephens.
   13793 
   13794 2002-12-24  Paul Eggert  <eggert (a] twinsun.com>
   13795 
   13796 	Version 1.75e.
   13797 
   13798 	* Makefile.maint (cvs-update): Don't assume that the shell
   13799 	supports $(...), as Solaris sh doesn't.
   13800 
   13801 	* src/parse-gram.y (lloc_default): Remove test for empty
   13802 	nonterminals at the end, since it didn't change the result.
   13803 
   13804 2002-12-24  Paul Eggert  <eggert (a] twinsun.com>
   13805 
   13806 	If the user does not define YYSTYPE as a macro, Bison now declares it
   13807 	using typedef instead of defining it as a macro.  POSIX requires this.
   13808 	For consistency, YYLTYPE is also declared instead of defined.
   13809 
   13810 	%union directives can now have a tag before the `{', e.g., the
   13811 	directive `%union foo {...}' now generates the C code
   13812 	`typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
   13813 	The default union tag is `YYSTYPE', for compatibility with Solaris 9
   13814 	Yacc.  For consistency, YYLTYPE's struct tag is now `YYLTYPE'
   13815 	instead of `yyltype'.
   13816 
   13817 	`yystype' and `yyltype' are now obsolescent macros instead of being
   13818 	typedefs or tags; they are no longer documented and will be
   13819 	withdrawn in a future release.
   13820 
   13821 	* data/glr.c (b4_location_type): Remove.
   13822 	(YYSTYPE): Renamed from yystype.
   13823 	(YYSTYPE_IS_DECLARED): New macro, used to prevent double-typedef.
   13824 	(struct YYLTYPE): Renamed from struct yyltype.
   13825 	(YYLTYPE): Renamed from yyltype.
   13826 	(yyltype, yystype): New (and obsolescent) macros,
   13827 	for backward compatibility.
   13828 	* data/yacc.c: Likewise.
   13829 
   13830 	* data/yacc.c (YYSTYPE): Declare as union YYSTYPE if the user
   13831 	does not specify a union tag.  This is for compatibility with
   13832 	Solaris 9 yacc.
   13833 
   13834 	* src/parse-gram.y (add_param): 2nd arg is now char * not char
   13835 	const *, since it is now modified by stripping surrounding { }.
   13836 	(current_braced_code): Remove.
   13837 	(PERCENT_DESTRUCTOR, PERCENT_PRINTER, PERCENT_UNION,
   13838 	PERCENT_LEX_PARAM, PERCENT_PARSE_PARAM): Change names to include
   13839 	trailing " {...}".  Now of type <chars>.
   13840 	(grammar_declaration): Adjust to bundled tokens.
   13841 	(code_content): Remove; stripping is now done by add_param.
   13842 	(print_token_value): Print contents of bundled tokens.
   13843 	(token_name): New function.
   13844 
   13845 	* src/reader.h (braced_code, current_braced_code): Remove.
   13846 	(token_name): New decl.
   13847 
   13848 	* src/scan-gram.l (handle_dollar, handle_at): Now takes int
   13849 	token_type, not braced_code code_kind.  All uses changed.
   13850 	(SC_PRE_CODE): New state, for scanning after a keyword that
   13851 	has (or usually has) an immediately-following braced code.
   13852 	(token_type): New local var, to keep track of which token type
   13853 	to return when scanning braced code.
   13854 	(<INITIAL>"%destructor", <INITIAL>"%lex-param",
   13855 	<INITIAL>"%parse-param", <INITIAL>"%printer",
   13856 	<INITIAL>"%union"): Set token type and BEGIN SC_PRE_CODE
   13857 	instead of returning a token type immediately.
   13858 	(<INITIAL>"{"): Set token type.
   13859 	(<SC_BRACED_CODE>"}"): Use it.
   13860 	(handle_action_dollar, handle_action_at): Now returns bool
   13861 	indicating success.  Fail if ! current_rule; this prevents a core dump.
   13862 	(handle_symbol_code_dollar, handle_symbol_code_at):
   13863 	Remove; merge body into caller.
   13864 	(handle_dollar, handle_at): Complain in invalid contexts.
   13865 
   13866 	* NEWS, doc/bison.texinfo: Document the above.
   13867 	* NEWS: Fix years and program names in copyright notice.
   13868 
   13869 2002-12-17  Paul Eggert  <eggert (a] twinsun.com>
   13870 
   13871 	* NEWS, doc/bison.texinfo (Parser Function, Pure Calling, Error
   13872 	Reporting, Table of Symbols): Omit mentions of %lex-param and
   13873 	%parse-param from the documentation for now.
   13874 
   13875 2002-12-15  Paul Eggert  <eggert (a] twinsun.com>
   13876 
   13877 	Undo most of the 2002-11-12 yychar -> yytoken patch, as it broke
   13878 	GCC 3.2.1 (which depends on yychar == YYEMPTY when there is no
   13879 	lookahead symbol, and which sets yychar in parser actions) and it
   13880 	disagreed with the Bison documentation.  Bug
   13881 	reported by Andrew Walrond.
   13882 
   13883 	* data/yacc.c (YYTRANSLATE): Don't check for negative argument,
   13884 	as the caller now does that.
   13885 	(yyclearin, YYBACKUP, yyparse): Use yychar, not yytoken.
   13886 	(YYEMPTY): Parenthesize right hand side, since others use it.
   13887 	(yyparse): Don't assume that our generated code is the only code
   13888 	that sets yychar.
   13889 
   13890 2002-12-13  Paul Eggert  <eggert (a] twinsun.com>
   13891 
   13892 	Version 1.75d.
   13893 
   13894 	POSIX requires a "yacc" command.
   13895 	* src/Makefile.am (bin_SCRIPTS): New macro, for yacc.
   13896 	(MOSTLYCLEANFILES): Add yacc.
   13897 	(yacc): New rule.
   13898 	* doc/bison.texinfo (Invocation, Bison Options): Mention yacc
   13899 	as an alias for bison y.
   13900 
   13901 	* po/LINGUAS: Add da.
   13902 
   13903 	* src/getargs.c (__GNU_LIBRARY__) [lint]: Define to work around
   13904 	problem with latest <getopt.h>.
   13905 	(HACK_FOR___GNU_LIBRARY___PROTOTYPE): New macro.
   13906 
   13907 	* doc/fdl.texi: Upgrade to 1.2.
   13908 	* lib/alloca.c, lib/error.c, lib/getopt.c, lib/getopt.h
   13909 	lib/getopt1.c, lib/gettext.h, lib/memrchr.c, lib/obstack.c,
   13910 	lib/obstack.h, lib/strnlen.c, lib/unlocked-io.h: Sync with
   13911 	gnulib.
   13912 	* config/install-sh: Sync with autotools.
   13913 
   13914 	Fix a bad interaction with flex 2.5.23 reported by Bruce Lilly in
   13915 	<http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
   13916 	* data/yacc.c (YYLTYPE, struct yyltype): Do not define unless
   13917 	locations are requested.
   13918 	(union yyalloc): Do not depend on YYLTYPE_IS_TRIVIAL unless
   13919 	locations are requested.
   13920 
   13921 2002-12-12  Paul Eggert  <eggert (a] twinsun.com>
   13922 
   13923 	Remove unportable casts and storage allocation tricks.
   13924 	While we're at it, remove almost all casts, since they
   13925 	usually aren't needed and are a sign of trouble.
   13926 
   13927 	* configure.ac (AC_CHECK_TYPES): Check for uintptr_t.
   13928 
   13929 	* src/derives.c (derives_compute): Do not subtract NTOKENS from
   13930 	the pointer DSET returned by malloc; this isn't portable.
   13931 	Instead, always use DSET[i - NTOKENS] rather than DSET[i].
   13932 	Similarly for DERIVES.
   13933 	* src/lalr.c (set_goto_map): Likewise, for GOTO_MAP and TEMP_MAP.
   13934 	* src/nullable.c (nullable_compute): Likewise, for RSETS and NULLABLE.
   13935 	* src/reduce.c (reduce_grammar_tables): Likewise, for nontermmap
   13936 
   13937 	* src/derives.c (derives_compute): Do not bother invoking
   13938 	int_of_rule_number, since rule numbers are integers.
   13939 
   13940 	* src/files.c (concat2, tr, compute_base_name): Use xmalloc (N)
   13941 	rather than XMALLOC (char, N).
   13942 
   13943 	* src/files.c (filename_split): Rewrite to avoid cast.
   13944 
   13945 	* src/gram.h (symbol_number_as_item_number,
   13946 	item_number_as_symbol_number, rule_number_as_item_number,
   13947 	item_number_as_rule_number):
   13948 	Now inline functions rather than macros, to avoid casts.
   13949 	* src/state.h (state_number_as_int): Likewise.
   13950 	* src/tables.c (state_number_to_vector_number,
   13951 	symbol_number_to_vector_number): Likewise.
   13952 
   13953 	* src/gram.h (int_of_rule_number): Remove; no longer used.
   13954 
   13955 	* src/lalr.c (add_lookback_edge): Use malloc rather than calloc,
   13956 	since the resulting storage is always stored into.
   13957 
   13958 	* src/main.c (alloca) [C_ALLOCA]: Add decl here, the only place
   13959 	where it's needed.
   13960 
   13961 	* src/muscle_tab.c (muscle_m4_output):
   13962 	Now inline.  Return bool, not int.
   13963 	* src/state.c (state_compare): Likewise.
   13964 	* src/symtab.c (symbol_check_defined,
   13965 	symbol_check_alias_consistency, symbol_pack, symbol_translation,
   13966 	hash_compare_symbol, hash_symbol):
   13967 	Likewise.
   13968 	* src/uniqstr.c (uniqstr_print): Likewise.
   13969 	* src/muscle_tab.c (muscle_m4_output_processor):
   13970 	New function, to avoid casts.
   13971 	* src/state.c (state_comparator, stage_hasher): Likewise.
   13972 	* src/symtab.c (symbol_check_defined_processor,
   13973 	symbol_check_alias_consistency_processor, symbol_pack_processor,
   13974 	symbol_translation_processor, hash_symbol_comparator,
   13975 	hash_symbol_hasher): Likewise.
   13976 	* src/uniqstr.c (uniqstr_print_processor): Likewise.
   13977 	* src/muscle_tab.c (muscles_m4_output):
   13978 	Use new functions instead of casting old functions unportably.
   13979 	* src/state.c (state_hash_new): Likewise.
   13980 	* src/symtab.c (symbols_new, symbols_do, symbols_check_defined,
   13981 	symbols_token_translations_init):
   13982 	Likewise.
   13983 	* src/uniqstr.c (uniqstrs_new, hash_initialize, uniqstrs_do): Likewise.
   13984 
   13985 	* src/output.c (GENERATE_MUSCLE_INSERT_TABLE): Use long local
   13986 	var instead of casting to long, to avoid casts.
   13987 	(prepare_states): Use MALLOC rather than alloca, so that we don't
   13988 	have to worry about alloca.
   13989 	* src/state.c (state_hash_lookup): Likewise.
   13990 
   13991 	* src/scan-gram.l (<SC_ESCAPED_CHARACTER>"'"): Use unsigned char
   13992 	local var instead of casting to unsigned char, to avoid casts.
   13993 
   13994 	* src/state.c (TRANSITIONS_ALLOC, ERRS_ALLOC, REDUCTIONS_ALLOC,
   13995 	STATE_ALLOC): Remove.
   13996 	(transitions_new, errs_new, reductions_new, state_new): Use malloc
   13997 	rather than calloc, and use offsetof to avoid allocating slightly
   13998 	too much storage.
   13999 	(state_new): Initialize all members.
   14000 
   14001 	* src/state.c (state_hash): Use unsigned accumulator, not signed.
   14002 
   14003 	* src/symtab.c (symbol_free): Remove; unused.
   14004 	(symbol_get): Remove cast in lhs of assignment.
   14005 	(symbols_do): Now static.  Accept generic arguments, not
   14006 	hashing-related ones.
   14007 
   14008 	* src/symtab.h: (NUMBER_UNDEFINED): Remove unnecessary cast.
   14009 	(symbol_processor): Remove.
   14010 	(symbols_do): Remove decl; now static.
   14011 
   14012 	* src/system.h (alloca): Remove; decl no longer needed.
   14013 	(<stddef.h>): Include, for offsetof.
   14014 	(<inttypes.>, <stdint.h>): Include if available.
   14015 	(uintptr_t): New type, if system lacks it.
   14016 	(CALLOC, MALLOC, REALLOC): New macros.
   14017 	All uses of XCALLOC, XMALLOC, and XREALLOC changed to use these
   14018 	new macros.
   14019 
   14020 	* src/tables.c (table_size): Now int, to pacify GCC.
   14021 	(table_grow, table_ninf_remap): Use signed table size.
   14022 	(save_row): Don't bother initializing locals when not needed.
   14023 	(default_goto, goto_actions, pack_vector): Remove unnecessary casts.
   14024 	* src/uniqstr.c (hash_compare_uniqstr):  Likewise.
   14025 
   14026 	* src/vcg.h: Correct misspellings.
   14027 
   14028 	* src/vcg_defaults.h (G_CMAX): Now INT_MAX.
   14029 
   14030 
   14031 	* src/getargs.c (getargs): Don't assume EOF == -1.
   14032 
   14033 2002-12-09  Paul Eggert  <eggert (a] twinsun.com>
   14034 
   14035 	Change identifier spellings to avoid collisions with names
   14036 	that are reserved by POSIX.
   14037 
   14038 	Don't use names ending in _t, since POSIX reserves them.
   14039 	For consistency, remove _e and _s endings -- they're weren't
   14040 	needed to remove ambiguity.  All uses changed.
   14041 	* src/uniqstr.h (uniqstr): Renamed from uniqstr_t, which in
   14042 	turn was just renamed from struniq_t.
   14043 	* src/uniqstr.c (uniqstr_processor): Renamed from struniq_processor,
   14044 	which in turn was just renamed from struniq_processor_t.
   14045 	(hash_compare_uniqstr): Renamed from hash_compare_struniq, which
   14046 	in turn was renamed from hash_compare_struniq_t.
   14047 	* src/LR0.c (struct state_list): Renamed from struct state_list_s.
   14048 	(state_list): Renamed from state_list_t.
   14049 	* src/assoc.h (assoc): Renamed from assoc_t.
   14050 	* src/conflicts.c (enum conflict_resolution): Renamed from
   14051 	enum conflict_resolution_e.
   14052 	* src/derives.c (struct rule_list): Renamed from struct rule_list_s.
   14053 	(rule_list): Renamed from rule_list_t.
   14054 	* src/getargs.h (enum trace): Renamed from enum trace_e.
   14055 	(enum report): Renamed from enum report_e.
   14056 	* src/gram.h (item_number): Renamed from item_number_t.
   14057 	(rule_number): Renamed from rule_number_t.
   14058 	(struct rule_s): Remove the "rule_s" part; not used.
   14059 	(rule): Renamed from rule_t.
   14060 	(rule_filter): Renamed from rule_filter_t.
   14061 	* src/lalr.c (struct goto_list): Renamed from struct goto_list_s.
   14062 	(goto_list): Renamed from goto_list_t.
   14063 	* src/lalr.h (goto_number): Renamed from goto_number_t.
   14064 	* src/location.h (location): Renamed from location_t.
   14065 	* src/muscle_tab.c (muscle_entry): Renamed from muscle_entry_t,
   14066 	and moved here from:
   14067 	* src/muscle_tab.h (muscle_entry_t): here.
   14068 	* src/nullable.c (struct rule_list): Renamed from struct rule_list_s.
   14069 	(rule_list): Renamed from rule_list_t.
   14070 	* src/print_graph.c (static_graph): Renamed from graph.
   14071 	* src/reader.h (braced_code): Renamed from braced_code_t.
   14072 	Remove brace_code_e tag.
   14073 	* src/relation.h (relation_node): Renamed from relation_node_t.
   14074 	(relation_nodes): Renamed from relation_nodes_t.
   14075 	(relation): Renamed from relation_t.
   14076 	* src/state.h (state_number): Renamed from state_number_t.
   14077 	(struct state): Renamed from struct state_s.
   14078 	(state): Renamed from state_t.
   14079 	(transitions): Renamed from transitions_t.  Unused (and
   14080 	misspelled) transtion_s tag removed.
   14081 	(errs): Renamed from errs_t.  Unused errs_s tag removed.
   14082 	(reductions): Renamed from reductions_t.  Unused tag
   14083 	reductions_s removed.
   14084 	* src/symlist.h (symbol_list): Renamed from symbol_list_t.
   14085 	(struct symbol_list): Renamed from struct symbol_list_s.
   14086 	* src/symtab.h (symbol_number): Renamed from symbol_number_t.
   14087 	(struct symbol): Renamed from struct symbol_s.
   14088 	(symbol): Renamed from symbol_t.
   14089 	* src/tables.c (vector_number): Renamed from vector_number_t.
   14090 	(action_number): Renamed from action_t.
   14091 	* src/tables.h (base_number): Renamed from base_t.
   14092 	* src/vcg.h (enum color): Renamed from enum color_e.
   14093 	(enum textmode): Renamed from enum textmode_e.
   14094 	(enum shape): Renamed from enum shape_e.
   14095 	(struct colorentry): Renamed from struct colorentry_s.
   14096 	(struct classname): Renamed from struct classname_s.
   14097 	(struct infoname): Renamed from struct infoname_s.
   14098 	(enum layoutalgorithm): Renamed from enum layoutalgorithm_e.
   14099 	(enum decision): Renamed from enum decision_e.
   14100 	(enum orientation): Renamed from enum orientation_e.
   14101 	(enum alignment): Renamed from enum alignment_e.
   14102 	(enum arrow_mode): Renamed from enum arrow_mode_e.
   14103 	(enum crossing_type): Renamed from enum crossing_type_e.
   14104 	(enum view): Renamed from enum view_e.
   14105 	(struct node): Renamed from struct node_s.
   14106 	(node): Renamed from node_t.
   14107 	(enum linestyle): Renamed from enum linestyle_e.
   14108 	(enum arrowstyle): Renamed from enum arrowstyle_e.
   14109 	(struct edge): Renamed from struct edge.
   14110 	(edge): Renamed from edge_t.
   14111 	(struct graph): Renamed from struct graph_s.
   14112 	(graph): Renamed from graph_t.
   14113 	* tests/calc.at (_AT_DATA_CALC_Y, Simple LALR Calculator):
   14114 	Rename value_t -> value.
   14115 	* tests/input.at (Torturing the Scanner): Rename value_t -> value,
   14116 	value_t_as_yystype -> value_as_yystype.
   14117 
   14118 	Don't include <errno.h> in the mainstream code, since it
   14119 	reserves E[A-Z0-9]* and we want to use symbols like 'EQUALS'.
   14120 	* lib/get-errno.c, lib/get-errno.h: New files.
   14121 	* lib/Makefile.am (libbison_a_SOURCES): Add get-errno.h,
   14122 	get-errno.c.
   14123 	* src/files.c (xfopen, xfclose): Use get_errno instead of errno.
   14124 	* src/output.c (output_skeleton): Likewise.
   14125 	* src/scan-gram.l (<INITIAL>{int}): Use set_errno and get_errno
   14126 	instead of errno.
   14127 	(<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>\\x[0-9abcdefABCDEF]+):
   14128 	Likewise.
   14129 	(handle_action_dollar, handle_action_at): Likewise.
   14130 	* src/system.h: Do not include <errno.h>.
   14131 	(TAB_EXT): Renamed from EXT_TAB.
   14132 	(OUTPUT_EXT): Renamed from EXT_OUTPUT.
   14133 
   14134 	Avoid str[a-z]*, since <string.h> reserves that name space.
   14135 	Change all instances of "struniq" in names to "uniqstr", and
   14136 	likewise for "STRUNIQ" and "UNIQSTR".
   14137 	* src/uniqstr.c: Renamed from src/struniq.c.
   14138 	* src/uniqstr.h: Renamed from src/struniq.h.
   14139 	* src/Makefile.am (bison_SOURCES): Adjust to these renamings.
   14140 	* src/files.c (strsuffix): Remove; unused.
   14141 	(concat2): Renamed from stringappend.  Now static.
   14142 	* src/files.h (strsuffix, stringappend): Remove; unused.
   14143 	* src/parse-gram.y (<chars>): Renamed from <string>.
   14144 	(<uniqstr>): Renamed from <struniq>.
   14145 	* src/scan-gram.l (obstack_for_string): Renamed from string_obstack.
   14146 	* src/vcg.h (struct node_s.expand): Renamed from struct node_s.stretch.
   14147 	(struct graph_s.expand): Renamed from struct graph_s.stretch.
   14148 	* src/vcg_defaults.h (G_EXPAND): Renamed from G_STRETCH.
   14149 	(G_LONG_STRAIGHT_PHASE): Renamed from G_STRAIGHT_PHASE.
   14150 	(N_EXPAND): Renamed from N_STRETCH.
   14151 
   14152 	Avoid *_MAX and *_MIN, since <limits.h> reserves that name space.
   14153 	* data/yacc.c (YYSTACK_GAP_MAXIMUM): Renamed from YYSTACK_GAP_MAX.
   14154 	* src/gram.h (ITEM_NUMBER_MAX, ITEM_NUMBER_MIN, RULE_NUMBER_MAX):
   14155 	Remove; unused.
   14156 	* src/lalr.h (GOTO_NUMBER_MAXIMUM): Renamed from GOTO_NUMBER_MAX.
   14157 	* src/state.h (STATE_NUMBER_MAXIMUM): Renamed from STATE_NUMBER_MAX.
   14158 	* src/symtab.h (SYMBOL_NUMBER_MAXIMUM): Renamed from SYMBOL_NUMBER_MAX.
   14159 	* src/tables.c (VECTOR_NUMBER_MAX, VECTOR_NUMBER_MIN): Remove; unused.
   14160 	(BASE_MAXIMUM): Renamed from BASE_MAX.
   14161 	(BASE_MINIMUM): Renamed from BASE_MIN.
   14162 	(ACTION_MAX): Remove; unused.
   14163 	(ACTION_NUMBER_MINIMUM): Renamed from ACTION_MIN.
   14164 	Unnecessary casts removed from above defines.
   14165 
   14166 
   14167 	Fix misspelling in names.
   14168 	* src/vcg.h (enum_alignment_e): Renamed from enum_alignement_e.
   14169 	* src/vcg_defaults.h (G_NODE_ALIGNMENT): Renamed from
   14170 	G_NODE_ALIGNEMENT.
   14171 
   14172 
   14173 	* lib/timevar.c (timevar_report): Renamed from time_report,
   14174 	for consistency with other names.
   14175 	* lib/timevar.h (timevar_report): New decl.
   14176 	* src/system.h (time_report): Remove; decl is now in lib/timevar.h.
   14177 
   14178 
   14179 	Sort include-file uses.
   14180 
   14181 	Reorder all include files under src to be in the order "system.h".
   14182 	then the ../lib include files in angle brackets (alphabetized),
   14183 	then the . include files in double-quotes (alphabetized).  Fix
   14184 	dependency breakages encountered in this process, as follows:
   14185 	* src/closure.h, src/derives.h, src/state.h: Include "gram.h".
   14186 	* src/complain.c: Don't include stdlib.h, string.h _LIBC stuff.
   14187 	* src/state.h: Include "symtab.h".
   14188 
   14189 2002-12-08  Paul Eggert  <eggert (a] twinsun.com>
   14190 
   14191 	* data/glr.c, data/lalr1.cc, data/yacc.c: Do not use __file__,
   14192 	since this causes problems when __file__ contains character
   14193 	sequences like "@" that are treated specially by src/scan-skel.l.
   14194 	Instead, just use the file's basename.  This fixes the bug
   14195 	reported by Martin Mokrejs in
   14196 	<http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00007.html>.
   14197 
   14198 2002-12-06  Paul Eggert  <eggert (a] twinsun.com>
   14199 
   14200 	Add support for rules that do not have trailing semicolons, as
   14201 	POSIX requires.  Improve the quality of locations in Bison
   14202 	diagnostics.
   14203 
   14204 	* src/location.c: Include <quotearg.h>.
   14205 	(empty_location): Now const.
   14206 	(location_print): New function.  Follow the recommendation of the
   14207 	GNU Coding Standards for locations that span file boundaries.
   14208 	* src/location.h: Do not include <quotearg.h>; no longer needed.
   14209 	(boundary): New type.
   14210 	(location_t): Use it.  This allows locations to span file boundaries.
   14211 	All member uses changed: file -> start.file or end.file (as needed),
   14212 	first_line -> start.line, first_column -> start.column,
   14213 	last_line -> end.line, last_column -> end.column.
   14214 	(equal_boundaries): New function.
   14215 	(LOCATION_RESET, LOCATION_STEP): Remove.
   14216 	(LOCATION_PRINT): Remove.  All callers changed to use location_print.
   14217 	(empty_location): Now const.
   14218 	(location_print): New decl.
   14219 	* src/parse-gram.y (lloc_default): New function, which handles
   14220 	empty locations more accurately.
   14221 	(YYLLOC_DEFAULT): Use it.
   14222 	(%token COLON): Remove.
   14223 	(%token ID_COLON): New token.
   14224 	(rules): Use it.
   14225 	(declarations, rules): Remove trailing semicolon.
   14226 	(declaration, rules_or_grammar_declaration):
   14227 	Allow empty (";") declaration.
   14228 	(symbol_def): Remove empty actions; no longer needed.
   14229 	(rules_or_grammar_declaration): Remove trailing semicolon.
   14230 	(semi_colon.opt): Remove.
   14231 	* src/reader.h: Include location.h.
   14232 	(scanner_cursor): New decl.
   14233 	* src/reduce.c (nonterminals_reduce): Use warn_at rather than
   14234 	rolling our own.
   14235 	* src/scan-gram.l (YY_USER_INIT): Initialize scanner_cursor instead
   14236 	of *loc.
   14237 	(STEP): Remove.  No longer needed, now that adjust_location does
   14238 	the work.  All uses removed.
   14239 	(scanner_cursor): New var.
   14240 	(adjust_location): Renamed from extend_location.  It now sets
   14241 	*loc and adjusts the scanner cursor.  All uses changed.
   14242 	Don't bother testing for CR.
   14243 	(handle_syncline): Remove location arg; now updates scanner cursor.
   14244 	All callers changed.
   14245 	(unexpected_end_of_file): Now accepts start boundary of token or
   14246 	comment, not location.  All callers changed.  Update scanner cursor,
   14247 	not the location.
   14248 	(SC_AFTER_IDENTIFIER): New state.
   14249 	(context_state): Renamed from c_context.  All uses changed.
   14250 	(id_loc, code_start, token_start): New local vars.
   14251 	(<INITIAL,SC_AFTER_IDENTIFIER>): New initial context.  Move all
   14252 	processing of Yacc white space and equivalents here.
   14253 	(<INITIAL>{id}): Save id_loc.  Begin state SC_AFTER_IDENTIFIER
   14254 	instead of returning ID immediately, since we need to search for
   14255 	a subsequent colon.
   14256 	(<INITIAL>"'", "\""): Save token_start.
   14257 	(<INITIAL>"%{", "{", "%%"): Save code_start.
   14258 	(<SC_AFTER_IDENTIFIER>): New state, looking for a colon.
   14259 	(<SC_YACC_COMMENT>, <SC_COMMENT>, <SC_LINE_COMMENT>):
   14260 	BEGIN context_state at end, not INITIAL.
   14261 	(<SC_ESCAPED_STRING>"\"", <SC_ESCAPED_CHARACTER>"'",
   14262 	<SC_BRACED_CODE>"}", <SC_PROLOGUE>"%}", <SC_EPILOGUE><<EOF>>):
   14263 	Return correct token start.
   14264 	(<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>): Save start boundary when
   14265 	the start of a character, string or multiline comment is found.
   14266 	* tests/conflicts.at (S/R in initial, Defaulted Conflicted
   14267 	Reduction): Adjust reported locations to match the more-precise
   14268 	results now expected.
   14269 	* tests/input.at (Invalid $n, Invalid @n, Type Clashes): Likewise.
   14270 	* tests/reduce.at (Useless Rules, Reduced Automaton,
   14271 	Underivable Rules): Likewise.
   14272 	* tests/regression.at (Invalid inputs): No longer `expecting ";"
   14273 	or "|"' now that so many other tokens are allowed by the new grammar.
   14274 
   14275 	* src/complain.h (current_file): Remove duplicate decl;
   14276 	current_file is now owned by files.h.
   14277 	* src/complain.c, src/scan-gram.l: Include files.h.
   14278 
   14279 2002-12-06  Paul Eggert  <eggert (a] twinsun.com>
   14280 
   14281 	* data/glr.c (yy_reduce_print): Don't assume that yyrline[yyrule]
   14282 	promotes to int; it might be unsigned int.
   14283 	* data/yacc.c (yy_reduce_print): Likewise.
   14284 
   14285 	* doc/bison.texinfo (Table of Symbols): YYERROR_VERBOSE should
   14286 	be #defined in the prologue, not in the Bison declarations.
   14287 	This fixes Debian Bug 102878, reported by Shaul Karl.
   14288 
   14289 2002-12-02  Paul Eggert  <eggert (a] twinsun.com>
   14290 
   14291 	* configure.ac (AC_REPLACE_FUNCS): Add strtoul.
   14292 	* lib/strtoul.c: New file, from gnulib.
   14293 	This fixes a porting bug reported by Peter Klein in
   14294 	<http://lists.gnu.org/archive/html/bug-bison/2002-12/msg00000.html>.
   14295 
   14296 2002-11-30  Paul Eggert  <eggert (a] twinsun.com>
   14297 
   14298 	* src/scan-gram.l (no_cr_read, extend_location): Move to epilogue,
   14299 	and put only a forward declaration in the prologue.  This is for
   14300 	consistency with the other scanner helper functions.
   14301 
   14302 	Type clashes now generate warnings, not errors, since it
   14303 	appears that POSIX may allow some grammars with type clashes.
   14304 	* src/reader.c (grammar_current_rule_check): Warn about
   14305 	type clashes instead of complaining.
   14306 	* tests/input.at (Type Clashes): Expect warnings, not complaints.
   14307 
   14308 	Add Yacc library, since POSIX requires it.
   14309 	* doc/bison.texinfo (Yacc Library): New node.  Regenerate top menu.
   14310 	* lib/Makefile.am (lib_LIBRARIES, liby_a_SOURCES): New macros.
   14311 	* lib/main.c, lib/yyerror.c: New files.
   14312 
   14313 	gram_error can be static; it need not be extern.
   14314 	* src/reader.h (gram_error): Remove decl.
   14315 	* src/parse-gram.y (gram_error): Now static.  Add static decl.
   14316 	(print_token_value): Omit parameter names from forward decl,
   14317 	for consistency.
   14318 
   14319 2002-11-29  Paul Eggert  <eggert (a] twinsun.com>
   14320 
   14321 	* doc/bison.texinfo: Emphasize that yylex and yyerror must
   14322 	be declared before being used.  E.g., one should typically
   14323 	declare them in the prologue.  Use GNU coding style in examples.
   14324 	Put "const" consistently after the type it modifies.  Mention
   14325 	that C99 supports "inline".  Mention that yyerror traditionally
   14326 	returns "int".
   14327 
   14328 	%parse-param and %lex-param now take just one argument, the
   14329 	declaration; the argument name is deduced from the declaration.
   14330 
   14331 	* doc/bison.texinfo (Parser Function, Pure Calling, Error
   14332 	Reporting, Table of Symbols): Document this.
   14333 	* src/parse-gram.y (add_param): New function.
   14334 	(COMMA): Remove.
   14335 	(declaration): Implement new rule for %parse-param and %lex-param.
   14336 	* src/scan-gram.l: "," now elicits a warning, rather than being
   14337 	a token; this is more compatible with byacc.
   14338 	* tests/calc.at (Simple LALR Calculator): Adopt new convention.
   14339 
   14340 2002-11-27  Paul Eggert  <eggert (a] twinsun.com>
   14341 
   14342 	Rename identifiers to avoid real and potential collisions.
   14343 
   14344 	* data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
   14345 	to avoid collision with lex macro described by Bruce Lilly in
   14346 	<http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00114.html>.
   14347 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
   14348 	* doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
   14349 	* src/parse-gram.y (print_token_value): Renamed from yyprint.
   14350 	All uses changed.
   14351 	(YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove.  All uses changed.
   14352 	The name "yycontrol" violates the name space rules, and this stuff
   14353 	wasn't being used anyway.
   14354 	(input): Remove action; this stuff wasn't being used.
   14355 	(gram_error): Rename local variable yylloc -> loc.
   14356 	* src/reader.h (struct gram_control_s, gram_control_t): Remove.
   14357 	(YY_DECL): Don't use "yy" at start of local variables.
   14358 	All uses changed, e.g., yylloc -> loc.
   14359 	* src/scan-gram.l (STEP): Renamed from YY_STEP.  All uses changed.
   14360 	(STRING_GROW): Renamed from YY_OBS_GROW.  All uses changed.
   14361 	(STRING_FINISH): Renamed from YY_OBS_FINISH.  All uses changed.
   14362 	(STRING_FREE): Renamed from YY_OBS_FREE.  All uses changed.
   14363 
   14364 	* src/parse-gram.y (gram_error): loc is now const *.
   14365 	* src/reader.h (gram_error): Likewise.
   14366 
   14367 2002-11-24  Paul Eggert  <eggert (a] twinsun.com>
   14368 
   14369 	Version 1.75c.
   14370 
   14371 	* tests/actions.at (Actions after errors): Use an output format
   14372 	more similar to that of the Printers and Destructors test.
   14373 	Test the position of the ';' token too.
   14374 	(Printers and Destructors): Likewise.
   14375 	(Printers and Destructors: %glr-parser): Remove for now, to avoid
   14376 	unnecessarily alarming people when the test fails.
   14377 
   14378 	* data/yacc.c (yyerrlab1): Move this label down, so that the
   14379 	parser does not discard the lookahead token if the user code
   14380 	invokes YYERROR.  This change is required for POSIX conformance.
   14381 
   14382 	* lib/error.c: Sync with gnulib.
   14383 
   14384 2002-11-22  Paul Eggert  <eggert (a] twinsun.com>
   14385 
   14386 	* lib/quotearg.c, lib/quotearg.h: Sync with gnulib.
   14387 	* lib/mbswidth.c, lib/mbswidth.h: Likewise.
   14388 	* lib/xmalloc.c: Likewise.
   14389 
   14390 2002-11-20  Paul Eggert  <eggert (a] twinsun.com>
   14391 
   14392 	* lib/argmatch.c, lib/argmatch.h: Sync with gnulib.
   14393 
   14394 2002-11-20  Paul Eggert  <eggert (a] twinsun.com>
   14395 
   14396 	Avoid use of <assert.h>, as the GNU Coding Standards hint that one
   14397 	should use `if (! x) abort ();' rather than `assert (x);', and
   14398 	anyway it's one less thing to worry about configuring.
   14399 
   14400 	* data/glr.c, lib/hash.c, src/system.h: Do not include <assert.h>.
   14401 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise,
   14402 	and replace all instances of assert with abort.
   14403 	* tests/calc.at (_AT_DATA_CALC_Y): Likewise.
   14404 	* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): Likewise.
   14405 
   14406 	* data/glr.c (yydoAction, yyglrReduce, yysplitStack, yyresolveStates,
   14407 	yyresolveAction, yyprocessOneStack): Use abort rather than assert.
   14408 	* lib/hash.c (hash_lookup, hash_get_first, hash_get_next,
   14409 	hash_find_entry, hash_rehash, hash_insert): Likewise.
   14410 	* src/conflicts.c (resolve_sr_conflict): Likewise.
   14411 	* src/lalr.c (set_goto_map, map_goto): Likewise.
   14412 	* src/nullable.c (nullable_compute): Likewise.
   14413 	* src/output.c (prepare_rules, token_definitions_output): Likewise.
   14414 	* src/reader.c (packgram, reader): Likewise.
   14415 	* src/state.c (state_new, state_free, state_transitions_set,
   14416 	state_reduction_find): Likewise.
   14417 	* src/symtab.c (symbol_user_token_number_set, symbol_make_alias,
   14418 	symbol_pack): Likewise.
   14419 	* src/tables.c (conflict_row, pack_vector): Likewise.
   14420 	* src/vcg.c (get_color_str, get_textmode_str, get_shape_str,
   14421 	get_layoutalgorithm_str, get_decision_str, get_orientation_str,
   14422 	get_node_alignement_str, get_arrow_mode_str, get_crossing_type_str,
   14423 	get_view_str, get_linestyle_str, get_arrowstyle_str): Likewise.
   14424 
   14425 	* lib/argmatch.h (ARRAY_CARDINALITY): Do not bother to #undef.
   14426 	(ARGMATCH_CONSTRAINT): New macro.
   14427 	(ARGMATCH_ASSERT): Use it.
   14428 
   14429 	* src/system.h (verify): New macro.
   14430 	* src/getargs.c (trace_argmatch, report_argmatch): Use verify
   14431 	rather than assert.
   14432 	* src/tables.c (tables_generate): Likewise.
   14433 
   14434 	* src/struniq.c (struniq_assert): Now returns void, and aborts
   14435 	if the assertion is false.
   14436 	(struniq_assert_p): Remove.
   14437 	* src/struniq.h: Likewise.
   14438 
   14439 2002-11-18  Paul Eggert  <eggert (a] twinsun.com>
   14440 
   14441 	* data/glr.c (yygetLRActions): Replace `yyindex' with
   14442 	`yytable[yyindex]' to fix typo introduced in my 2002-11-09 patch.
   14443 	This fixes the regression with Sun ONE Studio 7 cc that I reported in
   14444 	<http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00077.html>.
   14445 
   14446 2002-11-18  Akim Demaille  <akim (a] epita.fr>
   14447 
   14448 	* doc/bison.texinfo (Tracing): `yyprint' shouldn't prepend a
   14449 	space.
   14450 	From Tim Van Holder.
   14451 
   14452 2002-11-17  Paul Eggert  <eggert (a] twinsun.com>
   14453 
   14454 	Pacify Sun ONE Studio 7 lint.  Also, rename "ParseError"
   14455 	to "SyntaxError" for consistency with my 2002-11-15 change.
   14456 
   14457 	* data/glr.c (YYDPRINTF, YYDSYMPRINT, YYDSYMPRINTF) [!YYDEBUG]: Do
   14458 	not define to {}, since this breaks the common use of `YYDPRINTF
   14459 	((...));' if a single statement is desired (e.g. before `else').
   14460 	Work around GCC warnings by surrounding corresponding calls with
   14461 	{} if needed.
   14462 	(yyhasResolvedValue): Remove unused function.
   14463 	(yymergeOptionSets, yyresolvStack): Use `continue;' for empty
   14464 	loop body.
   14465 	(yyreportSyntaxError): Renamed from yyreportParseError.
   14466 	(yyrecoverSyntaxError): Renamed from yyrecoverParseError.
   14467 	All uses changed.
   14468 	* tests/calc.at (_AT_DATA_CALC_Y): Make vars static instead of
   14469 	extern when possible.  Remove unused initializations.
   14470 
   14471 2002-11-16  Akim Demaille  <akim (a] epita.fr>
   14472 
   14473 	Augment the similarity between GLR and LALR traces.
   14474 
   14475 	* data/yacc.c (yy_stack_print, YY_STACK_PRINT, yy_reduce_print)
   14476 	(YY_REDUCE_PRINT): New.
   14477 	(yyparse): Use them.
   14478 	* data/glr.c (yy_reduce_print): Use YYFPRINTF, no need for
   14479 	YYDPRINT here.
   14480 	(yyglrReduce, yyrecoverParseError, yyparse): Don't report the
   14481 	state reached after the reduction/recovery, since...
   14482 	(yyparse, yyprocessOneStack): Report the state we are entering in.
   14483 
   14484 2002-11-16  Akim Demaille  <akim (a] epita.fr>
   14485 
   14486 	* src/getargs.h, src/getargs.c (trace_e, trace_args, trace_types):
   14487 	Add support for --trace=skeleton.
   14488 	* src/scan-skel.l: %option debug.
   14489 	Scan strings of non-@ or \n instead of character by character.
   14490 	(scan_skel): Handle trace_skeleton.
   14491 	(QPUTS): New.
   14492 	(@output_parser_name@, @output_header_name@): ``Restore'' their
   14493 	support (used to be M4 macros).
   14494 	* data/yacc.c: Quote larger chunks, a la glr.c.
   14495 	* data/lalr1.cc: Likewise.
   14496 	The header guards are no longer available, so use some other
   14497 	string than `YYLSP_NEEDED'.
   14498 
   14499 2002-11-16  Akim Demaille  <akim (a] epita.fr>
   14500 
   14501 	Make the ``Printers and Destructors'' test more verbose, taking
   14502 	`yacc.c''s behavior as (possibly wrong) reference.
   14503 
   14504 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Use printf
   14505 	instead of fprint on stdout.
   14506 	Set and report the last_line of the symbols.
   14507 	Consistently display values and locations.
   14508 
   14509 2002-11-16  Paul Eggert  <eggert (a] twinsun.com>
   14510 
   14511 	* data/yacc.c: Avoid over-quoting of __line__ and __file__.
   14512 
   14513 2002-11-15  Paul Eggert  <eggert (a] twinsun.com>
   14514 
   14515 	* tests/actions.at (Actions after errors): New test case.
   14516 
   14517 	* data/glr.c, data/lalr1.cc, data/yacc.cc, doc/bison.texinfo,
   14518 	src/conflicts.c, src/parse-gram.y, src/tables.c, src/tables.h,
   14519 	tests/action.at, tests/calc.at, tests/conflicts.at,
   14520 	tests/cxx-type.at, tests/regression.at:
   14521 	"parse error" -> "syntax error" for POSIX compatibility.
   14522 	"parsing stack overflow..." -> "parser stack overflow" so
   14523 	that code matches Bison documentation.
   14524 
   14525 2002-11-15  Akim Demaille  <akim (a] epita.fr>
   14526 
   14527 	* src/parse-gram.y (declaration): Have %parse-param and %lex-param
   14528 	take two BRACED_CODE, not two string_content.
   14529 	Free the scanner's obstack when we are done.
   14530 	(code_content): New.
   14531 	* tests/calc.at: Adjust.
   14532 	* doc/bison.texinfo: Adjust.
   14533 	Also, make sure to include the `,' for these declarations.
   14534 
   14535 2002-11-15  Tim Van Holder  <tim.van.holder (a] pandora.be>
   14536 
   14537 	* m4/prereq.m4: Removed the commented jm_PREREQ_HASH
   14538 	definition; avoids potential autoreconf problems.
   14539 
   14540 2002-11-15  Akim Demaille  <akim (a] epita.fr>
   14541 
   14542 	Always check the value returned by yyparse.
   14543 
   14544 	* tests/calc.at (_AT_DATA_CALC_Y): Have `main' exit with the value
   14545 	returned by yyparse.
   14546 	(_AT_CHECK_CALC_ERROR): Take the expected exit value as argument.
   14547 	Adjust calls.
   14548 	* tests/glr-regr1.at (glr-regr1.y): Have `main' exit with the value
   14549 	returned by yyparse.
   14550 
   14551 2002-11-14  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   14552 
   14553 	* data/glr.c (yyFail): Always set yyerrflag.  Corrects regression
   14554 	on input.at test.
   14555 
   14556 2002-11-14  Paul Eggert  <eggert (a] twinsun.com>
   14557 
   14558 	* src/output.c (output_skeleton): Call xfopen instead of
   14559 	duplicating xfopen's body.
   14560 
   14561 	Fix bugs reported by Nelson H. F. Beebe in
   14562 	<http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00078.html>.
   14563 
   14564 	* tests/headers.at (AT_TEST_CPP_GUARD_H): Don't assume that
   14565 	"$CC -E foo.h" is allowed, as this doesn't work with the Portland
   14566 	Group compiler.  Instead, use "$CC -E bar.c".  Include the .h
   14567 	file twice in the grammar, as an extra check.
   14568 
   14569 	* tests/input.at (Torturing the Scanner): Surround the
   14570 	backslash-newline tests with "#if 0", to make it less likely that
   14571 	we'll run into compiler bugs.  Bring back solitary \ inside
   14572 	comment, but add a closing comment to work around HP C bug.  Don't
   14573 	test backslash-newline in C character constant.
   14574 
   14575 2002-11-14  Akim Demaille  <akim (a] epita.fr>
   14576 
   14577 	* tests/synclines.at (AT_SYNCLINES_COMPILE): Ignore the exit
   14578 	status of the compiler.
   14579 	Calling `exit 1' is no longer needed.
   14580 	Reported by Nelson H. F. Beebe.
   14581 
   14582 2002-11-14  Akim Demaille  <akim (a] epita.fr>
   14583 
   14584 	* tests/atlocal.in (CPPFLAGS): We have config.h.
   14585 	* tests/testsuite.at (AT_DATA_GRAMMAR_PROLOGUE, AT_DATA_GRAMMAR):
   14586 	New.
   14587 	* tests/actions.at, tests/calc.at, tests/conflicts.at,
   14588 	* tests/cxx-type.at, tests/glr-regr1.at, tests/headers.at,
   14589 	* tests/regression.at, tests/torture.at: Use them for all the
   14590 	grammars that are to be compiled.
   14591 	* tests/cxx-type.at (_AT_TEST_GLR_CALC): Rename as...
   14592 	* tests/cxx-type.at (_AT_TEST_GLR_CXXTYPES): this.
   14593 	* doc/bison.texinfo (GLR Parsers): Document `inline'.
   14594 
   14595 2002-11-14  Akim Demaille  <akim (a] epita.fr>
   14596 
   14597 	* doc/bison.texinfo: Various formatting changes (alignments in
   14598 	samples, additional @group/@end group, GCS in samples.
   14599 	Use @deffn instead of simple @table to define the directives,
   14600 	macros, variables etc.
   14601 
   14602 2002-11-13  Paul Eggert  <eggert (a] twinsun.com>
   14603 
   14604 	Fix some bugs reported by Albert Chin-A-Young in
   14605 	<http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00066.html>.
   14606 
   14607 	* tests/input.at (Torturing the Scanner): Don't invoke "cc a.c b.c
   14608 	-o c"; the HP C compiler chatters during compilation.
   14609 	Instead, invoke "cc -c a.c -o a.o; cc -c b.c -o b.o; cc a.o b.o -o c".
   14610 	* tests/headers.at (export YYLTYPE): Likewise.
   14611 
   14612 	* tests/input.at (Torturing the Scanner): Remove lines containing
   14613 	solitary backslashes, as they tickle a bug in the HP C compiler.
   14614 
   14615 	* tests/glr-regr1.at (Badly Collapsed GLR States): Avoid //
   14616 	comments, since they're not portable.  Use GNU coding style.
   14617 
   14618 2002-11-13  Akim Demaille  <akim (a] epita.fr>
   14619 
   14620 	* data/yacc.c: Leave bigger chunks of quoted text.
   14621 	(YYDSYMPRINTF): New.
   14622 	Use it to report symbol activities.
   14623 	* data/glr.c (YYDSYMPRINTF): New.
   14624 	Use it.
   14625 
   14626 2002-11-12  Paul Eggert  <eggert (a] twinsun.com>
   14627 
   14628 	Version 1.75b.
   14629 
   14630 	* data/glr.c (yydoAction): Return YYRESULTTAG, not int.
   14631 	(yyglrReduce): Return yyok, not 0.
   14632 	This should avoid the enumerated-type warnings reported
   14633 	by Nelson H. F. Beebe in
   14634 	<http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00057.html>.
   14635 
   14636 	* lib/bbitset.h (BITSET_INLINE): Remove.
   14637 	* lib/bitset.h [! BITSET_INLINE]: Remove.
   14638 	(bitset_set, bitset_reset, bitset_test): Rename local vars
   14639 	to avoid shadowing warnings by GCC.
   14640 
   14641 	* data/glr.c (inline): Remove #define.  It's the user's
   14642 	responsibility to #define it away, just like 'const'.
   14643 	This fixes one of the bugs reported by Nelson H. F. Beebe in
   14644 	<http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00058.html>.
   14645 
   14646 	* Makefile.maint (po-check): Scan .l and .y files instead of the
   14647 	.c and the .h files that they generate.  This fixes the bug
   14648 	reported by Tim Van Holder in:
   14649 	<http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00062.html>
   14650 	Look for N_ as well as for _.  Try to avoid matching #define for
   14651 	N_ and _.
   14652 	* po/POTFILES.in: Remove src/parse-gram.c, src/scan-gram.c,
   14653 	src/system.h.  Add src/parse-gram.y, src/scan-gram.l.
   14654 	* src/scan-gram.l: Revamp regular expressions so that " and '
   14655 	do not confuse xgettext.
   14656 
   14657 	* src/struniq.h (struniq_new): Do not declare the return type
   14658 	to be 'const'; this violates the C standard.
   14659 	* src/struniq.c (struniq_new): Likewise.
   14660 
   14661 2002-11-12  Albert Chin-A-Young <china (a] thewrittenword.com>
   14662 
   14663 	* src/Makefile.am (LDADD): Link $(LIBINTL) last to avoid the
   14664 	duplicate definition of optind on Tru64 UNIX 4.0D with the Compaq
   14665 	linker.
   14666 
   14667 2002-11-12  Akim Demaille  <akim (a] epita.fr>
   14668 
   14669 	* Makefile.maint: Sync with Autoconf:
   14670 	(local_updates): New.
   14671 
   14672 2002-11-12  Akim Demaille  <akim (a] epita.fr>
   14673 
   14674 	* po/POTFILES.in (src/lalr.c, src/state.c): Remove
   14675 
   14676 2002-11-12  Akim Demaille  <akim (a] epita.fr>
   14677 
   14678 	* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Display the
   14679 	locations.
   14680 
   14681 2002-11-12  Akim Demaille  <akim (a] epita.fr>
   14682 
   14683 	* data/c.m4 (b4_yysymprint_generate): Pass *yyvaluep to YYPRINT,
   14684 	not yyvalue.
   14685 
   14686 2002-11-12  Akim Demaille  <akim (a] epita.fr>
   14687 
   14688 	* tests/actions.at (AT_CHECK_PRINTER_AND_DESTRUCTOR): New.
   14689 	Use it to test the GLR parser.
   14690 
   14691 2002-11-12  Akim Demaille  <akim (a] epita.fr>
   14692 
   14693 	* tests/regression.at (input.y): s/YYEOF/MYEOF/, as the skeleton
   14694 	defines it.
   14695 	* data/glr.c (yystos): New.
   14696 	(b4_yysymprint_generate, b4_yydestruct_generate): Invoke.
   14697 	(YYDSYMPRINT): New.
   14698 	(yyval): Don't define it, it is handled via M4.
   14699 	(yyrecoverParseError): Free verbosely the discarded symbols.
   14700 	* data/yacc.c (yysymprint): Remove, rather...
   14701 	(b4_yysymprint_generate): invoke.
   14702 	* data/c.m4 (b4_yysymprint_generate): New.
   14703 	Accept pointers as arguments, as opposed to the version from
   14704 	yacc.c.
   14705 	(b4_yydestruct_generate): Likewise.
   14706 	* tests/cations.at (Printers and Destructors): Use Bison directives
   14707 	instead of CPP macros.
   14708 	Don't rely on internal details.
   14709 
   14710 2002-11-12  Akim Demaille  <akim (a] epita.fr>
   14711 
   14712 	* data/c.m4 (b4_yydestruct_generate, b4_symbol_actions): New.
   14713 	* data/yacc.c: Rename yychar1 as yytoken, as in glr.c.
   14714 	Don't work on yychar (i.e., do set it to YYEMPTY, don't match
   14715 	it against YYEMPTY and so forth), work on yytoken (i.e., set
   14716 	it to YYEMPTY etc.).
   14717 	(yydestruct): Replace with a b4_yydestruct_generate invocation.
   14718 	(b4_symbol_actions): Remove.
   14719 	* data/glr.c (YYTRANSLATE): As for yacc.c, if negative, it stands
   14720 	for 0, end-of-input.
   14721 
   14722 2002-11-12  Akim Demaille  <akim (a] epita.fr>
   14723 
   14724 	* doc/bison.texinfo (Destructor Decl): New.
   14725 
   14726 2002-11-12  Akim Demaille  <akim (a] epita.fr>
   14727 
   14728 	* src/tables.c (tables_generate): Use free for pointers that
   14729 	cannot be NULL, not XFREE.
   14730 	(pack_vector): Use assert, not fatal, for bound violations.
   14731 	* src/state.c (state_new): Likewise.
   14732 	* src/reader.c (reader): Likewise.
   14733 	* src/lalr.c (set_goto_map): Likewise.
   14734 	* src/location.h (LOCATION_PRINT): If first_line is 0, just issue
   14735 	the file name.
   14736 
   14737 2002-11-12  Akim Demaille  <akim (a] epita.fr>
   14738 
   14739 	* src/scan-gram.l, src/reader.h (scanner_last_string_free):
   14740 	Restore.
   14741 	* src/scan-gram.l (last_string): Is global to the file, not to
   14742 	yylex.
   14743 	* src/parse-gram.y (input): Don't append the epilogue here,
   14744 	(epilogue.opt): do it here, and free the scanner's obstack.
   14745 	* src/reader.c (epilogue_set): Rename as...
   14746 	(epilogue_augment): this.
   14747 	* data/c.m4 (b4_epilogue): Defaults to empty.
   14748 
   14749 2002-11-12  Akim Demaille  <akim (a] epita.fr>
   14750 
   14751 	* src/getargs.c (long_options): Remove duplicates.
   14752 	* src/vmsgetargs.c, src/build.com, src/bison.cld, src/vmshlp.mar:
   14753 	Remove.
   14754 	* doc/bison.rnh: Remove.
   14755 	* doc/bison.texinfo (VMS Invocation): Remove.
   14756 
   14757 2002-11-12  Akim Demaille  <akim (a] epita.fr>
   14758 
   14759 	* src/struniq.h, src/struniq.c (struniq_t): Is const.
   14760 	(STRUNIQ_EQ, struniq_assert, struniq_assert_p): New.
   14761 
   14762 	Use struniq for symbols.
   14763 
   14764 	* src/symtab.h (symbol_t): The tag member is a struniq.
   14765 	(symbol_type_set): Adjust.
   14766 	* src/symtab.c (symbol_new): Takes a struniq.
   14767 	(symbol_free): Don't free the tag member.
   14768 	(hash_compare_symbol_t, hash_symbol_t): Rename as...
   14769 	(hash_compare_symbol, hash_symbol): these.
   14770 	Use the fact that tags as struniqs.
   14771 	(symbol_get): Use struniq_new.
   14772 	* src/symlist.h, src/symlist.c (symbol_list_n_type_name_get):
   14773 	Returns a strniq.
   14774 	* src/reader.h (merger_list, grammar_currentmerge_set): The name
   14775 	and type members are struniqs.
   14776 	* src/reader.c (get_merge_function)
   14777 	(grammar_current_rule_merge_set): Adjust.
   14778 	(TYPE, current_type): Are struniq.
   14779 
   14780 	Use struniq for file names.
   14781 
   14782 	* src/files.h, src/files.c (infile): Split into...
   14783 	(grammar_file, current_file): these.
   14784 	* src/scan-gram.c (YY_USER_INIT, handle_syncline): Adjust.
   14785 	* src/reduce.c (reduce_print): Likewise.
   14786 	* src/getargs.c (getargs): Likewise.
   14787 	* src/complain.h, src/complain.c: Likewise.
   14788 	* src/main.c (main): Call struniqs_new early enough to use it for
   14789 	file names.
   14790 	Don't free the input file name.
   14791 
   14792 2002-11-12  Akim Demaille  <akim (a] epita.fr>
   14793 
   14794 	* src/symtab.c (symbol_free): Remove dead deactivated code:
   14795 	type_name are properly removed.
   14796 	Don't use XFREE to free items that cannot be NULL.
   14797 	* src/struniq.h, src/struniq.c: New.
   14798 	* src/main.c (main): Initialize/free struniqs.
   14799 	* src/parse-gram.y (%union): Add astruniq member.
   14800 	(yyprint): Adjust.
   14801 	* src/scan-gram.l (<{tag}>): Return a struniq.
   14802 	Free the obstack bit that used to store it.
   14803 	* src/symtab.h (symbol_t): The 'type_name' member is a struniq.
   14804 
   14805 2002-11-11  Paul Eggert  <eggert (a] twinsun.com>
   14806 
   14807 	Revamp to fix many (but not all) of the C- and M4-related quoting
   14808 	problems.  Among other things, this fixes the Bison bug reported
   14809 	by Jan Hubicka when processing the Bash grammar; see:
   14810 	<http://lists.gnu.org/archive/html/bison-patches/2002-11/msg00039.html>
   14811 
   14812 	Use new @ escapes consistently.  Represent brackets with @{ and @}
   14813 	rather than @<:@ and @:>@, since this works a bit better with dumb
   14814 	editors like vi.  Represent @ with @@, since @ is now consistently
   14815 	an escape.  Use @oline@ and @ofile@ rather than __oline__ and
   14816 	__ofile__, to avoid unexpected expansions.  Similarly, use @output
   14817 	rather than #output.
   14818 
   14819 	* data/c.m4 (b4_copyright): Omit file name from comment, since
   14820 	the file name could contain "*/".
   14821 	(b4_synclines_flag): Don't quote the 2nd argument; it should already
   14822 	be quoted.  All uses changed.
   14823 
   14824 	* data/glr.c: Use new @ escapes consistently.
   14825 	(b4_input_suffix, b4_output_parser_suffix, b4_output_parser_name,
   14826 	b4_output_header_suffix, b4_output_header_name, b4_header_guard):
   14827 	Remove, since they couldn't handle arbitrary characters in file
   14828 	names.
   14829 	* data/lalr1.cc: Likewise.
   14830 	* data/yacc.c: Likewise.
   14831 
   14832 	* src/files.c (output_infix): Remove; all uses removed.
   14833 	* src/files.h: Likewise.
   14834 
   14835 	* data/glr.c: Remove use of "#ifdef b4_header_guard", since it
   14836 	mishandled funny characters in file names, and anyway it isn't
   14837 	needed any more.
   14838 	* data/yacc.c: Likewise.
   14839 	* data/lalr1.cc: Use YYSLP_NEEDED instead of b4_header_guard.
   14840 
   14841 	* data/glr.c (YYSTYPE_IS_TRIVIAL): Define when the .h file would.
   14842 	* data/yacc.c: Likewise.
   14843 
   14844 	* src/muscle_tab.c: Include quotearg.h, since we need to quote C
   14845 	strings now.
   14846 	(muscle_init): Quote filename as a C string.
   14847 	* src/muscle_tab.h (MUSCLE_GROW_STRING_PAIR): Remove; unused.
   14848 	(MUSCLE_OBSTACK_SGROW, MUSCLE_INSERT_C_STRING): New macros.
   14849 	* src/output.c (escaped_file_name_output): New function.
   14850 	(prepare_symbols): Quote tokens for M4.
   14851 	(prepare): Don't insert output_infix, output_prefix,
   14852 	output_parser_name, output_header_name; this is now down by scan-skel.
   14853 	Insert skeleton as a C string.
   14854 
   14855 	* src/output.c (user_actions_output, symbol_destructors_output,
   14856 	symbol_printers_output): Quote filenames for C and M4.
   14857 	* src/reader.c (prologue_augment, epilogue_set): Likewise.
   14858 
   14859 	* src/scan-gram.l (<SC_CHARACTER>): Don't worry about any backslash
   14860 	escapes other than \\ and \'; this simplifies the code.
   14861 	(<SC_STRING>): Likewise, for \\ and \".
   14862 	(<SC_COMMENT,SC_LINE_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,
   14863 	SC_PROLOGUE,SC_EPILOGUE>): Escape $ and @, too.
   14864 	Use new escapes @{ and @} for [ and ].
   14865 
   14866 	* src/scan-skel.l (yylineno, yyoutname): Remove static vars, replacing
   14867 	them with auto vars.
   14868 	Switch to new escape scheme, where @ is the escape character uniformly.
   14869 	Abort if a stray escape character is found.  Avoid unbounded input
   14870 	buffer when parsing non-escaped text.
   14871 
   14872 	* tests/input.at (Torturing the Scanner): Add tests that @oline@,
   14873 	__oline__, #output, $@, and @{ do not have unintended meanings.
   14874 
   14875 2002-11-09  Paul Eggert  <eggert (a] twinsun.com>
   14876 
   14877 	Fix the test failure due to GCC warnings described in
   14878 	<http://lists.gnu.org/archive/html/bug-bison/2002-11/msg00000.html>.
   14879 	* data/glr.c (yyis_pact_ninf, yyis_table_ninf): New macros, which
   14880 	evaluate to 0 if it's impossible for NINF to be in the respective
   14881 	table.
   14882 	(yygetLRActions, yyrecoverParseError): Use them.
   14883 
   14884 	* src/scan-gram.l (unexpected_end_of_file): Fix bug: columns were
   14885 	counted in the token inserted at end of file.  Now takes
   14886 	location_t *, not location_t, so that the location can be
   14887 	adjusted.  All uses changed.
   14888 
   14889 	* tests/regression.at (Invalid inputs): Adjust wording in
   14890 	diagnostic to match the new behavior.
   14891 
   14892 	* tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR,
   14893 	AT_DATA_HORIZONTAL_GRAMMAR, AT_DATA_LOOKAHEADS_GRAMMAR,
   14894 	AT_DATA_STACK_TORTURE): Replace `assert (x);' with `if (! (x))
   14895 	abort ();'.  This reduces the runtime of the "Many lookaheads"
   14896 	test from 27.6 to 2.7 minutes on a 440 MHz Ultrasparc III running
   14897 	GCC 3.2.
   14898 
   14899 2002-11-07  Paul Eggert  <eggert (a] twinsun.com>
   14900 
   14901 	* src/parse-gram.y (CHARACTER): Remove unused token.
   14902 	All uses removed.
   14903 
   14904 	* src/scan-gram.l: Remove stack option.  We no longer use the
   14905 	stack, since the stack was never deeper than 1; instead, use the
   14906 	new auto var c_context to record the stacked value.
   14907 
   14908 	Remove nounput option.  At an unexpected end of file, we now unput
   14909 	the minimal input necessary to end cleanly; this simplifies the
   14910 	code.
   14911 
   14912 	Avoid unbounded token sizes where this is easy.
   14913 
   14914 	(unexpected_end_of_file): New function.
   14915 	Use it to systematize the error message on unexpected EOF.
   14916 	(last-string): Now auto, not static.
   14917 	(YY_OBS_FREE): Remove unnecessary do while (0) wrapper.
   14918 	(scanner_last_string_free): Remove; not used.
   14919 	(percent_percent_count): Move decl to just before use.
   14920 	(SC_ESCAPED_CHARACTER): Return ID at unexpected end of file,
   14921 	not the (never otherwised-used) CHARACTER.
   14922 
   14923 2002-11-07  Akim Demaille  <akim (a] epita.fr>
   14924 
   14925 	Let yyerror always receive the msg as last argument, so that
   14926 	yyerror can be variadic.
   14927 
   14928 	* data/yacc.c (b4_yyerror_args): New.
   14929 	Use it when calling yyerror.
   14930 	* data/glr.c (b4_yyerror_args, b4_lyyerror_args): New.
   14931 	Use it when calling yyerror.
   14932 	* doc/bison.texinfo (Error Reporting): Adjust.
   14933 	* tests/calc.at (_AT_DATA_CALC_Y): Adjust.
   14934 	* tests/cxx-type.at (_AT_TEST_GLR_CALC): Adjust.
   14935 
   14936 2002-11-06  Akim Demaille  <akim (a] epita.fr>
   14937 
   14938 	#line should have quoted strings.
   14939 	Ideally, this should be done by m4_quotearg.
   14940 
   14941 	* src/scan-skel.l: Include quotearg.h.
   14942 	Quote __ofile__.
   14943 	* src/output.c (symbol_printers_output)
   14944 	(symbol_destructors_output): Quote the file name.
   14945 
   14946 2002-11-06  Akim Demaille  <akim (a] epita.fr>
   14947 
   14948 	* tests/regression.at (Invalid inputs): Adjust to the recent
   14949 	messages.
   14950 
   14951 2002-11-06  Akim Demaille  <akim (a] epita.fr>
   14952 
   14953 	Restore --no-lines.
   14954 	Reported by Jim Kent.
   14955 
   14956 	* data/c.m4 (b4_syncline): New.
   14957 	* data/glr.c, data/yacc.c, data/lalr1.cc: Use it.
   14958 	* src/reader.c (prologue_augment, epilogue_set): Use b4_syncline.
   14959 	* src/output.c (user_actions_output): Likewise.
   14960 	(prepare): Define 'b4_synclines_flag'.
   14961 	* src/muscle_tab.c (muscle_init): Don't define b4_linef.
   14962 
   14963 2002-11-06  Akim Demaille  <akim (a] epita.fr>
   14964 
   14965 	* src/main.c (main): Free `infile'.
   14966 	* src/scan-gram.l (handle_syncline): New.
   14967 	Recognize `#line'.
   14968 	* src/output.c (user_actions_output, symbol_destructors_output)
   14969 	(symbol_printers_output): Use the location's file name, not
   14970 	infile.
   14971 	* src/reader.c (prologue_augment, epilogue_set): Likewise.
   14972 
   14973 2002-11-05  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   14974 
   14975 	* src/tables.c (matching_state): Don't allow states to match if
   14976 	either has GLR conflict entries.
   14977 
   14978 2002-11-05  Paul Eggert  <eggert (a] twinsun.com>
   14979 
   14980 	* src/scan-gram.l: Use more accurate diagnostics, e.g.
   14981 	"integer out of range" rather than "invalid value".
   14982 	* tests/input.at (Invalid $n, Invalid @n): Change expected wording
   14983 	accordingly.
   14984 
   14985 	Scan <% and %> digraphs in C code as POSIX 1003.1-2001 requires.
   14986 	Also, remove one static variable in the scanner.
   14987 
   14988 	* src/scan-gram.l (braces_level): Now auto, not static.
   14989 	Initialize to zero if the compiler is being picky.
   14990 	(INITIAL): Clear braces_level instead of incrementing it.
   14991 	(SC_BRACED_CODE): Treat <% and %> as { and } when inside C code,
   14992 	as POSIX 1003.1-2001 requires.
   14993 	* src/system.h (IF_LINT): New macro, taken from coreutils.
   14994 	* configure.ac: Define "lint" if --enable-gcc-warnings.
   14995 
   14996 2002-11-05  Akim Demaille  <akim (a] epita.fr>
   14997 
   14998 	* src/scan-gram.l: When it starts with `%', complain about the
   14999 	whole directive, not just that `invalid character: %'.
   15000 
   15001 2002-11-04  Akim Demaille  <akim (a] epita.fr>
   15002 
   15003 	* Makefile.maint: Update from Autoconf.
   15004 	(update, cvs-update, po-update, do-po-update): New.
   15005 
   15006 2002-11-04  Akim Demaille  <akim (a] epita.fr>
   15007 
   15008 	* tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
   15009 	and yyerror.
   15010 	Have yyerror `use' its arguments.
   15011 	* tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF
   15012 	returns true when location & yacc & pure & parse-param.
   15013 	(_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
   15014 
   15015 2002-11-04  Akim Demaille  <akim (a] epita.fr>
   15016 
   15017 	* src/location.h (LOCATION_PRINT): Use quotearg slot 3 to avoid
   15018 	clashes.
   15019 	* src/scan-gram.l: Use [\'] instead of ['] to pacify
   15020 	font-lock-mode.
   15021 	Use complain_at.
   15022 	Use quote, not quote_n since LOCATION_PRINT no longer uses the
   15023 	slot 0.
   15024 
   15025 2002-11-03  Paul Eggert  <eggert (a] twinsun.com>
   15026 
   15027 	* src/reader.c (get_merge_function, grammar_current_rule_check):
   15028 	Use consistent diagnostics for reporting type name clashes.
   15029 	Quote the types with <>, for consistency with Yacc.
   15030 	* tests/input.at (Type Clashes): Adjust to diagnostic changes.
   15031 
   15032 2002-11-03  Akim Demaille  <akim (a] epita.fr>
   15033 
   15034 	* data/c.m4 (b4_identification, b4_user_args, b4_parse_param):
   15035 	New.
   15036 	* data/yacc.m4 (b4_pure_args, b4_Pure_args): New.
   15037 	(b4_parse_param): Remove.
   15038 	Use b4_identification.
   15039 	Propagate b4_pure_args where needed to pass them to yyerror.
   15040 	* data/glr.m4 (b4_parse_param): Remove.
   15041 	(b4_user_formals, b4_pure_args, b4_pure_formals, b4_lpure_args)
   15042 	(b4_lpure_formals): New.
   15043 	Use b4_identification.
   15044 	(YY_USER_FORMALS, YY_USER_ARGS): Remove, replaced by
   15045 	b4_user_formals and b4_user_args.
   15046 	(yyexpandGLRStack, yyFail, yyaddDeferredAction, yyglrShiftDefer)
   15047 	(yyreportAmbiguity): When using a pure parser, also need
   15048 	the location, and the parse-params.
   15049 	Adjust callers.
   15050 	(yyuserAction, yyglrShift, yyreportParseError, yyrecoverParseError):
   15051 	When using a pure parser, also need the parse-params.
   15052 	Adjust callers.
   15053 	* tests/calc.at: Test pure (%pure-parser) and absolutely pure
   15054 	(%pure-parser + %parse-param) LALR and GLR parsers.
   15055 	(AT_CHECK_PUSHDEFS, AT_CHECK_POPDEFS): New, define AT_PARAM_IF,
   15056 	AT_LOCATION_IF, AT_PURE_IF, AT_GLR_IF, AAT_PURE_AND_LOC_IF,
   15057 	AT_GLR_OR_PARAM_IF, AT_YYERROR_ARG_LOC_IF, AT_YYERROR_SEES_LOC_IF.
   15058 	(_AT_DATA_CALC_Y): Equip for purity of yyerror.
   15059 	(_AT_CHECK_CALC_ERROR): Use AT_YYERROR_SEES_LOC_IF.
   15060 	* tests/cxx-type.at (_AT_TEST_GLR_CALC): Equip for yyerror purity.
   15061 	* doc/bison.texinfo: Untabify the whole file.
   15062 	(Parser Function): Document %parse-param, deprecate YYPARSE_PARAM.
   15063 	(Pure Calling): Document %lex-param, deprecate YYLEX_PARAM.
   15064 	(Error Reporting): Adjust to these new directives.
   15065 	Document %error-verbose, deprecate YYERROR_VERBOSE.
   15066 
   15067 2002-11-03  Akim Demaille  <akim (a] epita.fr>
   15068 
   15069 	* tests/calc.at: Change all the AT_CHECK_CALC_LALR and
   15070 	AT_CHECK_CALC_GLR invocations to use % directives, instead of
   15071 	command line options.
   15072 	* tests/cxx-type.at: Formatting changes.
   15073 
   15074 2002-11-03  Paul Eggert  <eggert (a] twinsun.com>
   15075 
   15076 	* src/scan-gram.l: Revamp to fix POSIX incompatibilities,
   15077 	to count columns correctly, and to check for invalid inputs.
   15078 
   15079 	Use mbsnwidth to count columns correctly.  Account for tabs, too.
   15080 	Include mbswidth.h.
   15081 	(YY_USER_ACTION): Invoke extend_location rather than LOCATION_COLUMNS.
   15082 	(extend_location): New function.
   15083 	(YY_LINES): Remove.
   15084 
   15085 	Handle CRLF in C code rather than in Lex code.
   15086 	(YY_INPUT): New macro.
   15087 	(no_cr_read): New function.
   15088 
   15089 	Scan UCNs, even though we don't fully handle them yet.
   15090 	(convert_ucn_to_byte): New function.
   15091 
   15092 	Handle backslash-newline correctly in C code.
   15093 	(SC_LINE_COMMENT, SC_YACC_COMMENT): New states.
   15094 	(eols, blanks): Remove.  YY_USER_ACTION now counts newlines etc.;
   15095 	all uses changed.
   15096 	(tag, splice): New EREs.  Do not allow NUL or newline in tags.
   15097 	Use {splice} wherever C allows backslash-newline.
   15098 	YY_STEP after space, newline, vertical-tab.
   15099 	("/*"): BEGIN SC_YACC_COMMENT, not yy_push_state (SC_COMMENT).
   15100 
   15101 	(letter, id): Don't assume ASCII; e.g., spell out a-z.
   15102 
   15103 	({int}, handle_action_dollar, handle_action_at): Check for integer
   15104 	overflow.
   15105 
   15106 	(YY_STEP): Omit trailing semicolon, so that it's more like C.
   15107 
   15108 	(<SC_ESCAPED_STRING,SC_ESCAPED_CHARACTER>): Allow \0 and \00
   15109 	as well as \000.  Check for UCHAR_MAX, not 255.
   15110 	Allow \x with an arbitrary positive number of digits, as in C.
   15111 	Check for overflow here.
   15112 	Allow \? and UCNs, for compatibility with C.
   15113 
   15114 	(handle_symbol_code_dollar): Use quote_n slot 1 to avoid collision
   15115 	with quote slot used by complain_at.
   15116 
   15117 	* tests/input.at: Add tests for backslash-newline, m4 quotes
   15118 	in symbols, long literals, and funny escapes in strings.
   15119 
   15120 	* configure.ac (jm_PREREQ_MBSWIDTH): Add.
   15121 	* lib/Makefile.am (libbison_a_SOURCES): Add mbswidth.h, mbswidth.c.
   15122 	* lib/mbswidth.h, lib/mbswidth.c: New files, from GNU gettext.
   15123 	* m4/Makefile.am (EXTRA_DIST): Add mbswidth.m4.
   15124 	* m4/mbswidth.m4: New file, from GNU coreutils.
   15125 
   15126 	* doc/bison.texinfo (Grammar Outline): Document // comments.
   15127 	(Symbols): Document that trigraphs have no special meaning in Bison,
   15128 	nor is backslash-newline allowed.
   15129 	(Actions): Document that trigraphs have no special meaning.
   15130 
   15131 	* src/location.h (LOCATION_COLUMNS, LOCATION_LINES): Remove;
   15132 	no longer used.
   15133 
   15134 2002-11-02  Paul Eggert  <eggert (a] twinsun.com>
   15135 
   15136 	* src/reader.c: Don't include quote.h; not needed.
   15137 	(get_merge_function): Reword warning to be consistent with
   15138 	type clash diagnostic in grammar_current_rule_check.
   15139 
   15140 	* lib/quotearg.c (quotearg_buffer_restyled): Fix off-by-two
   15141 	bug in trigraph handling.
   15142 
   15143 	* src/output.c (prepare_symbols): When printing token names,
   15144 	escape "[" as "@<:@" and likewise for "]".
   15145 
   15146 	* src/system.h (errno): Remove declaration, as we are now
   15147 	assuming C89 or better, and C89 guarantees errno.
   15148 
   15149 2002-10-30  Paul Eggert  <eggert (a] twinsun.com>
   15150 
   15151 	* lib/bitset_stats.c (bitset_stats_read, bitset_stats_write):
   15152 	Check for close failures.
   15153 	* src/files.h (xfclose): Return void, not int, since it always
   15154 	returned zero.
   15155 	* src/files.c (xfclose): Likewise.  Report I/O error if ferror
   15156 	indicates one.
   15157 	* src/output.c (output_skeleton): Use xfclose rather than fclose
   15158 	and ferror.  xfclose now checks ferror.
   15159 
   15160 	* data/glr.c (YYLEFTMOST_STATE): Remove.
   15161 	(yyreportTree): Use a stack-based leftmost state.  This avoids
   15162 	our continuing battles with bogus warnings about initializers.
   15163 
   15164 2002-10-30  Akim Demaille  <akim (a] epita.fr>
   15165 
   15166 	* src/system.h: Don't use #ifdef/#ifndef on HAVE_ values, only
   15167 	#if.
   15168 
   15169 2002-10-29  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   15170 
   15171 	* tests/glr-regr1.at: New test for reported regressions.
   15172 	* tests/testsuite.at: Add glr-regr1.at test.
   15173 	* tests/Makefile.am: Add glr-regr1.at test.
   15174 
   15175 2002-10-24  Paul Eggert  <eggert (a] twinsun.com>
   15176 
   15177 	Version 1.75a.
   15178 
   15179 	* tests/calc.at (_AT_DATA_CALC_Y): Remove unused strcat declaration.
   15180 	* tests/cxx-type.at (_AT_TEST_GLR_CALC): Include stdlib.h, since
   15181 	we use malloc.  Don't assume 'A' through 'Z' are contiguous.
   15182 	Don't assume strdup exists; POSIX says its an XSI extension.
   15183 	Check for buffer overflow on input.
   15184 
   15185 2002-10-24  Akim Demaille  <akim (a] epita.fr>
   15186 
   15187 	* src/output.c (output_skeleton): Don't disable M4sugar comments
   15188 	too soon: it results in comments being expanded.
   15189 	* data/yacc.c, data/glr.c, data/lalr1.cc: Do it right before the
   15190 	first output.
   15191 
   15192 2002-10-24  Akim Demaille  <akim (a] epita.fr>
   15193 
   15194 	* data/yacc.c (m4_int_type): New.
   15195 	* data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed
   15196 	char' as only yacc.c wants K&R portability.
   15197 	* data/glr.c (yysigned_char): Remove.
   15198 	* data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name.
   15199 	Reported by Quoc Peyrot.
   15200 
   15201 2002-10-23  Paul Eggert  <eggert (a] twinsun.com>
   15202 
   15203 	* src/main.c (main): With --trace=time, report times even if a
   15204 	non-fatal error occurs.  Formerly, the times were reported in some
   15205 	such cases but not in others.
   15206 	* src/reader.c (reader): Just return if a complaint has been issued,
   15207 	instead of exiting, so that 'main' can report times.
   15208 
   15209 2002-10-22  Akim Demaille  <akim (a] epita.fr>
   15210 
   15211 	* src/system.h: Include sys/types.
   15212 	Reported by Bert Deknuydt.
   15213 
   15214 2002-10-23  Paul Eggert  <eggert (a] twinsun.com>
   15215 
   15216 	* configure.ac (AC_PROG_LEX): Use instead of AM_PROG_LEX.
   15217 	Suggested by Art Haas.
   15218 
   15219 2002-10-22  Paul Eggert  <eggert (a] twinsun.com>
   15220 
   15221 	* src/complain.c (exit) [! (STDC_HEADERS || _LIBC)]: Remove exit
   15222 	decl; not needed any more.
   15223 	* src/main.c (main): Use return to exit, undoing yesterday's change.
   15224 	The last OS that we could find where this wouldn't work is
   15225 	SunOS 3.5, and that's too old to worry about now.
   15226 
   15227 	* data/glr.c (struct yyltype): Define members even when not
   15228 	doing locations.  This is more consistent with yacc.c, and it
   15229 	works around the following bug reports:
   15230 	http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00106.html
   15231 	http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00111.html
   15232 
   15233 	* doc/bison.texinfo: Minor spelling and typographical fixes.  Use
   15234 	@acronym consistently.  Standardize on "Yacc" instead of "YACC",
   15235 	"Algol" instead of "ALGOL".  Give a bit more history about BNF.
   15236 
   15237 2002-10-22  Akim Demaille  <akim (a] epita.fr>
   15238 
   15239 	* data/README: New.
   15240 
   15241 2002-10-21  Paul Eggert  <eggert (a] twinsun.com>
   15242 
   15243 	Be consistent about 'bool'; the old code used an enum in one
   15244 	module and an int in another, and this violates the C standard.
   15245 	* m4/stdbool.m4: New file, from coreutils 4.5.3.
   15246 	* configure.ac (AC_HEADER_STDBOOL): Add.
   15247 	* m4/Makefile.am (EXTRA_DIST): Add stdbool.m4.
   15248 	* src/muscle_tab.c (hash_compare_muscles): (a ? FALSE : TRUE) -> (! a)
   15249 	* src/symtab.c (hash_compare_symbol_t): Likewise.
   15250 	* src/system.h (bool, false, true): Use a definition consistent
   15251 	with ../lib/hash.c.  All uses changed.
   15252 
   15253 	* src/complain.c (warning_issued): Renamed from warn_message_count,
   15254 	so that we needn't worry about integer overflow (!).
   15255 	Now of type bool.  All uses changed.
   15256 	(complaint_issued): Renamed from complain_message_count; likewise.
   15257 
   15258 	* src/main.c (main): Use exit to exit with failure.
   15259 
   15260 	* src/complain.c (fatal_at, fatal): Use EXIT_FAILURE and EXIT_SUCCESS
   15261 	rather than 1 and 0.
   15262 	* src/main.c (main): Likewise.
   15263 	* src/getargs.c (getargs): Likewise.
   15264 	* src/reader.c (reader): Likewise.
   15265 
   15266 	* src/getarg.c (getargs): Remove duplicate code for
   15267 	"Try `bison --help'".
   15268 
   15269 	* src/files.c (xfopen, xfclose): Use EXIT_FAILURE rather than 2.
   15270 	What was that "2" for?
   15271 
   15272 	* src/complain.h (fatal, fatal_at): Add __attribute__((__noreturn__)).
   15273 	* src/getargs.c (usage): Likewise.
   15274 
   15275 	* src/getargs.c (getargs): When there are too few operands, report
   15276 	the last one.  When there are too many, report the first extra
   15277 	one.  This is how diffutils does it.
   15278 
   15279 2002-10-20  Paul Eggert  <eggert (a] twinsun.com>
   15280 
   15281 	Remove K&R vestiges.
   15282 	* configure.ac (AC_C_CONST, AM_C_PROTOTYPES): Remove.
   15283 	* src/complain.c (VA_START): Remove.  Assume prototypes.
   15284 	(vfprintf) [! (HAVE_VPRINTF || defined vfprintf)]: New macro.
   15285 	(private_strerror, warn_at, warn, complain_at, complain, fatal_at,
   15286 	fatal): Assume prototypes.
   15287 	* src/complain.h: Assume prototypes.
   15288 	* src/system.h (PARAMS): Remove.
   15289 	Include <limits.h> unconditionally, since it's guaranteeed even
   15290 	for a freestanding C89 compiler.
   15291 	(SHRT_MIN, SHRT_MAX): Remove, since C89 guarantees them.
   15292 	* src/vmsgetargs.c (getargs, cli_present, cli_get_value): Prototype.
   15293 
   15294 2002-10-20  Akim Demaille  <akim (a] epita.fr>
   15295 
   15296 	* src/muscle_tab.c (muscle_grow): Remove trailing debugging code.
   15297 	* data/glr.c (YY_USER_FORMALS, YY_USER_ARGS): New.
   15298 	(yyuserAction, yydoAction, yyglrReduce, yyresolveValue)
   15299 	(yyresolveStates, yyresolveAction, yyresolveStack)
   15300 	(yyprocessOneStack): Use them.
   15301 	(yy_reduce_print): New.
   15302 	* tests/calc.at (_AT_DATA_CALC_Y): Exercise %parse-param.
   15303 
   15304 2002-10-20  Akim Demaille  <akim (a] epita.fr>
   15305 
   15306 	* data/c.m4 (b4_c_ansi_args): Recognize functions with no
   15307 	arguments and output `void'.
   15308 	(b4_c_function): Rename as...
   15309 	(b4_c_function_def): this.
   15310 	(b4_c_function_decl, b4_c_ansi_function_def)
   15311 	(b4_c_ansi_function_decl): New.
   15312 	Change the interpretation of the arguments: before `int, foo', now
   15313 	`int foo, foo'.
   15314 	* data/yacc.c (yyparse): Prototype and define thanks to these.
   15315 	Adjust b4_c_function_def uses.
   15316 	* data/glr.c (yyparse): Likewise, but ANSI only.
   15317 
   15318 2002-10-20  Akim Demaille  <akim (a] epita.fr>
   15319 
   15320 	* src/output.c (prepare): Move the definition of `tokens_number',
   15321 	`nterms_number', `undef_token_number', `user_token_number_max'
   15322 	to...
   15323 	(prepare_tokens): Here.
   15324 	(prepare_tokens): Rename as...
   15325 	(prepare_symbols): this.
   15326 	(prepare): Move the definition of `rules_number' to...
   15327 	(prepare_rules): here.
   15328 	(prepare): Move the definition of `last', `final_state_number',
   15329 	`states_number' to...
   15330 	(prepare_states): here.
   15331 	* data/yacc.c, data/lalr1.cc, data/glr.c: Normalize `>' into `<'.
   15332 
   15333 2002-10-20  Akim Demaille  <akim (a] epita.fr>
   15334 
   15335 	* src/tables.h, src/tables.c, src/output.c: Comment changes.
   15336 
   15337 2002-10-20  Akim Demaille  <akim (a] epita.fr>
   15338 
   15339 	* data/yacc.c, data/yacc.c (b4_location_if, b4_pure_if): Move to...
   15340 	* data/c.m4: here.
   15341 
   15342 2002-10-20  Akim Demaille  <akim (a] epita.fr>
   15343 
   15344 	* src/output.c (prepare): Use MUSCLE_INSERT_STRING.
   15345 	* src/muscle_tab.c (muscle_pair_list_grow): Rename `val as
   15346 	`pair'.
   15347 	(muscle_init): Move the `b4_ltype', `b4_maxdepth', `b4_initdepth',
   15348 	`name' to...
   15349 	* data/glr.c, data/lalr1.cc, data/yacc.c (b4_location_type)
   15350 	(b4_stack_depth_init, b4_stack_depth_max, b4_parser_class_name):
   15351 	These.
   15352 
   15353 2002-10-19  Paul Eggert  <eggert (a] twinsun.com>
   15354 
   15355 	Do not create a temporary file, as that involves security and
   15356 	cleanup headaches.  Instead, use a pair of pipes.
   15357 	Derived from a suggestion by Florian Krohm.
   15358 	* lib/subpipe.c, lib/subpipe.h, m4/subpipe.m4: New files.
   15359 	* lib/mkstemp.c, lib/readpipe.c, lib/tempname.c, m4/mkstemp.m4: Remove.
   15360 	* configure.ac (UTILS_FUNC_MKSTEMP, jm_PREREQ_TEMPNAME): Remove.
   15361 	(BISON_PREREQ_SUBPIPE): Add.
   15362 	* lib/Makefile.am (libbison_a_SOURCES): Remove readpipe.c.
   15363 	Add subpipe.h, subpipe.c.
   15364 	* m4/Makefile.am (EXTRA_DIST): Remove mkstemp.m4.  Add subpipe.m4.
   15365 	* po/POTFILES.in: Add lib/subpipe.c.
   15366 	* src/output.c: Include "subpipe.h".
   15367 	(m4_invoke): Remove decl.
   15368 	(scan_skel): New decl.
   15369 	(output_skeleton): Use pipe rather than temporary file for m4 input.
   15370 	Check that m4sugar.m4 is readable, to avoid deadlock.
   15371 	Check for pipe I/O error.
   15372 	* src/scan-skel.l (readpipe): Remove decl.
   15373 	(scan_skel): New function, to be used in place of m4_invoke.
   15374 	Read from stream rather than file.
   15375 
   15376 	* lib/timevar.c (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Do not cast to
   15377 	float, as this generates a warning on Solaris 8 + GCC 3.2 with
   15378 	--enable-gcc-warnings.  Instead, divide into 1.0 rather than 1;
   15379 	this generates a more-accurate value anyway.
   15380 
   15381 	* lib/timevar.c (timervar_accumulate): Rename locals to
   15382 	avoid confusion with similarly-named more-global.
   15383 	* src/muscle_tab.c (muscle_pair_list_grow): Likewise.
   15384 
   15385 	* src/output.c (prepare): Use xstrdup to convert char const *
   15386 	to char *, to avoid GCC warning.
   15387 
   15388 2002-10-19  Akim Demaille  <akim (a] epita.fr>
   15389 
   15390 	* tests/calc.at (_AT_DATA_CALC_Y): Define VAL, LOC, LEX_FORMALS,
   15391 	LEX_PRE_FORMALS, LEX_ARGS, LEX_PRE_ARGS, USE_LEX_ARGS.
   15392 	Use them to have `calc.y' ready for %pure-parser.
   15393 	* data/yacc.c (YYLEX): Pass a yylex return type to
   15394 	b4_c_function_call.
   15395 
   15396 2002-10-19  Akim Demaille  <akim (a] epita.fr>
   15397 
   15398 	Prototype support of %lex-param and %parse-param.
   15399 
   15400 	* src/parse-gram.y: Add the definition of the %lex-param and
   15401 	%parse-param tokens, plus their rules.
   15402 	Drop the `_' version of %glr-parser.
   15403 	Add the "," token.
   15404 	* src/scan-gram.l (INITIAL): Scan them.
   15405 	* src/muscle_tab.c: Comment changes.
   15406 	(muscle_insert, muscle_find): Rename `pair' as `probe'.
   15407 	* src/muscle_tab.h (MUSCLE_INSERT_PREFIX): Remove unused.
   15408 	(muscle_entry_s): The `value' member is no longer const.
   15409 	Adjust all dependencies.
   15410 	* src/muscle_tab.c (muscle_init): Adjust: use
   15411 	MUSCLE_INSERT_STRING.
   15412 	Initialize the obstack earlier.
   15413 	* src/muscle_tab.h, src/muscle_tab.c (muscle_grow)
   15414 	(muscle_pair_list_grow): New.
   15415 	* data/c.m4 (b4_c_function_call, b4_c_args): New.
   15416 	* data/yacc.c (YYLEX): Use b4_c_function_call to honor %lex-param.
   15417 	* tests/calc.at: Use %locations, not --locations.
   15418 	(AT_CHECK_CALC_GLR): Use %glr-parser, not %glr_parser.
   15419 
   15420 2002-10-19  Akim Demaille  <akim (a] epita.fr>
   15421 
   15422 	* src/getargs.c (usage): Take status as argument and exit
   15423 	accordingly.
   15424 	Report the traditional `Try ... --help' message when status != 0.
   15425 	(usage, version): Don't take a FILE * as arg, it is pointless.
   15426 	(getargs): When there is an incorrect number of arguments, make it
   15427 	an error, and report it GNUlically thanks to `usage ()'.
   15428 
   15429 2002-10-18  Paul Eggert  <eggert (a] twinsun.com>
   15430 
   15431 	* data/glr.c (yyreportParseError): Don't assume that sprintf
   15432 	yields the length of the printed string, as this is not true
   15433 	on SunOS 4.1.4.  Reported by Peter Klein.
   15434 
   15435 	* tests/calc.at (_AT_DATA_CALC_Y): #undef memcmp and realloc.
   15436 	* tests/conflicts.at (%nonassoc and eof): Likewise.
   15437 	Fixes SunOS 4.1.4 test failure reported by Peter Klein.
   15438 
   15439 2002-10-17  Akim Demaille  <akim (a] epita.fr>
   15440 
   15441 	* src/getargs.h (trace_e): Add trace_scan, and trace_parse.
   15442 	* src/getargs.c (trace_types, trace_args): Adjust.
   15443 	* src/reader.c (grammar_current_rule_prec_set)
   15444 	(grammar_current_rule_dprec_set, grammar_current_rule_merge_set):
   15445 	Standardize error messages.
   15446 	And s/@prec/%prec/!
   15447 	(reader): Use trace_flag to enable scanner/parser debugging,
   15448 	instead of an adhoc scheme.
   15449 	* src/scan-gram.l: Remove trailing debugging code.
   15450 
   15451 2002-10-16  Paul Eggert  <eggert (a] twinsun.com>
   15452 
   15453 	* src/muscle_tab.h (MUSCLE_TAB_H_): Was misspelled as
   15454 	MUSCLE_TAB_H.
   15455 
   15456 	* NEWS: Officially drop support for building Bison with K&R C,
   15457 	since it didn't work anyway and it's not worth worrying about.
   15458 	* Makefile.maint (wget_files): Remove ansi2knr.c.
   15459 	(ansi2knr.c-url_prefix): Remove.
   15460 	* lib/.cvsignore: Remove ansi2knr, ansi2knr.*.
   15461 	* lib/Makefile.am (AUTOMAKE_OPTIONS): Remove.
   15462 	* src/Makefile.am (AUTOMAKE_OPTIONS): Remove.
   15463 
   15464 2002-10-15  Paul Eggert  <eggert (a] twinsun.com>
   15465 
   15466 	Stop using the "enum_" trick for K&R-style function definitions;
   15467 	it confused me, and I was the author!  Instead, assume that people
   15468 	who want to use K&R C compilers (when using these modules in GCC,
   15469 	perhaps?) will run ansi2knr.
   15470 
   15471 	* lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): Remove.
   15472 	All uses of "enum_" changed to "enum ".
   15473 	* lib/ebitset.c (enum_ebitset_find_mode): Likewise.
   15474 	* lib/lbitset.c (enum_lbitset_find_mode): Likewise.
   15475 
   15476 	* lib/abitset.c (abitset_and, abitset_and_cmp, abitset_and_or,
   15477 	abitset_and_or_cmp, abitset_andn, abitset_andn_cmp,
   15478 	abitset_andn_or, abitset_andn_or_cmp, abitset_bytes, abitset_copy,
   15479 	abitset_copy1, abitset_disjoint_p, abitset_empty_p,
   15480 	abitset_equal_p, abitset_init, abitset_list, abitset_list_reverse,
   15481 	abitset_not, abitset_ones, abitset_or, abitset_or_and,
   15482 	abitset_or_and_cmp, abitset_or_cmp, abitset_reset, abitset_set,
   15483 	abitset_size, abitset_small_list, abitset_subset_p, abitset_test,
   15484 	abitset_unused_clear, abitset_xor, abitset_xor_cmp, abitset_zero):
   15485 	Use function prototypes; this removes the need for declaring
   15486 	static functions simply to provide their prototypes.
   15487 	* lib/bitset.c (bitset_alloc, bitset_and_or_, bitset_and_or_cmp_,
   15488 	bitset_andn_or_, bitset_andn_or_cmp_, bitset_bytes, bitset_copy_,
   15489 	bitset_count_, bitset_create, bitset_dump, bitset_first,
   15490 	bitset_free, bitset_init, bitset_last, bitset_next,
   15491 	bitset_obstack_alloc, bitset_obstack_free, bitset_only_set_p,
   15492 	bitset_op4_cmp, bitset_or_and_, bitset_or_and_cmp_, bitset_prev,
   15493 	bitset_print, bitset_release_memory, bitset_toggle_,
   15494 	bitset_type_choose, bitset_type_get, bitset_type_name_get,
   15495 	debug_bitset): Likewise.
   15496 	* lib/bitset.h (bitset_set, bitset_reset, bitset_test): Likewise.
   15497 	* lib/bitset_stats.c (bitset_log_histogram_print,
   15498 	bitset_percent_histogram_print, bitset_stats_and,
   15499 	bitset_stats_and_cmp, bitset_stats_and_or,
   15500 	bitset_stats_and_or_cmp, bitset_stats_andn, bitset_stats_andn_cmp,
   15501 	bitset_stats_andn_or, bitset_stats_andn_or_cmp, bitset_stats_copy,
   15502 	bitset_stats_count, bitset_stats_disable, bitset_stats_disjoint_p,
   15503 	bitset_stats_dump, bitset_stats_empty_p, bitset_stats_enable,
   15504 	bitset_stats_equal_p, bitset_stats_free, bitset_stats_init,
   15505 	bitset_stats_list, bitset_stats_list_reverse, bitset_stats_not,
   15506 	bitset_stats_ones, bitset_stats_or, bitset_stats_or_and,
   15507 	bitset_stats_or_and_cmp, bitset_stats_or_cmp, bitset_stats_print,
   15508 	bitset_stats_print_1, bitset_stats_read, bitset_stats_reset,
   15509 	bitset_stats_set, bitset_stats_size, bitset_stats_subset_p,
   15510 	bitset_stats_test, bitset_stats_toggle, bitset_stats_type_get,
   15511 	bitset_stats_write, bitset_stats_xor, bitset_stats_xor_cmp,
   15512 	bitset_stats_zero): Likewise.
   15513 	* lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
   15514 	bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
   15515 	bitsetv_dump, debug_bitsetv): Likewise.
   15516 	* lib/ebitset.c (ebitset_and, ebitset_and_cmp, ebitset_andn,
   15517 	ebitset_andn_cmp, ebitset_bytes, ebitset_copy, ebitset_copy_,
   15518 	ebitset_copy_cmp, ebitset_disjoint_p, ebitset_elt_add,
   15519 	ebitset_elt_alloc, ebitset_elt_calloc, ebitset_elt_find,
   15520 	ebitset_elt_free, ebitset_elt_last, ebitset_elt_remove,
   15521 	ebitset_elt_zero_p, ebitset_elts_grow, ebitset_empty_p,
   15522 	ebitset_equal_p, ebitset_free, ebitset_init, ebitset_list,
   15523 	ebitset_list_reverse, ebitset_not, ebitset_ones, ebitset_op3_cmp,
   15524 	ebitset_or, ebitset_or_cmp, ebitset_release_memory, ebitset_reset,
   15525 	ebitset_set, ebitset_size, ebitset_subset_p, ebitset_test,
   15526 	ebitset_weed, ebitset_xor, ebitset_xor_cmp, ebitset_zero):
   15527 	Likewise.
   15528 	* lib/lbitset.c (debug_lbitset, lbitset_and, lbitset_and_cmp,
   15529 	lbitset_andn, lbitset_andn_cmp, lbitset_bytes, lbitset_copy,
   15530 	lbitset_copy_cmp, lbitset_disjoint_p, lbitset_elt_alloc,
   15531 	lbitset_elt_calloc, lbitset_elt_find, lbitset_elt_free,
   15532 	lbitset_elt_link, lbitset_elt_unlink, lbitset_elt_zero_p,
   15533 	lbitset_empty_p, lbitset_equal_p, lbitset_free, lbitset_init,
   15534 	lbitset_list, lbitset_list_reverse, lbitset_not, lbitset_ones,
   15535 	lbitset_op3_cmp, lbitset_or, lbitset_or_cmp, lbitset_prune,
   15536 	lbitset_release_memory, lbitset_reset, lbitset_set, lbitset_size,
   15537 	lbitset_subset_p, lbitset_test, lbitset_weed, lbitset_xor,
   15538 	lbitset_xor_cmp, lbitset_zero): Likewise.
   15539 
   15540 2002-10-14  Akim Demaille  <akim (a] epita.fr>
   15541 
   15542 	Version 1.75.
   15543 
   15544 2002-10-14  Akim Demaille  <akim (a] epita.fr>
   15545 
   15546 	* tests/Makefile.am (maintainer-check-posix): New.
   15547 
   15548 2002-10-14  Akim Demaille  <akim (a] epita.fr>
   15549 
   15550 	* data/glr.c [YYDEBUG] (YYLEFTMOST_STATE): Initialize the yyloc
   15551 	member.
   15552 
   15553 2002-10-14  Akim Demaille  <akim (a] epita.fr>
   15554 
   15555 	* src/tables.c (table_ninf_remap): base -> tab.
   15556 	Reported by Matt Rosing.
   15557 
   15558 2002-10-14  Paul Eggert  <eggert (a] twinsun.com>
   15559 
   15560 	* tests/action.at, tests/calc.at, tests/conflicts.at,
   15561 	tests/cxx-type.at, tests/headers.at, tests/input.at,
   15562 	tests/regression.at, tests/synclines.at, tests/torture.at:
   15563 	Say "bison -o foo.c foo.y", not "bison foo.y -o foo.c",
   15564 	so that the tests still work even if POSIXLY_CORRECT is set.
   15565 	* doc/bison.texinfo (Rpcalc Compile, Invocation): Likewise.
   15566 
   15567 	* data/c.m4 (b4_int_type): Use yysigned_char instead of signed char,
   15568 	for portability to K&R hosts.  Fix typo: signed char is guaranteed
   15569 	only to 127, not to 128.
   15570 	* data/glr.c (yysigned_char): New type.
   15571 	* data/yacc.c (yysigned_char): Likewise.
   15572 	* tests/regression.at (Web2c Actions): signed char -> yysigned_char.
   15573 
   15574 2002-10-13  Paul Eggert  <eggert (a] twinsun.com>
   15575 
   15576 	* data/yacc.c (yyparse): Rewrite to avoid "comparison is always
   15577 	true due to limited range of data type" warning from GCC.
   15578 
   15579 	* data/c.m4 (b4_token_defines): Protect against double-inclusion
   15580 	by wrapping enum yytokentype's definition inside #ifndef
   15581 	YYTOKENTYPE.  This undoes a bug I introduced on 2002-10-12.
   15582 
   15583 2002-10-13  Akim Demaille  <akim (a] epita.fr>
   15584 
   15585 	* data/glr.c (yyglrShiftDefer, yyaddDeferredAction, yydoAction):
   15586 	Un yy- yyrhs to avoid the name clash with the global YYRHS.
   15587 
   15588 2002-10-13  Akim Demaille  <akim (a] epita.fr>
   15589 
   15590 	* Makefile.maint: Update from Autoconf 2.54.
   15591 	* m4/strerror_r.m4 (AC_FUNC_STRERROR_R): Remove, shipped with 2.54.
   15592 
   15593 2002-10-13  Akim Demaille  <akim (a] epita.fr>
   15594 
   15595 	* src/print.c (print_state): Separate the list of solved conflicts
   15596 	from the other items.
   15597 	* tests/conflicts.at (Resolved SR Conflicts): Adjust.
   15598 
   15599 2002-10-13  Akim Demaille  <akim (a] epita.fr>
   15600 
   15601 	Let nondeterministic skeletons be usable with deterministic
   15602 	tables.
   15603 
   15604 	With the patch, GAWK compiled by GCC without -O2 passes its test
   15605 	suite using a GLR parser driven by LALR tables.  It fails with -O2
   15606 	because `struct stat' gives two different answers on my machine:
   15607 	88 (definition of an auto var) and later 96 (memset on this var).
   15608 	Hence the stack is badly corrumpted.  The headers inclusion is to
   15609 	blame: if I move the awk.h inclusion before GLR's system header
   15610 	inclusion, the two struct stat have the same size.
   15611 
   15612 	* src/tables.c (pack_table): Always create conflict_table.
   15613 	(token_actions): Always create conflict_list.
   15614 	* data/glr.c (YYFLAG): Remove, unused.
   15615 
   15616 2002-10-13  Akim Demaille  <akim (a] epita.fr>
   15617 
   15618 	* configure.ac (AC_GNU_SOURCE): Use it instead of hand written code.
   15619 	(O0FLAGS): New.
   15620 	(VALGRIND, GXX): New.
   15621 	* tests/atlocal.in (CFLAGS): Use O0FLAGS.
   15622 	* tests/bison.in: Run $PREBISON a pre-command.
   15623 	* tests/Makefile.am (maintainer-check, maintainer-check-valgrind)
   15624 	(maintainer-check-g++): New.
   15625 	* Makefile.am (maintainer-check): New.
   15626 
   15627 2002-10-13  Akim Demaille  <akim (a] epita.fr>
   15628 
   15629 	* data/glr.c: Formatting changes.
   15630 	Tweak some trace messages to match yacc.c's.
   15631 
   15632 2002-10-13  Akim Demaille  <akim (a] epita.fr>
   15633 
   15634 	GLR parsers sometimes raise parse errors instead of performing the
   15635 	default reduction.
   15636 	Reported by Charles-Henry de Boysson.
   15637 
   15638 	* tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Don't
   15639 	check the length of the traces when %glr.
   15640 	(_AT_CHECK_CALC_ERROR): Also skip `^Stack' lines, coming from
   15641 	GLR's traces.
   15642 	(AT_CHECK_CALC_LALR, AT_CHECK_CALC_GLR): New.
   15643 	Test GLR parsers.
   15644 	* data/glr.c (YYLEFTMOST_STATE): Fix its value.
   15645 	(yyltype): Remove the yy prefix from the member names.
   15646 	(yytable): Complete its comment.
   15647 	(yygetLRActions): Map error action number from YYTABLE from
   15648 	YYTABLE_NINF to 0.
   15649 	(yyisErrorAction): No longer compare YYACTION to YYPACT_NINF
   15650 	(which was a bug: it should have been YYTABEL_NINF, and yet it was
   15651 	not satisfying as we could compare an YYACTION computed from
   15652 	YYDEFACT to YYTABLE_NINF although they are unrelated): 0 is the
   15653 	only value for error actions.
   15654 	(yyreportParseError): In verbose parse error messages, don't issue
   15655 	`error' in the list of expected tokens.
   15656 	* data/yacc.c (yyparse) <yybackup>: Rewrite the decoding of the
   15657 	next action to perform to match glr.c's decoding.
   15658 	(yytable): Complete its comment.
   15659 
   15660 2002-10-13  Paul Eggert  <eggert (a] twinsun.com>
   15661 
   15662 	Fix problem reported by Henrik Grubbstroem in
   15663 	<http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00098.html>:
   15664 	"nonterm: { $$ = 123; } { $$ = $1; };" was wrongly rejected,
   15665 	because the Bison parser reads the second action before reducing
   15666 	the first one.
   15667 	* src/scan-gram.l (rule_length): New static var.
   15668 	Use it to keep track of the rule length in the scanner, since
   15669 	we can't expect the parser to be in lock-step sync with the scanner.
   15670 	(handle_action_dollar, handle_action_at): Use this var.
   15671 	* tests/actions.at (Exotic Dollars): Test for the problem.
   15672 
   15673 2002-10-12  Paul Eggert  <eggert (a] twinsun.com>
   15674 
   15675 	* lib/timevar.c [! IN_GCC && HAVE_SYS_TIME_H]: Include <sys/time.h>.
   15676 	* m4/timevar.m4 (BISON_PREREQ_TIMEVAR): Check for <sys/time.h>.
   15677 	Include <sys/time.h> when checking for clock_t and struct tms.
   15678 	Use same include order as source.
   15679 	This is for the SunOS 4.1.4 porting bug reported by Peter Klein in
   15680 	<http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00016.html>.
   15681 
   15682 	* lib/timevar.c: Update copyright date and clarify comments.
   15683 	(get_time) [IN_GCC]: Keep the GCC version for reference.
   15684 
   15685 	* lib/timevar.c, lib/timevar.h, lib/timevar.def: Import
   15686 	GCC version as of today, then merge Bison's changes.
   15687 	Change "GCC" to "Bison" in copyright notice.  timevar.def's
   15688 	author is Akim, so change that too.
   15689 
   15690 	* src/reader.c (grammar_current_rule_check):
   15691 	Don't worry about the default action if $$ is untyped.
   15692 	Prevents bogus warnings reported by Jim Gifford in
   15693 	<http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00015.html>.
   15694 
   15695 	* data/c.m4 (b4_token_enum): Do not define YYTOKENTYPE.
   15696 	* data/glr.c, data/lalr1.cc, data/yacc.c:
   15697 	Output token definitions before the first part of user declarations.
   15698 	Fixes compatibility problem reported by Jim Gifford for kbd in
   15699 	<http://lists.gnu.org/archive/html/bug-bison/2002-10/msg00014.html>.
   15700 
   15701 2002-10-11  Paul Eggert  <eggert (a] twinsun.com>
   15702 
   15703 	* data/yacc.c (yyreport_parse_error): Remove, putting its body into...
   15704 	(yyparse): here.  This undoes some of the 2002-07-25 change.
   15705 	Compatibility problem reported by Ralf S. Engelschall with
   15706 	OSSP cfg <http://www.ossp.org/pkg/lib/cfg/>.
   15707 
   15708 2002-10-11  Akim Demaille  <akim (a] epita.fr>
   15709 
   15710 	* tests/regression.at Characters Escapes): New.
   15711 	* src/scan-gram.l (SC_ESCAPED_CHARACTER): Accept \' in strings and
   15712 	characters.
   15713 	Reported by Jan Nieuwenhuizen.
   15714 
   15715 2002-10-11  Akim Demaille  <akim (a] epita.fr>
   15716 
   15717 	* po/id.po: New.
   15718 
   15719 2002-10-10  Paul Eggert  <eggert (a] twinsun.com>
   15720 
   15721 	Portability fixes for bitsets; this also avoids several GCC
   15722 	warnings.
   15723 
   15724 	* lib/abitset.c: Include <stddef.h>, for offsetof.
   15725 	* lib/lbitset.c: Likewise.
   15726 
   15727 	* lib/abitset.c (abitset_bytes): Return a size that is aligned
   15728 	properly for vectors of objects.  Do not assume that adding a
   15729 	header size to a multiple of a word size yields a value that is
   15730 	properly aligned for the whole union.
   15731 	* lib/bitsetv.c (bitsetv_alloc): Likewise.
   15732 
   15733 	* lib/bitset_stats.c (bitset_stats_bytes): Adjust to new,
   15734 	unique names for structures.
   15735 	* lib/ebitset.c (ebitset_bytes): Likewise.
   15736 	* lib/lbitset.c (lbitset_bytes): Likewise.
   15737 
   15738 	* lib/abitset.c (abitset_ones, abitset_zero, abitset_empty_p,
   15739 	abitset_copy1, abitset_not, abitset_equal_p, abitset_subset_p,
   15740 	abitset_disjoint_p, abitset_and, abitset_and_cmp, abitset_andn,
   15741 	abitset_andn_cmp, abitset_or, abitset_or_cmp, abitset_xor,
   15742 	abitset_xor_cmp, abitset_and_or, abitset_and_or_cmp,
   15743 	abitset_andn_or, abitset_andn_or_cmp, abitset_or_and,
   15744 	abitset_or_and_cmp, abitset_copy): Supply prototype decls,
   15745 	to improve the type-checking that GCC can do.
   15746 	* lib/bitset.c (bitset_op4_cmp): Likewise.
   15747 	* lib/bitset_stats.c (bitset_stats_count,
   15748 	bitset_stats_empty_p, bitset_stats_ones, bitset_stats_zero,
   15749 	bitset_stats_copy, bitset_stats_disjoint_p,
   15750 	bitset_stats_equal_p, bitset_stats_not, bitset_stats_subset_p,
   15751 	bitset_stats_and, bitset_stats_and_cmp, bitset_stats_andn,
   15752 	bitset_stats_andn_cmp, bitset_stats_or, bitset_stats_or_cmp,
   15753 	bitset_stats_xor, bitset_stats_xor_cmp, bitset_stats_and_or,
   15754 	bitset_stats_and_or_cmp, bitset_stats_andn_or,
   15755 	bitset_stats_andn_or_cmp, bitset_stats_or_and,
   15756 	bitset_stats_or_and_cmp): Likewise.
   15757 	* lib/lbitset.c (lbitset_and, lbitset_and_cmp, lbitset_andn,
   15758 	lbitset_andn_cmp, lbitset_or, lbitset_or_cmp, lbitset_xor,
   15759 	lbitset_xor_cmp, lbitset_empty_p, lbitset_ones, lbitset_not,
   15760 	lbitset_subset_p, lbitset_disjoint_p, debug_lbitset): Likewise.
   15761 
   15762 	* lib/abitset.h: Include bitset.h, not bbitset.h.
   15763 	* lib/ebitset.h: Likewise.
   15764 	* lib/lbitset.h: Likewise.
   15765 
   15766 	* lib/bbitset.h: (enum_bitset_ops, enum_bitset_type): New types.
   15767 	All instances of parameters of type enum bitset_opts are now of
   15768 	type enum_bitset_opts, to conform to the C Standard, and similarly
   15769 	for enum_bitset_type.
   15770 	* lib/ebitset.c (enum_ebitset_find_mode): Likewise.
   15771 	* lib/lbitset.c (enum_lbitset_find_mode): Likewise.
   15772 
   15773 	Do not use "struct bitset_struct" to mean different things in
   15774 	different modules.  Not only is this confusing, it violates
   15775 	the C Standard, which requires that structure types in different
   15776 	modules must be compatible if one is to be passed to the other.
   15777 	* lib/bbitset.h (bitset): Now points to a union, not to a struct.
   15778 	All instances of "struct bitset_struct *" replaced with "bitset".
   15779 	* lib/bitset.h (struct bitset_struct): Remove, replacing with....
   15780 	(union bitset_union, struct abitset_struct, struct ebitset_struct,
   15781 	struct lbitset_struct, struct bitset_stats_struct): New types.
   15782 	All uses of struct bitset_struct changed to union bitset_union,
   15783 	etc.
   15784 	* lib/abitset.c (struct abitset_struct, abitset,
   15785 	struct bitset_struct): Remove.
   15786 	* lib/bitset_stats.c (struct bitset_stats_struct, bitset_stats,
   15787 	struct bitset_struct): Remove.
   15788 	* lib/ebitset.c (struct ebitset_struct, ebitset, struct
   15789 	bitset_struct): Remove.
   15790 	* lib/lbitset.c (struct lbitset_struct, lbitset, bitset_struct):
   15791 	Likewise.
   15792 
   15793 	Do not call a function of type T using a call that assumes the
   15794 	function is of a different type U.  Standard C requires that a
   15795 	function must be called with a type that is compatible with its
   15796 	definition.
   15797 	* lib/bbitset.h (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
   15798 	New decls.
   15799 	* lib/bitset.c (bitset_and_or_, bitset_andn_or_, bitset_or_and_):
   15800 	New functions.
   15801 	* lib/ebitset.c (PFV): Remove.
   15802 	* lib/lbitset.c (PFV): Likewise.
   15803 	* lib/ebitset.c (ebitset_and, ebitset_andn, ebitset_or,
   15804 	ebitset_xor, ebitset_copy, ebitset_ones, ebitset_empty_p): New
   15805 	decls.
   15806 	(ebitset_and, ebitset_andn, ebitset_or, ebitset_xor): New functions.
   15807 	(ebitset_vtable): Use them.
   15808 	* lib/lbitset.c (lbitset_and, lbitset_andn, lbitset_or,
   15809 	lbitset_xor): New functions.
   15810 	(lbitset_vtable): Use them.
   15811 
   15812 	* lib/bitset.h (bitset_next, bitset_prev, bitset_only_set_p):
   15813 	Declare.
   15814 
   15815 	* lib/bitsetv.c (bitsetv_alloc): Add a cast to (void *) to avoid a
   15816 	GCC warning.
   15817 	* lib/lbitset.c (LBITSET_CURRENT1): Likewise.
   15818 	Use offsetof, for simplicity.
   15819 
   15820 2002-10-06  Paul Eggert  <eggert (a] twinsun.com>
   15821 
   15822 	* lib/bitset.h (bitset_reset): Do not assume that bitset_word is
   15823 	the same width as int.  This reapplies a hunk of the 2002-08-12 patch
   15824 	<http://lists.gnu.org/archive/html/bison-patches/2002-08/msg00007.html>,
   15825 	which was inadvertently undone by the 2002-09-30 patch.
   15826 	* lib/lbitset.c (debug_lbitset): Do not assume that bitset_word is
   15827 	the same width as int.
   15828 
   15829 2002-10-04  Paul Eggert  <eggert (a] twinsun.com>
   15830 
   15831 	Version 1.50.
   15832 
   15833 	* configure.ac (AC_INIT), NEWS: Increment version number.
   15834 
   15835 	* doc/bison.texinfo: Minor spelling, grammar, and white space
   15836 	fixes.
   15837 	(Symbols): Mention that any negative value returned from yylex
   15838 	signifies end-of-input.  Warn about negative chars.  Mention
   15839 	the portable Standard C character set.
   15840 
   15841 	The GNU coding standard says CFLAGS and YFLAGS are reserved
   15842 	for the installer to set.
   15843 	* lib/Makefile.am (AM_CFLAGS): Renamed from CFLAGS.
   15844 	* src/Makefile.am (AM_CFLAGS): Likewise.
   15845 	(AM_YFLAGS): Renamed from YFLAGS.
   15846 
   15847 	Fix some MAX and MIN problems.
   15848 	* src/gram.h (ITEM_NUMBER_MIN): MIN_MAX -> INT_MIN.
   15849 	* src/lalr.h (GOTO_NUMBER_MAX): INT_MAX -> SHRT_MAX.
   15850 	* src/symtab.h (SYMBOL_NUMBER_MAX): New macro.
   15851 	* src/reader.c (reader): Use it.
   15852 
   15853 	* tests/regression.at (Braces parsing): Use grep, not fgrep, as
   15854 	POSIX 1003.1-2001 has removed fgrep.
   15855 
   15856 2002-10-04  Michael Hayes  <m.hayes (a] elec.canterbury.ac.nz>
   15857 
   15858 	* lib/bbitset.h (BITSET_WINDEX_MAX): Redefine so that it cannot be
   15859 	interpreted as signed.
   15860 	* lib/ebitset.c (ebitset_list): Fix bug.
   15861 
   15862 2002-10-01  Paul Eggert  <eggert (a] twinsun.com>
   15863 
   15864 	More fixes for 64-bit hosts and large bitsets.
   15865 
   15866 	* lib/abitset.c (struct abitset_struct.n_bits, abitset_small_list,
   15867 	abitset_size, abitset_list, abitset_list_reverse, abitset_list):
   15868 	Use bitset_bindex, not int or unsigned int or size_t, to count bits.
   15869 	* lib/bbitset.h (struct bitset_vtable.size, struct bitset_vtable.count,
   15870 	struct bitset_vtable.list, struct bitset_vtable.list_reverse,
   15871 	bitset_count_, bitset_next, bitset_prev, bitset_first, bitset_last,
   15872 	bitset_count_): Likewise.
   15873 	* lib/bitset.h (bitset_iterator.num, bitset_iterator.i,
   15874 	bitset_first, bitset_last): Likewise.
   15875 	* lib/bitset_stats.c (bitset_stats_size, bitset_stats_list,
   15876 	bitset_stats_list_reverse, bitset_stats_size,
   15877 	bitset_stats_count, bitset_stats_list, bitset_stat_list_reverse):
   15878 	Likewise.
   15879 	* lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
   15880 	* lib/bitsetv.c (bitsetv_alloc, bitsetv_create, bitsetv_free,
   15881 	bitsetv_zero, bitsetv_ones, bitsetv_transitive_closure,
   15882 	bitsetv_reflexive_transitive_closure): Likewise.
   15883 	* lib/bitsetv.h (bitsetv_alloc, bitsetv_create): Likewise.
   15884 	* lib/ebitset.c (ebitset_size, ebitset_list, ebitset_list_reverse):
   15885 	Likewise.
   15886 	* lib/lbitset.c (lbitset_size, lbitset_list, lbitset_list_merge):
   15887 	Likewise.
   15888 
   15889 	* lib/abitset.c (abitset_ones, abitset_zero, abitset_bytes):
   15890 	Use size_t, not unsigned int, to count bytes.
   15891 	* lib/abitset.h (abitset_bytes): Likewise.
   15892 	* lib/bitset.c (bitset_bytes, bitset_alloc, bitset_obstack_alloc):
   15893 	Likewise.
   15894 	* lib/bitset.h (bitset_bytes): Likewise.
   15895 	* lib/bitset_stats.c (bitset_stats_bytes, bitset_stats_init): Likewise.
   15896 	* lib/bitset_stats.h (bitset_stats_bytes): Likewise.
   15897 	* lib/bitsetv.c (bitsetv_alloc): Likewise.
   15898 	* lib/ebitset.c (ebitset_bytes): Likewise.
   15899 	* lib/ebitset.h (ebitset_bytes): Likewise.
   15900 	* lib/lbitset.c (lbitset_bytes): Likewise.
   15901 	* lib/lbitset.h (lbitset_bytes): Likewise.
   15902 
   15903 	* lib/abitset.c (abitset_empty_p, abitset_not, abitset_equal_p,
   15904 	abitset_subset_p, abitset_disjoint_p, abitset_and,
   15905 	abitset_and_cmp, abitset_andn, abitset_andn_cmp, abitset_or,
   15906 	abitset_or_cmp, abitset_xor, abitset_xor_cmp, abitset_and_or,
   15907 	abitset_and_or_cmp, abitset_andn_or, abitset_andn_or_cmp,
   15908 	abitset_or_and, abitset_or_and_cmp):
   15909 	Use bitset_windex instead of unsigned int.
   15910 	* lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
   15911 	* lib/ebitset.c (struct ebitset_struct.size, ebitset_elts_grow,
   15912 	ebitset_elt_add, ebitset_elt_remove, ebitset_weed,
   15913 	ebitset_elt_find, ebitset_list_reverse, ebitset_list, ebitset_init):
   15914 	Likewise.
   15915 	* lib/lbitset.c (lbitset_ones, lbitset_not): Likewise.
   15916 
   15917 	* lib/bitset.c (bitset_print):
   15918 	Use proper printf formats for widths of integer types.
   15919 	* lib/bitset_stats.c (bitset_percent_histogram_print,
   15920 	bitset_log_histogram_print, bitset_stats_print_1): Likewise.
   15921 	* lib/bitsetv-print.c (bitsetv_matrix_dump): Likewise.
   15922 	* lib/bitsetv.c (bitsetv_dump, debug_bitsetv): Likewise.
   15923 	* lib/lbitset.c (lbitset_bytes): Likewise.
   15924 
   15925 	* lib/bbitset.h (BITSET_BINDEX_MAX, BITSET_WINDEX_MAX,
   15926 	BITSET_SIZE_MAX): New macros.
   15927 	(BITSET_INDEX_MAX): Remove.  It wasn't right, since it assumed that
   15928 	sizeof (bitset_word) == sizeof (bitset_windex).  All uses changed
   15929 	to BITSET_WINDEX_MAX.
   15930 
   15931 	* lib/bitset.c (bitset_next, bitset_prev, bitset_first,
   15932 	bitset_last): Return BITSET_BINDEX_MAX (not -1) for no value,
   15933 	since we now return the bitset_bindex type (not int).
   15934 
   15935 	* lib/bitsetv.c (bitsetv_alloc): Check for arithmetic overflow
   15936 	when computing sizes.
   15937 	* lib/ebitset.c (ebitset_elts_grow): Likewise.
   15938 
   15939 	* lib/lbitset.c (lbitset_elt_find): Simplify windex calculation
   15940 	and avoid cast to unsigned.
   15941 
   15942 2002-09-30  Akim Demaille  <akim (a] epita.fr>
   15943 
   15944 	* lib/abitset.c, lib/bbitset.h, lib/bitset.c, lib/bitset.h,
   15945 	* lib/bitset_stats.c, lib/bitsetv.c, lib/ebitset.c, lib/lbitset.c:
   15946 	Updates from Michael Hayes.
   15947 
   15948 2002-09-30  Art Haas  <ahaas (a] neosoft.com>
   15949 
   15950 	* configure.ac: Update AC_OUTPUT and AM_CONFIG_HEADER
   15951 	invocations.
   15952 	* tests/cxx-type.at (declarator): Don't rely on NDEBUG being not
   15953 	defined.
   15954 
   15955 2002-09-27  Akim Demaille  <akim (a] epita.fr>
   15956 
   15957 	Version 1.49c.
   15958 
   15959 2002-09-27  Akim Demaille  <akim (a] epita.fr>
   15960 
   15961 	* configure.ac (AM_INIT_AUTOMAKE): We _need_ 1.7.
   15962 	(Because of AC_LIBSOURCE).
   15963 
   15964 2002-09-27  Akim Demaille  <akim (a] epita.fr>
   15965 
   15966 	Playing with Autoscan.
   15967 
   15968 	* configure.ac: Remove the old LIBOBJ tweaks.
   15969 	(AC_REPLACE_FUNCS): Add strrchr and strtol.
   15970 	* lib/strrchr.c: New.
   15971 	* lib/strtol.c: New, from the Coreutils 4.5.1.
   15972 
   15973 2002-09-27  Akim Demaille  <akim (a] epita.fr>
   15974 
   15975 	Playing with Autoscan.
   15976 
   15977 	* m4/prereq.m4 (jm_PREREQ_ARGMATCH, jm_FUNC_ARGMATCH): New.
   15978 	* lib/Makefile.am (libbison_a_SOURCES): No longer include
   15979 	argmatch.c and argmatch.h, since they are AC_LIBSOURCE'd.
   15980 	* lib/strcasecmp.c, lib/strncasecmp.c, lib/memcmp.c: New, from the
   15981 	Coreutils 4.5.1.
   15982 
   15983 2002-09-24  Akim Demaille  <akim (a] epita.fr>
   15984 
   15985 	* doc/bison.texinfo (Stack Overflow): xref to Recursion.
   15986 	(Frequently Asked Questions, Parser Stack Overflow): New.
   15987 
   15988 2002-09-13  Akim Demaille  <akim (a] epita.fr>
   15989 
   15990 	Playing with autoscan.
   15991 
   15992 	* src/reader.c (get_merge_function): Use xstrdup, not strdup.
   15993 	* src/files.c (skeleton_find): Remove, unused.
   15994 	* m4/memcmp.m4: New, from the Coreutils 4.5.1.
   15995 	* m4/prereq.m4 (jm_PREREQ_QUOTEARG): Run jm_FUNC_MEMCMP.
   15996 
   15997 2002-09-13  Akim Demaille  <akim (a] epita.fr>
   15998 
   15999 	* configure.ac (AM_INIT_AUTOMAKE): Require Automake 1.6.3.
   16000 	* Makefile.am (AUTOMAKE_OPTIONS): Don't.
   16001 
   16002 2002-09-13  Akim Demaille  <akim (a] epita.fr>
   16003 
   16004 	* configure.ac: Require 2.54.
   16005 	s/jm_FUNC_MALLOC/AC_FUNC_MALLOC/.
   16006 	s/jm_FUNC_REALLOC/AC_FUNC_REALLOC/.
   16007 	* m4/c-bs-a.m4, m4/malloc.m4, m4/mbstate_t.m4, m4/realloc.m4:
   16008 	Remove, provided by Autoconf macros.
   16009 
   16010 2002-09-12  Akim Demaille  <akim (a] epita.fr>
   16011 
   16012 	* m4/prereq.m4: Update, from Coreutils 4.5.1.
   16013 
   16014 2002-09-12  Akim Demaille  <akim (a] epita.fr>
   16015 
   16016 	* m4/prereq.m4: Update, from Fileutils 4.1.5.
   16017 	* configure.ac (jm_PREREQ_TEMPNAME): Invoke it.
   16018 	Reported by Martin Mokrejs.
   16019 
   16020 2002-09-10  Akim Demaille  <akim (a] epita.fr>
   16021 
   16022 	* src/parse-gram.y: Associate a human readable string to each
   16023 	token type.
   16024 	* tests/regression.at (Invalid inputs): Adjust.
   16025 
   16026 2002-09-10  Gary V. Vaughan  <gary (a] gnu.org>
   16027 
   16028 	* tests/Makefile.am ($(srcdir)/package.m4): Bison now ships
   16029 	with an Autoconf-2.5x style configure.ac.
   16030 
   16031 2002-09-06  Paul Eggert  <eggert (a] twinsun.com>
   16032 
   16033 	* doc/bison.texinfo (Conditions): Make explicit that the GPL
   16034 	exception applies only to yacc.c.  This is a modification of a
   16035 	patch originally suggested by Akim Demaille.
   16036 
   16037 2002-09-06  Akim Demaille  <akim (a] epita.fr>
   16038 
   16039 	* data/c.m4 (b4_copyright): Move the GPL exception comment from
   16040 	here to...
   16041 	* data/yacc.c: here.
   16042 
   16043 	* data/lalr1.cc (struct yyltype): Don't define it, since we use
   16044 	LocationType.
   16045 	(b4_ltype): Default to yy::Location from location.hh.
   16046 
   16047 2002-09-04  Jim Meyering  <jim (a] meyering.net>
   16048 
   16049 	* data/yacc.c: Guard the declaration of yytoknum also with
   16050 	`#ifdef YYPRINT', so it is declared only when used.
   16051 
   16052 2002-09-04  Akim Demaille  <akim (a] epita.fr>
   16053 
   16054 	* configure.in: Rename as...
   16055 	* configure.ac: this.
   16056 	Bump to 1.49c.
   16057 
   16058 2002-09-04  Akim Demaille  <akim (a] epita.fr>
   16059 
   16060 	* src/assoc.c, src/closure.c, src/gram.c, src/injections.c,
   16061 	* src/lalr.c, src/LR0.c, src/relation.c, src/tables.c: Don't
   16062 	translate maintainer only messages.
   16063 
   16064 2002-08-12  Paul Eggert  <eggert (a] twinsun.com>
   16065 
   16066 	Version 1.49b.
   16067 
   16068 	* Makefile.am (SUBDIRS): Remove intl.
   16069 	(DISTCLEANFILES): Remove.
   16070 	* NEWS: Mention that GNU M4 is now required.  Clarify what is
   16071 	meant by "larger grammars".  Mention the pt_BR translation.
   16072 	* configure.in (AC_CHECK_DECLS): Add getenv, getopt.
   16073 	(AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var.
   16074 	Bump version from 0.11.2 to 0.11.5.
   16075 	(BISON_PREREQ_STAGE): Remove.
   16076 	(AM_GNU_GETTEXT): Use external gettext.
   16077 	(AC_OUTPUT): Remove intl/Makefile.
   16078 
   16079 	* config/depcomp, config/install-sh: Sync with Automake 1.6.3.
   16080 
   16081 	* data/glr.c: Include string.h, for strlen.
   16082 	(yyreportParseError): Use size_t for yysize.
   16083 	(yy_yypstack): No longer nested inside yypstates, as nested
   16084 	functions are not portable.  Do not assume size_t is the
   16085 	same width as int.
   16086 	(yypstates): Do not assume that ptrdiff_t is the same width
   16087 	as int, and similarly for yyposn and YYINDEX.
   16088 
   16089 	* data/yacc.c: Fix comment about `$$ = $1': it can copy garbage.
   16090 
   16091 	* lib/Makefile.am (INCLUDES): Do not include from the intl
   16092 	directory, which has been removed.
   16093 	* src/Makefile.am (INCLUDES): Likewise.
   16094 
   16095 	* lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h.
   16096 	(bitsets_sources, additional_bitsets_sources, timevars_sources):
   16097 	New vars.
   16098 
   16099 	* lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension.
   16100 	* tests/Makefile.am (EXTRA_DIST): Likewise.
   16101 
   16102 	* lib/abitset.c (abitset_reverse_list, ebitset_reverse_list):
   16103 	Do not assume that bitset_windex is the same width as unsigned.
   16104 
   16105 	* lib/abitset.c (abitset_unused_clear): Do not assume that
   16106 	bitset_word is the same width as int.
   16107 	* lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise.
   16108 	* lib/bitset.h (bitset_set, bitset_reset): Likewise.
   16109 	* lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise.
   16110 	* lib/ebitset.c (ebitset_set, ebitset_reset): Likewise.
   16111 	* lib/lbitset.c (lbitset_set, lbitset_reset): Likewise.
   16112 
   16113 	* lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for
   16114 	portability to one's complement hosts!).
   16115 	* lib/ebitset.c (ebitset_op1): Likewise.
   16116 	* lib/lbitset.c (lbitset_op1): Likewise.
   16117 
   16118 	* lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar.
   16119 	* lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h,
   16120 	lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c:
   16121 	Sync with fileutils.
   16122 	* lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c,
   16123 	lib/gettext.h: Sync with diffutils.
   16124 
   16125 	* lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c,
   16126 	lib/strspn.c, lib/tempname.c: Use GPL, not LGPL.
   16127 
   16128 	* lib/obstack.c, lib/obstack.h: Sync with fileutils, except use
   16129 	PROTOTYPES to check for prototypes, and "defined __STDC__" to
   16130 	check for void *.
   16131 
   16132 	* lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not
   16133 	size_t; the old version tried to do this but casted improperly.
   16134 	(bitset_bindex, bitset_windex): Now size_t, not unsigned long.
   16135 	(bitset_test): Now returns int, not unsigned long.
   16136 
   16137 	* lib/bitset_stats.c: Include "gettext.h".
   16138 	(_): New macro.
   16139 	(bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't
   16140 	name locals "index", as it generates unnecessary warnings on some
   16141 	hosts that have an "index" function.
   16142 
   16143 	* lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print,
   16144 	bitset_stats_read, bitset_stats_write): Wrap strings in _() if
   16145 	they need translation.
   16146 	* src/LR0.c (state_list_append, new_itemsets, get_state,
   16147 	append_states, generate_states): Likewise.
   16148 	* src/assoc.c (assoc_to_string): Likewise.
   16149 	* src/closure.c (print_closure, set_firsts, closure): Likewise.
   16150 	* src/gram.c (grammar_dump): Likewise.
   16151 	* src/injections.c (injections_compute): Likewise.
   16152 	* src/lalr.c (lookaheads_print): Likewise.
   16153 	* src/relation.c (relation_transpose): Likewise.
   16154 	* src/scan-gram.l: Likewise.
   16155 	* src/tables.c (table_grow, pack_vector): Likewise.
   16156 
   16157 	* m4/Makefile.am (EXTRA_DIST): Remove codeset.m4,
   16158 	glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4.
   16159 	* m4/malloc.m4, m4/realloc.m4: Sync with diffutils.
   16160 	* m4/mbstate_t.m4: Sync with fileutils.
   16161 	* m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T.
   16162 
   16163 	* po/LINGUAS: Add pt_BR.
   16164 	* po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c,
   16165 	src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c,
   16166 	lib/timevar.c.
   16167 	Use src/parse-gram.y instead of src/parse-gram.c, as the gettext
   16168 	manual recommends.
   16169 	Similarly, use src/scan-gram.l instead of src/scan-gram.c.
   16170 
   16171 	* src/complain.c (strerror_r): Remove decl; not needed.
   16172 	(strerror): Use same pattern as ../lib/error.c.
   16173 
   16174 	* src/files.c, src/files.h (compute_header_macro): Remove; unused.
   16175 
   16176 	* src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int.
   16177 
   16178 	* src/main.c (main): Cast result of bindtextdomain and textdomain
   16179 	to void, to avoid a GCC warning when --disable-nls is in effect.
   16180 
   16181 	* src/scan-gram.l: Use strings rather than escapes when possible,
   16182 	to minimize the number of warnings from xgettext.
   16183 	(handle_action_dollar, handle_action_at): Don't use isdigit,
   16184 	as it mishandles negative chars and it may not work as expected
   16185 	outside the C locale.
   16186 
   16187 	* src/symtab.c (symbol_get): Don't cast LHS of an assignment;
   16188 	this is a GCC extension and is not portable to other compilers.
   16189 
   16190 	* src/system.h (alloca): Use same pattern as ../lib/error.c.
   16191 	Do not include <ctype.h>; no longer needed.
   16192 	Do not include <malloc.h>; no longer needed (and generates
   16193 	warnings on OpenBSD 3.0).
   16194 
   16195 	* tests/cxx-type.at (yylex): Do not pass signed char to isupper;
   16196 	it's not portable.
   16197 
   16198 	* tests/regression.at: Do not use 'cc -c input.c -o input';
   16199 	Sun C rejects this.  Instead, use 'cc -c input.c -o input.o'.
   16200 
   16201 	* tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero
   16202 	exit status as failure, not just exit status 1.  Sun C exits
   16203 	with status 2 sometimes.
   16204 
   16205 	* tests/torture.at (AT_INCREASE_DATA_SIZE): New macro.
   16206 	Use it for the two large tests.
   16207 
   16208 2002-08-02  Akim Demaille  <akim (a] epita.fr>
   16209 
   16210 	* src/conflicts.c (conflicts_output): Don't output rules never
   16211 	reduced here, since anyway that computation doesn't work.
   16212 	* src/gram.h, src/gram.h (rule_filter_t, rule_useful_p)
   16213 	(rule_useless_p, rule_never_reduced_p): New.
   16214 	(grammar_rules_partial_print): Use a filter instead of a range.
   16215 	Display the title only if needed.
   16216 	(grammar_rules_print): Adjust.
   16217 	(grammar_rules_never_reduced_report): New.
   16218 	* src/tables.c (action_row): Move the computation of rules never
   16219 	reduced to...
   16220 	(token_actions): here.
   16221 	* src/main.c (main): Make the parser before making the report, so
   16222 	that rules never reduced are computed.
   16223 	Call grammar_rules_never_reduced_report.
   16224 	* src/print.c (print_results): Report rules never reduced.
   16225 	* tests/conflicts.at, tests/reduce.at: Adjust.
   16226 
   16227 2002-08-01  Akim Demaille  <akim (a] epita.fr>
   16228 
   16229 	Instead of attaching lookaheads and duplicating the rules being
   16230 	reduced by a state, attach the lookaheads to the reductions.
   16231 
   16232 	* src/state.h (state_t): Remove the `lookaheads',
   16233 	`lookaheads_rule' member.
   16234 	(reductions_t): Add a `lookaheads' member.
   16235 	Use a regular array for the `rules'.
   16236 	* src/state.c (reductions_new): Initialize the lookaheads member
   16237 	to 0.
   16238 	(state_rule_lookaheads_print): Adjust.
   16239 	* src/state.h, src/state.c (state_reductions_find): New.
   16240 	* src/conflicts.c (resolve_sr_conflict, set_conflicts)
   16241 	(count_rr_conflicts): Adjust.
   16242 	* src/lalr.c (LArule): Remove.
   16243 	(add_lookback_edge): Adjust.
   16244 	(state_lookaheads_count): New.
   16245 	(states_lookaheads_initialize): Merge into...
   16246 	(initialize_LA): this.
   16247 	(lalr_free): Adjust.
   16248 	* src/main.c (main): Don't free nullable and derives too early: it
   16249 	is used by --verbose.
   16250 	* src/print.c, src/print_graph.c, src/tables.c: Adjust.
   16251 
   16252 2002-08-01  Akim Demaille  <akim (a] epita.fr>
   16253 
   16254 	* src/derives.h, src/derives.c (derives): A `rule_t***' instead of
   16255 	`rule_number_t**'.
   16256 	(set_derives, free_derives): Rename as...
   16257 	(derives_compute, derives_free): this.
   16258 	Adjust all dependencies.
   16259 	* src/nullable.c (set_nullable, free_nullable): Rename as...
   16260 	(nullable_compute, nullable_free): these.
   16261 	(rule_list_t): Store rule_t *, not rule_number_t.
   16262 	* src/state.c (state_rule_lookaheads_print): Directly compare rule
   16263 	pointers, instead of their numbers.
   16264 	* src/main.c (main): Call nullable_free, and derives_free earlier,
   16265 	as they were lo longer used.
   16266 
   16267 2002-08-01  Akim Demaille  <akim (a] epita.fr>
   16268 
   16269 	* lib/timevar.c (get_time): Include children time.
   16270 	* src/lalr.h (LA, LArule): Don't export them: used with the
   16271 	state_t.
   16272 	* src/lalr.c (LA, LArule): Static.
   16273 	* src/lalr.h, src/lalr.c (lalr_free): New.
   16274 	* src/main.c (main): Call it.
   16275 	* src/tables.c (pack_vector): Check whether loc is >= to the
   16276 	table_size, not >.
   16277 	(pack_tables): Don't free froms, tos, conflict_tos, and pos...
   16278 	(tables_generate): do it, since that's also it which allocates
   16279 	them.
   16280 	Don't free LA and LArule, main does.
   16281 
   16282 2002-07-31  Akim Demaille  <akim (a] epita.fr>
   16283 
   16284 	Separate parser tables computation and output.
   16285 
   16286 	* src/output.c (nvectors, base_t, base, base_ninf, conflict_table)
   16287 	(conflict_list, conflict_list_cnt, table, check, table_ninf)
   16288 	(yydefgoto, yydefact, high): Move to...
   16289 	* src/tables.h, src/tables.c: here.
   16290 	* src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
   16291 	(VECTOR_NUMBER_MIN, state_number_to_vector_number)
   16292 	(symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN)
   16293 	(froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX)
   16294 	(ACTION_MIN, actrow, order, nentries, pos, conflrow)
   16295 	(conflict_list_free, table_size, lowzero, table_grow, conflict_row)
   16296 	(action_row, save_row, token_actions, save_column, default_goto)
   16297 	(goto_actions, sort_actions, matching_state, pack_vector)
   16298 	(table_ninf_remap, pack_table, prepare_actions): Move to...
   16299 	* src/tables.c: here.
   16300 	* src/tables.h, src/tables.c(tables_generate, tables_free): New.
   16301 	* src/output.c (token_actions, output_base, output_conflicts)
   16302 	(output_check): Merge into...
   16303 	(prepare_actions): this.
   16304 	(actions_output): Rename as...
   16305 	(user_actions_output): this.
   16306 	* src/main.c (main): Call tables_generate and tables_free.
   16307 
   16308 2002-07-31  Akim Demaille  <akim (a] epita.fr>
   16309 
   16310 	Steal GCC's --time-report support.
   16311 
   16312 	* lib/timevar.c, lib/timevar.h, lib/timevar.def: New,
   16313 	stolen/adjusted from GCC.
   16314 	* m4/stage.m4: Remove time related checks.
   16315 	* m4/timevar.m4: New.
   16316 	* configure.in: Adjust.
   16317 	* src/system.h: Adjust to using timevar.h.
   16318 	* src/getargs.h, src/getargs.c: Support trace_time for
   16319 	--trace=time.
   16320 	* src/main.c (stage): Remove.
   16321 	(main): Replace `stage' invocations with timevar calls.
   16322 	* src/output.c: Insert pertinent timevar calls.
   16323 
   16324 2002-07-31  Akim Demaille  <akim (a] epita.fr>
   16325 
   16326 	Let --trace have arguments.
   16327 
   16328 	* src/getargs.h (enum trace_e): New.
   16329 	* src/getargs.c (trace_args, trace_types, trace_argmatch): New.
   16330 	(long_options, short_options): --trace/-T takes an optional
   16331 	argument.
   16332 	Change all the uses of trace_flag to reflect the new flags.
   16333 	* tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets.
   16334 
   16335 	Strengthen `stage' portability.
   16336 
   16337 	* m4/stage.m4 (BISON_PREREQ_STAGE): New.
   16338 	* configure.in: Use it.
   16339 	Don't check for malloc.h and sys/times.h.
   16340 	* src/system.h: Include them when appropriate.
   16341 	* src/main.c (stage): Compile only when mallinfo, struct mallinfo,
   16342 	times and struct tms are available.
   16343 
   16344 2002-07-30  Akim Demaille  <akim (a] epita.fr>
   16345 
   16346 	In verbose parse error message, don't report `error' as an
   16347 	expected token.
   16348 	* tests/actions.at (Printers and Destructors): Adjust.
   16349 	* tests/calc.at (Calculator $1): Adjust.
   16350 	* data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose
   16351 	error message, do not report the parser accepts the error token in
   16352 	that state.
   16353 
   16354 2002-07-30  Akim Demaille  <akim (a] epita.fr>
   16355 
   16356 	Normalize conflict related messages.
   16357 
   16358 	* src/complain.h, src/complain.c (warn, complain): New.
   16359 	* src/conflicts.c (conflicts_print): Use them.
   16360 	(conflict_report_yacc): New, extracted from...
   16361 	(conflicts_print): here.
   16362 	* tests/conflicts.at, tests/existing.at: Adjust.
   16363 
   16364 2002-07-30  Akim Demaille  <akim (a] epita.fr>
   16365 
   16366 	Report rules which are never reduced by the parser: those hidden
   16367 	by conflicts.
   16368 
   16369 	* src/LR0.c (save_reductions): Don't make the final state too
   16370 	different: save its reduction (accept) instead of having a state
   16371 	without any action (no shift or goto, no reduce).
   16372 	Note: the final state is now a ``regular'' state, i.e., the
   16373 	parsers now contain `reduce 0' as default reduction.
   16374 	Nevertheless, since they decide to `accept' when yystate =
   16375 	final_state, they still will not reduce rule 0.
   16376 	* src/print.c (print_actions, print_reduction): Adjust.
   16377 	* src/output.c (action_row): Track reduced rules.
   16378 	(token_actions): Report rules never reduced.
   16379 	* tests/conflicts.at, tests/regression.at: Adjust.
   16380 
   16381 2002-07-30  Akim Demaille  <akim (a] epita.fr>
   16382 
   16383 	`stage' was accidentally included in a previous patch.
   16384 	Initiate its autoconfiscation.
   16385 
   16386 	* configure.in: Look for malloc.h and sys/times.h.
   16387 	* src/main.c (stage): Adjust.
   16388 	Report only when trace_flag.
   16389 
   16390 2002-07-29  Akim Demaille  <akim (a] epita.fr>
   16391 
   16392 	* src/state.h, src/state.c (transitions_t): Holds state_t*'s, not
   16393 	state_number_t.
   16394 	(errs_t): symbol_t*, not symbol_number_t.
   16395 	(reductions_t): rule_t*, not rule_number_t.
   16396 	(FOR_EACH_SHIFT): New.
   16397 	* src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c
   16398 	* src/print.c, src/print_graph.c: Adjust.
   16399 
   16400 2002-07-29  Akim Demaille  <akim (a] epita.fr>
   16401 
   16402 	Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
   16403 
   16404 	* src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as...
   16405 	(endtoken, accept): these.
   16406 	* src/reader.c (reader): Set endtoken's default tag to "$end".
   16407 	Set undeftoken's tag to "$undefined" instead of "$undefined.".
   16408 	* doc/bison.texinfo (Table of Symbols): Mention $accept and $end.
   16409 	Adjust.
   16410 
   16411 2002-07-29  Akim Demaille  <akim (a] epita.fr>
   16412 
   16413 	* src/reduce.c (reduce_grammar): When the language is empty,
   16414 	complain about the start symbol, not the axiom.
   16415 	Use its location.
   16416 	* tests/reduce.at (Empty Language): New.
   16417 
   16418 2002-07-26  Akim Demaille  <akim (a] epita.fr>
   16419 
   16420 	* src/reader.h, src/reader.c (gram_error): ... can't get
   16421 	yycontrol without making too strong assumptions on the parser
   16422 	itself.
   16423 	* src/output.c (prepare_tokens): Use the real 0th value of
   16424 	token_translations instead of `0'.
   16425 	* src/parse-gram.y (yyerror): Don't rely on yycontrol being
   16426 	visible here.
   16427 	* data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc
   16428 	for the time being: %locations ought to provide it to yyerror.
   16429 
   16430 2002-07-25  Akim Demaille  <akim (a] epita.fr>
   16431 
   16432 	* src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1.
   16433 	* doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./.
   16434 	* tests/regression.at (Web2c Actions): Adjust.
   16435 
   16436 2002-07-25  Akim Demaille  <akim (a] epita.fr>
   16437 
   16438 	Stop storing rules from 1 to nrules + 1.
   16439 
   16440 	* src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c
   16441 	* src/nullable.c, src/output.c, src/print.c, src/reader.c
   16442 	* src/reduce.c: Allocate and free from &rules[0], not &rules[1].
   16443 	Iterate from 0 to nrules.
   16444 	Use rule_number_as_item_number and item_number_as_rule_number.
   16445 	Adjust to `derive' now containing possibly 0.
   16446 	* src/gram.h (rule_number_as_item_number, item_number_as_rule_number):
   16447 	Handle the `- 1' part in rule numbers from/to item numbers.
   16448 	* src/conflicts.c (log_resolution): Fix the message which reversed
   16449 	shift and reduce.
   16450 	* src/output.c (action_row): Initialize default_rule to -1.
   16451 	(token_actions): Adjust.
   16452 	* tests/sets.at (Nullable, Firsts): Fix the previously bogus
   16453 	expected output.
   16454 	* tests/conflicts.at (Resolved SR Conflicts): Likewise.
   16455 
   16456 2002-07-25  Akim Demaille  <akim (a] epita.fr>
   16457 
   16458 	* data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg)
   16459 	(b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls)
   16460 	(b4_c_knr_arg_decl): New.
   16461 	* data/yacc.c: Use it to define yysymprint, yydestruct, and
   16462 	yyreport_parse_error.
   16463 
   16464 2002-07-25  Akim Demaille  <akim (a] epita.fr>
   16465 
   16466 	* data/yacc.c (yyreport_parse_error): New, extracted from...
   16467 	(yyparse): here.
   16468 	(yydestruct, yysymprint): Move above yyparse.
   16469 	Be K&R compliant.
   16470 
   16471 2002-07-25  Akim Demaille  <akim (a] epita.fr>
   16472 
   16473 	* data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New,
   16474 	replace...
   16475 	(b4_sint_type, b4_uint_type): these.
   16476 	* data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for.
   16477 	* tests/regression.at (Web2c Actions): Adjust.
   16478 
   16479 2002-07-25  Akim Demaille  <akim (a] epita.fr>
   16480 
   16481 	* src/gram.h (TIEM_NUMBER_MAX): New.
   16482 	(item_number_of_rule_number, rule_number_of_item_number): Rename
   16483 	as...
   16484 	(rule_number_as_item_number, item_number_as_rule_number): these.
   16485 	Adjust dependencies.
   16486 	* src/output.c (vector_number_t, VECTOR_NUMBER_MAX)
   16487 	(VECTOR_NUMBER_MIN, state_number_to_vector_number)
   16488 	(symbol_number_to_vector_number): New.
   16489 	(order): Of vector_number_t* type.
   16490 	(base_t, BASE_MAX, BASE_MIN): New.
   16491 	(froms, tos, width, pos, check): Of base_t type.
   16492 	(action_number_t, ACTION_MIN, ACTION_MAX): New.
   16493 	(actrow): Of action_number_t type.
   16494 	(conflrow): Of unsigned int type.
   16495 	(table_ninf, base_ninf): New.
   16496 	(GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value.
   16497 	(muscle_insert_int_table, muscle_insert_base_table)
   16498 	(muscle_insert_rule_number_table): New.
   16499 	(prepare_tokens): Output `toknum' as int_table.
   16500 	(action_row): Returns a rule_number_t.
   16501 	Use ACTION_MIN, not SHRT_MIN.
   16502 	(token_actions): yydefact is rule_number_t*.
   16503 	(table_ninf_remap): New.
   16504 	(pack_table): Use it for `base' and `table'.
   16505 	* data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove,
   16506 	replaced with...
   16507 	(YYPACT_NINF, YYTABLE_NINF): these.
   16508 	(yypact, yytable): Compute their types instead of hard-coded
   16509 	`short'.
   16510 	* tests/regression.at (Web2c Actions): Adjust.
   16511 
   16512 2002-07-19  Akim Demaille  <akim (a] epita.fr>
   16513 
   16514 	* src/scan-gram.l (id): Can start with an underscore.
   16515 
   16516 2002-07-16  Akim Demaille  <akim (a] epita.fr>
   16517 
   16518 	* src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New.
   16519 	Adjust all former `associativity' dependencies.
   16520 	* src/symtab.c (symbol_new): Default associativity is `undef', not
   16521 	`right'.
   16522 	(symbol_check_alias_consistence): Adjust.
   16523 
   16524 2002-07-09  Akim Demaille  <akim (a] epita.fr>
   16525 
   16526 	* doc/bison.texinfo: Properly set the ``header'' part.
   16527 	Use @dircategory ``GNU programming tools'' as per Texinfo's
   16528 	documentation.
   16529 	Use @copying.
   16530 
   16531 2002-07-09  Akim Demaille  <akim (a] epita.fr>
   16532 
   16533 	* lib/quotearg.h: Protect against multiple inclusions.
   16534 	* src/location.h (location_t): Add a `file' member.
   16535 	(LOCATION_RESET, LOCATION_PRINT): Adjust.
   16536 	* src/complain.c (warn_at, complain_at, fatal_at): Drop
   16537 	`error_one_per_line' support.
   16538 
   16539 2002-07-09  Akim Demaille  <akim (a] epita.fr>
   16540 
   16541 	* src/complain.h, src/complain.c (warn, complain): Remove, unused.
   16542 	* src/reader.c (lineno): Remove.
   16543 	Adjust all dependencies.
   16544 	(get_merge_function): Take a location and use complain_at.
   16545 	* src/symtab.h, src/symtab.c (symbol_make_alias): Likewise.
   16546 	* tests/regression.at (Invalid inputs, Mixing %token styles):
   16547 	Adjust.
   16548 
   16549 2002-07-09  Akim Demaille  <akim (a] epita.fr>
   16550 
   16551 	* src/parse-gram.y (rules_or_grammar_declaration): Add an error
   16552 	recovery rule, and forbid extensions when --yacc.
   16553 	(gram_error): Use complain_at.
   16554 	* src/reader.c (reader): Exit if there were parse errors.
   16555 
   16556 2002-07-09  Akim Demaille  <akim (a] epita.fr>
   16557 
   16558 	* tests/synclines.at (AT_SYNCLINES_COMPILE): New.
   16559 	(AT_TEST_SYNCLINE): Adjust to unusual GCC outputs.
   16560 	Reported by R Blake <blakers (a] mac.com>.
   16561 
   16562 2002-07-09  Akim Demaille  <akim (a] epita.fr>
   16563 
   16564 	* data/yacc.c: Output the copyright notive in the header.
   16565 
   16566 2002-07-03  Akim Demaille  <akim (a] epita.fr>
   16567 
   16568 	* src/output.c (froms, tos): Are state_number_t.
   16569 	(save_column): sp, sp1, and sp2 are state_number_t.
   16570 	(prepare): Rename `final' as `final_state_number', `nnts' as
   16571 	`nterms_number', `nrules' as `rules_number', `nstates' as
   16572 	`states_number', and `ntokens' as `tokens_number'.  Remove `nsym',
   16573 	unused.
   16574 	* data/yacc.c, data/glr.c, data/lalr1.cc: Adjust.
   16575 	* data/lalr1.cc (nsym_): Remove, unused.
   16576 
   16577 2002-07-03  Akim Demaille  <akim (a] epita.fr>
   16578 
   16579 	* src/lalr.h, src/lalr.c (goto_number_t): New.
   16580 	* src/lalr.c (goto_list_t): New.
   16581 	Propagate them.
   16582 	* src/nullable.c (rule_list_t): New.
   16583 	Propagate.
   16584 	* src/types.h: Remove.
   16585 
   16586 2002-07-03  Akim Demaille  <akim (a] epita.fr>
   16587 
   16588 	* src/closure.c (print_fderives): Use rule_rhs_print.
   16589 	* src/derives.c (print_derives): Use rule_rhs_print.
   16590 	(rule_list_t): New, replaces `shorts'.
   16591 	(set_derives): Add comments.
   16592 	* tests/sets.at (Nullable, Firsts): Adjust.
   16593 
   16594 2002-07-03  Akim Demaille  <akim (a] epita.fr>
   16595 
   16596 	* src/output.c (prepare_actions): Free `tally' and `width'.
   16597 	(prepare_actions): Allocate and free `order'.
   16598 	* src/symtab.c (symbols_free): Free `symbols'.
   16599 	* src/scan-gram.l (scanner_free): Clear Flex's scanners memory.
   16600 	* src/output.c (m4_invoke): Move to...
   16601 	* src/scan-skel.l: here.
   16602 	(<<EOF>>): Close yyout, and free its name.
   16603 
   16604 2002-07-03  Akim Demaille  <akim (a] epita.fr>
   16605 
   16606 	Fix some memory leaks, and fix a bug: state 0 was examined twice.
   16607 
   16608 	* src/LR0.c (new_state): Merge into...
   16609 	(state_list_append): this.
   16610 	(new_states): Merge into...
   16611 	(generate_states): here.
   16612 	(set_states): Don't ensure a proper `errs' state member here, do it...
   16613 	* src/conflicts.c (conflicts_solve): here.
   16614 	* src/state.h, src/state.c: Comment changes.
   16615 	(state_t): Rename member `shifts' as `transitions'.
   16616 	Adjust all dependencies.
   16617 	(errs_new): For consistency, also take the values as argument.
   16618 	(errs_dup): Remove.
   16619 	(state_errs_set): New.
   16620 	(state_reductions_set, state_transitions_set): Assert that no
   16621 	previous value was assigned.
   16622 	(state_free): New.
   16623 	(states_free): Use it.
   16624 	* src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as
   16625 	temporary storage: use `errs' and `nerrs' as elsewhere.
   16626 	(set_conflicts): Allocate and free this `errs'.
   16627 
   16628 2002-07-02  Akim Demaille  <akim (a] epita.fr>
   16629 
   16630 	* lib/libiberty.h: New.
   16631 	* lib: Update the bitset implementation from upstream.
   16632 	* src/closure.c, src/lalr.c, src/output.c, src/print_graph.c,
   16633 	* src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE.
   16634 	* src/main.c: Adjust bitset stats calls.
   16635 
   16636 2002-07-01  Paul Eggert  <eggert (a] twinsun.com>
   16637 
   16638 	* src/scan-gram.l (<SC_ESCAPED_CHARACTER>): Convert to unsigned
   16639 	char, so that negative chars don't collide with $.
   16640 
   16641 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16642 
   16643 	Have the GLR tests be `warning' checked, and fix the warnings.
   16644 
   16645 	* data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG
   16646 	(yyuserAction, yyreportAmbiguity): `Use' all the arguments.
   16647 	(yyremoveDeletes): `yyi' and `yyj' are size_t.
   16648 	Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies.
   16649 	(yyaddDeferredAction): static.
   16650 	(yyglrReduce): yyi, yyk, amd yyposn are size_t.
   16651 	(yyreportParseError): yyprefix is const.
   16652 	yytokenp is used only when verbose.
   16653 	(yy__GNUC__): Replace with __GNUC__.
   16654 	(yypdumpstack): yyi is size_t.
   16655 	(yypreference): Un-yy local variables and arguments, to avoid
   16656 	clashes with `yyr1'.  Anyway, we are not in the user name space.
   16657 	(yytname_size): be an int, as is compared with ints.
   16658 	* tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New.
   16659 	Use them.
   16660 	* tests/cxx-gram.at: Use quotation to protect $1.
   16661 	Use AT_COMPILE to enable warnings hunts.
   16662 	Prototype yylex and yyerror.
   16663 	`Use' argc.
   16664 	Include `string.h', not `strings.h'.
   16665 	Produce and prototype stmtMerge only when used.
   16666 	yylex takes a location.
   16667 
   16668 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16669 
   16670 	We spend a lot of time in quotearg, in particular when --verbose.
   16671 
   16672 	* src/symtab.c (symbol_get): Store a quoted version of the key.
   16673 	(symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove.
   16674 	Adjust all callers.
   16675 
   16676 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16677 
   16678 	* src/state.h (reductions_t): Rename member `nreds' as num.
   16679 	(errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'.
   16680 	* src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types.
   16681 
   16682 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16683 
   16684 	* src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT)
   16685 	(SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED)
   16686 	(shifts_to): Rename as...
   16687 	(transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION)
   16688 	(TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE)
   16689 	(TRANSITION_IS_DISABLED, transitions_to): these.
   16690 
   16691 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16692 
   16693 	* src/print.c (print_shifts, print_gotos): Merge into...
   16694 	(print_transitions): this.
   16695 	(print_transitions, print_errs, print_reductions): Align the
   16696 	lookaheads columns.
   16697 	(print_core, print_transitions, print_errs, print_state,
   16698 	print_grammar): Output empty lines separator before, not after.
   16699 	(state_default_rule_compute): Rename as...
   16700 	(state_default_rule): this.
   16701 	* tests/conflicts.at (Defaulted Conflicted Reduction),
   16702 	(Unresolved SR Conflicts, Resolved SR Conflicts): Adjust.
   16703 	* tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
   16704 
   16705 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16706 
   16707 	Display items as we display rules.
   16708 
   16709 	* src/gram.h, src/gram.c (rule_lhs_print): New.
   16710 	* src/gram.c (grammar_rules_partial_print): Use it.
   16711 	* src/print.c (print_core): Likewise.
   16712 	* tests/conflicts.at (Defaulted Conflicted Reduction),
   16713 	(Unresolved SR Conflicts): Adjust.
   16714 	(Unresolved SR Conflicts): Adjust and rename as...
   16715 	(Resolved SR Conflicts): this, as was meant.
   16716 	* tests/regression.at (Web2c Report): Adjust.
   16717 
   16718 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16719 
   16720 	* src/print.c (state_default_rule_compute): New, extracted from...
   16721 	(print_reductions): here.
   16722 	Pessimize, but clarify the code.
   16723 	* tests/conflicts.at (Defaulted Conflicted Reduction): New.
   16724 
   16725 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16726 
   16727 	* src/output.c (action_row): Let default_rule be always a rule
   16728 	number.
   16729 
   16730 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16731 
   16732 	* src/closure.c (print_firsts, print_fderives, closure):
   16733 	Use BITSET_EXECUTE.
   16734 	* src/lalr.c (lookaheads_print): Likewise.
   16735 	* src/state.c (state_rule_lookaheads_print): Likewise.
   16736 	* src/print_graph.c (print_core): Likewise.
   16737 	* src/print.c (print_reductions): Likewise.
   16738 	* src/output.c (action_row): Likewise.
   16739 	Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL.
   16740 
   16741 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16742 
   16743 	* src/print_graph.c: Use report_flag.
   16744 
   16745 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16746 
   16747 	* src/lalr.c (traverse, digraph, matrix_print, transpose): Move
   16748 	to...
   16749 	* src/relation.h, src/relation.c (traverse, relation_digraph)
   16750 	(relation_print, relation_transpose): New.
   16751 
   16752 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16753 
   16754 	* src/state.h, src/state.c (shifts_to): New.
   16755 	* src/lalr.c (build_relations): Use it.
   16756 
   16757 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16758 
   16759 	* src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number)
   16760 	(item_number_of_rule_number, rule_number_of_item_number): New.
   16761 	* src/LR0.c, src/closure.c, src/derives.c, src/derives.h,
   16762 	* src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c,
   16763 	* src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h:
   16764 	Propagate their use.
   16765 	Much remains to be done, in particular wrt `shorts' from types.h.
   16766 
   16767 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16768 
   16769 	* src/symtab.c (symbol_new): Initialize the `printer' member.
   16770 
   16771 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16772 
   16773 	* src/LR0.c (save_reductions): Remove, replaced by...
   16774 	* src/state.h, src/state.c (state_reductions_set): New.
   16775 	(reductions, errs): Rename as...
   16776 	(reductions_t, errs_t): these.
   16777 	Adjust all dependencies.
   16778 
   16779 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16780 
   16781 	* src/LR0.c (state_list_t, state_list_append): New.
   16782 	(first_state, last_state): Now symbol_list_t.
   16783 	(this_state): Remove.
   16784 	(new_itemsets, append_states, save_reductions): Take a state_t as
   16785 	argument.
   16786 	(set_states, generate_states): Adjust.
   16787 	(save_shifts): Remove, replaced by...
   16788 	* src/state.h, src/state.c (state_shifts_set): New.
   16789 	(shifts): Rename as...
   16790 	(shifts_t): this.
   16791 	Adjust all dependencies.
   16792 	* src/state.h (state_t): Remove the `next' member.
   16793 
   16794 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16795 
   16796 	* src/vcg.c (quote): Use slot 2, since we often pass symbol tag
   16797 	escaped in slot 0.
   16798 
   16799 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16800 
   16801 	Use hash.h for the state hash table.
   16802 
   16803 	* src/LR0.c (STATE_HASH_SIZE, state_hash): Remove.
   16804 	(allocate_storage): Use state_hash_new.
   16805 	(free_storage): Use state_hash_free.
   16806 	(new_state, get_state): Adjust.
   16807 	* src/lalr.h, src/lalr.c (states): Move to...
   16808 	* src/states.h (state_t): Remove the `link' member, no longer
   16809 	used.
   16810 	* src/states.h, src/states.c: here.
   16811 	(state_hash_new, state_hash_free, state_hash_lookup)
   16812 	(state_hash_insert, states_free): New.
   16813 	* src/states.c (state_table, state_compare, state_hash): New.
   16814 	* src/output.c (output_actions): Do not free states now, since we
   16815 	still need to know the final_state number in `prepare', called
   16816 	afterwards.  Do it...
   16817 	* src/main.c (main): here: call states_free after `output'.
   16818 
   16819 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16820 
   16821 	* src/state.h, src/state.c (state_new): New, extracted from...
   16822 	* src/LR0.c (new_state): here.
   16823 	* src/state.h (STATE_ALLOC): Move to...
   16824 	* src/state.c: here.
   16825 	* src/LR0.h, src/LR0.c (nstates, final_state): Move to...
   16826 	* src/state.h, src/state.c: here.
   16827 
   16828 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16829 
   16830 	* src/reader.c (gensym): Rename as...
   16831 	* src/symtab.h, src/symtab.c (dummy_symbol_get): this.
   16832 	(getsym): Rename as...
   16833 	(symbol_get): this.
   16834 
   16835 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16836 
   16837 	* src/state.h (state_number_t, STATE_NUMBER_MAX): New.
   16838 	* src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h,
   16839 	* src/output.c, src/print.c, src/print_graph.c: Propagate.
   16840 	* src/LR0.h, src/LR0.h (final_state): Is a state_t*.
   16841 
   16842 2002-06-30  Akim Demaille  <akim (a] epita.fr>
   16843 
   16844 	Make the test suite pass with warnings checked.
   16845 
   16846 	* tests/actions.at (Printers and Destructors): Improve.
   16847 	Avoid unsigned vs. signed issues.
   16848 	* tests/calc.at: Don't exercise the scanner here, do it...
   16849 	* tests/input.at (Torturing the Scanner): here.
   16850 
   16851 2002-06-28  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   16852 
   16853 	* data/glr.c: Correct typo in Emacs-mode directive.  Slightly
   16854 	reorganize first lines parallel to yacc.c.
   16855 
   16856 2002-06-28  Akim Demaille  <akim (a] epita.fr>
   16857 
   16858 	* data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define)
   16859 	(b4_token_enum, b4_token_defines): New, factored from...
   16860 	* data/lalr1.cc, data/yacc.c, glr.c: here.
   16861 
   16862 2002-06-28  Akim Demaille  <akim (a] epita.fr>
   16863 
   16864 	* data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for
   16865 	unused variables.
   16866 	* src/output.c (merger_output): static.
   16867 
   16868 2002-06-28  Akim Demaille  <akim (a] epita.fr>
   16869 
   16870 	* src/reader.h: s/grammer_current_rule_merge_set/grammar_.../.
   16871 	* src/conflicts.c (conflicts_total_count): `i' is unsigned, to
   16872 	pacify GCC.
   16873 	* src/output.c (save_row): Initialize all the variables to pacify GCC.
   16874 
   16875 2002-06-27  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   16876 
   16877 	Accumulated changelog for new GLR parsing features.
   16878 
   16879 	* src/conflicts.c (count_total_conflicts): Change name to
   16880 	conflicts_total_count.
   16881 	* src/conflicts.h: Ditto.
   16882 	* src/output.c (token_actions): Use the new name.
   16883 	(output_conflicts): Change conflp => conflict_list_heads, and
   16884 	confl => conflict_list for better readability.
   16885 	* data/glr.c: Use the new names.
   16886 	* NEWS: Add self to GLR announcement.
   16887 
   16888 	* src/reader.c (free_merger_functions): Cleanup: XFREE->free.
   16889 
   16890 	* doc/bison.texinfo (GLR Parsers): Make corrections suggested by
   16891 	Akim Demaille.
   16892 
   16893 	* data/bison.glr: Change name to glr.c
   16894 	* data/glr.c: Renamed from bison.glr.
   16895 	* data/Makefile.am: Add glr.c
   16896 
   16897 	* src/getargs.c:
   16898 
   16899 	* src/symlist.h:  Add dprec and merger fields to symbol_list_s.
   16900 	* src/symlist.c (symbol_list_new): Initialize dprec and merger fields.
   16901 
   16902 	Originally 2002-06-16  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   16903 
   16904 	* data/bison.glr: Be sure to restore the
   16905 	current #line when returning to the skeleton contents after having
   16906 	exposed the input file's #line.
   16907 
   16908 	Originally 2002-06-13  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   16909 
   16910 	* data/bison.glr: Bring up to date with changes to bison.simple.
   16911 
   16912 	Originally 2002-06-03  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   16913 
   16914 	* data/bison.glr: Correct definitions that use b4_prefix.
   16915 	Various reformatting.
   16916 	(GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack.
   16917 	(yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove
   16918 	yytokenp argument; now part of stack.
   16919 	(yychar): Define to behave as documented.
   16920 	(yyclearin): Ditto.
   16921 
   16922 	Originally 2002-05-14  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   16923 
   16924 	* src/reader.h: Add declaration for free_merger_functions.
   16925 
   16926 	* src/reader.c (merge_functions): New variable.
   16927 	(get_merge_function): New function.
   16928 	(free_merger_functions): New function.
   16929 	(readgram): Check for %prec that is not followed by a symbol.
   16930 	Handle %dprec and %merge declarations.
   16931 	(packgram): Initialize dprec and merger fields in rules array.
   16932 
   16933 	* src/output.c (conflict_tos, conflrow, conflict_table, conflict_list,
   16934 	conflict_list_cnt, conflict_list_free): New variables.
   16935 	(table_grow): Also grow conflict_table.
   16936 	(prepare_rules): Output dprec and merger tables.
   16937 	(conflict_row): New function.
   16938 	(action_row): Output conflict lists for GLR parser.  Don't use
   16939 	default reduction in conflicted states for GLR parser so that there
   16940 	are spaces for the conflict lists.
   16941 	(save_row): Also save conflict information.
   16942 	(token_actions): Allocate conflict list.
   16943 	(merger_output): New function.
   16944 	(pack_vector): Pack conflict table, too.
   16945 	(output_conflicts): New function to output yyconflp and yyconfl.
   16946 	(output_check): Allocate conflict_tos.
   16947 	(output_actions): Output conflict tables, also.
   16948 	(output_skeleton): Output b4_mergers definition.
   16949 	(prepare): Output b4_max_rhs_length definition.
   16950 	Use 'bison.glr' as default skeleton for GLR parsers.
   16951 
   16952 	* src/gram.c (glr_parser): New flag.
   16953 	(grammar_free): Call free_merger_functions.
   16954 
   16955 	* src/conflicts.c (count_rr_conflicts): Augment to optionally count
   16956 	all pairs of conflicting reductions, rather than just all tokens
   16957 	causing conflicts.  Needed to size conflict tables.
   16958 	(conflicts_output): Modify call to count_rr_conflicts for new
   16959 	interface.
   16960 	(conflicts_print): Ditto.
   16961 	(count_total_conflicts): New function.
   16962 
   16963 	* src/reader.h (merger_list): New type.
   16964 	(merge_functions): New variable.
   16965 
   16966 	* src/lex.h (tok_dprec, tok_merge): New token types.
   16967 
   16968 	* src/gram.h (rule_s): Add dprec and merger fields.
   16969 	(glr_parser): New flag.
   16970 
   16971 	* src/conflicts.h (count_total_conflicts): New function.
   16972 
   16973 	* src/options.c (option_table): Add %dprec, %merge, and %glr-parser.
   16974 
   16975 	* doc/bison.texinfo (Generalized LR Parsing): New section.
   16976 	(GLR Parsers): New section.
   16977 	(Language and Grammar): Mention GLR parsing.
   16978 	(Table of Symbols): Add %dprec, %glr-parser, %merge, GLR
   16979 	Correct typo ("tge" -> "the").
   16980 
   16981 	* data/bison.glr: New skeleton for GLR parsing.
   16982 
   16983 	* tests/cxx-gram.at: New tests for GLR parsing.
   16984 
   16985 	* tests/testsuite.at: Include cxx-gram.at.
   16986 
   16987 	* tests/Makefile.am: Add cxx-gram.at.
   16988 
   16989 	* src/parse-gram.y:
   16990 
   16991 	* src/scan-gram.l: Add %dprec, %glr-parser, %merge.
   16992 
   16993 	* src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser.
   16994 
   16995 2002-06-27  Akim Demaille  <akim (a] epita.fr>
   16996 
   16997 	* src/options.h, src/options.c: Remove.
   16998 	* src/getargs.c (short_options, long_options): New.
   16999 
   17000 2002-06-27  Akim Demaille  <akim (a] epita.fr>
   17001 
   17002 	* data/bison.simple, data/bison.c++: Rename as...
   17003 	* data/yacc.c, data/lalr1.cc: these.
   17004 	* doc/bison.texinfo (Environment Variables): Remove.
   17005 
   17006 2002-06-25  Raja R Harinath  <harinath (a] cs.umn.edu>
   17007 
   17008 	* src/getargs.c (report_argmatch): Initialize strtok().
   17009 
   17010 2002-06-20  Akim Demaille  <akim (a] epita.fr>
   17011 
   17012 	* data/bison.simple (b4_symbol_actions): New, replaces...
   17013 	(b4_symbol_destructor, b4_symbol_printer): these.
   17014 	(yysymprint): Be sure to call YYPRINT only for tokens, and using
   17015 	user token numbers.
   17016 
   17017 2002-06-20  Akim Demaille  <akim (a] epita.fr>
   17018 
   17019 	* data/bison.simple (yydestructor): Rename as...
   17020 	(yydestruct): this.
   17021 
   17022 2002-06-20  Akim Demaille  <akim (a] epita.fr>
   17023 
   17024 	* src/symtab.h, src/symtab.c (symbol_type_set)
   17025 	(symbol_destructor_set, symbol_precedence_set): The location is
   17026 	the last argument.
   17027 	Adjust all callers.
   17028 
   17029 2002-06-20  Akim Demaille  <akim (a] epita.fr>
   17030 
   17031 	* src/parse-gram.y (YYPRINT, yyprint): Don't mess with the parser
   17032 	internals.
   17033 	* src/reader.h, src/reader.c (grammar_current_rule_prec_set):
   17034 	Takes a location.
   17035 	* src/symtab.h, src/symtab.c (symbol_class_set)
   17036 	(symbol_user_token_number_set): Likewise.
   17037 	Adjust all callers.
   17038 	Promote complain_at.
   17039 	* tests/input.at (Type Clashes): Adjust.
   17040 
   17041 2002-06-20  Akim Demaille  <akim (a] epita.fr>
   17042 
   17043 	* data/bison.simple (YYLEX): Fix the declaration when
   17044 	%pure-parser.
   17045 
   17046 2002-06-20  Akim Demaille  <akim (a] epita.fr>
   17047 
   17048 	* data/bison.simple (yysymprint): Don't print the token number,
   17049 	just its name.
   17050 	* tests/actions.at (Destructors): Rename as...
   17051 	(Printers and Destructors): this.
   17052 	Also exercise %printer.
   17053 
   17054 2002-06-20  Akim Demaille  <akim (a] epita.fr>
   17055 
   17056 	* data/bison.simple (YYDSYMPRINT): New.
   17057 	Use it to remove many of the #if YYDEBUG/if (yydebug).
   17058 
   17059 2002-06-20  Akim Demaille  <akim (a] epita.fr>
   17060 
   17061 	* src/symtab.h, src/symtab.c (symbol_t): printer and
   17062 	printer_location are new members.
   17063 	(symbol_printer_set): New.
   17064 	* src/parse-gram.y (PERCENT_PRINTER): New token.
   17065 	Handle its associated rule.
   17066 	* src/scan-gram.l: Adjust.
   17067 	(handle_destructor_at, handle_destructor_dollar): Rename as...
   17068 	(handle_symbol_code_at, handle_symbol_code_dollar): these.
   17069 	* src/output.c (symbol_printers_output): New.
   17070 	(output_skeleton): Call it.
   17071 	* data/bison.simple (yysymprint): New.  Cannot be named yyprint
   17072 	since there are already many grammar files with a user `yyprint'.
   17073 	Replace the calls to YYPRINT to calls to yysymprint.
   17074 	* tests/calc.at: Adjust.
   17075 	* tests/torture.at (AT_DATA_STACK_TORTURE): Remove YYPRINT: it was
   17076 	taking advantage of parser very internal details (stack size!).
   17077 
   17078 2002-06-20  Akim Demaille  <akim (a] epita.fr>
   17079 
   17080 	* src/scan-gram.l: Complete the scanner with the missing patterns
   17081 	to pacify Flex.
   17082 	Use `quote' and `symbol_tag_get' where appropriate.
   17083 
   17084 2002-06-19  Akim Demaille  <akim (a] epita.fr>
   17085 
   17086 	* tests/actions.at (Destructors): Augment to test locations.
   17087 	* data/bison.simple (yydestructor): Pass it the current location
   17088 	if locations are enabled.
   17089 	Prototype only when __STDC__ or C++.
   17090 	Change the argument names to move into the yy name space: there is
   17091 	user code here.
   17092 
   17093 2002-06-19  Akim Demaille  <akim (a] epita.fr>
   17094 
   17095 	* data/bison.simple (b4_pure_if): New.
   17096 	Use it instead of #ifdef YYPURE.
   17097 
   17098 2002-06-19  Akim Demaille  <akim (a] epita.fr>
   17099 
   17100 	* data/bison.simple (b4_location_if): New.
   17101 	Use it instead of #ifdef YYLSP_NEEDED.
   17102 
   17103 2002-06-19  Akim Demaille  <akim (a] epita.fr>
   17104 
   17105 	Prepare @$ in %destructor, but currently don't bind it in the
   17106 	skeleton, as %location use is not cleaned up yet.
   17107 
   17108 	* src/scan-gram.l (handle_dollar, handle_destructor_at)
   17109 	(handle_action_at): New.
   17110 	(handle_at, handle_action_dollar, handle_destructor_dollar): Take
   17111 	a braced_code_t and a location as additional arguments.
   17112 	(handle_destructor_dollar): Instead of requiring `b4_eval', just
   17113 	unquote one when outputting `b4_dollar_dollar'.
   17114 	Adjust callers.
   17115 	* data/bison.simple (b4_eval): Remove.
   17116 	(b4_symbol_destructor): Adjust.
   17117 	* tests/input.at (Invalid @n): Adjust.
   17118 
   17119 2002-06-19  Zack Weinberg  <zack (a] codesourcery.com>
   17120 
   17121 	* doc/bison.texinfo: Document ability to have multiple
   17122 	prologue sections.
   17123 
   17124 2002-06-18  Akim Demaille  <akim (a] epita.fr>
   17125 
   17126 	* src/files.c (compute_base_names): When computing the output file
   17127 	names from the input file name, strip the directory part.
   17128 
   17129 2002-06-18  Akim Demaille  <akim (a] epita.fr>
   17130 
   17131 	* data/bison.simple.new: Comment changes.
   17132 	Reported by Andreas Schwab.
   17133 
   17134 2002-06-18  Matt Kraai  <kraai (a] alumni.cmu.edu>
   17135 
   17136 	* data/bison.simple (yyoverflowlab): #ifndef yyoverflow, so that
   17137 	there are no `label `yyoverflowlab' defined but not used' warnings
   17138 	when yyoverflow is defined.
   17139 
   17140 2002-06-18  Akim Demaille  <akim (a] epita.fr>
   17141 
   17142 	* src/symtab.h, src/symtab.c (symbol_t): destructor_location is a
   17143 	new member.
   17144 	(symbol_destructor_set): Adjust.
   17145 	* src/output.c (symbol_destructors_output): Output the destructor
   17146 	locations.
   17147 	Output the symbol name.
   17148 	* data/bison.simple (b4_symbol_destructor): Adjust.
   17149 
   17150 2002-06-18  Cris Bailiff  <c.bailiff (a] awayweb.com>
   17151 	and Akim Demaille  <akim (a] epita.fr>
   17152 
   17153 	* data/bison.simple.new (yyerrlab1): Be sure to pop and destroy
   17154 	what's left on the stack when the error recovery hits EOF.
   17155 	* tests/actions.at (Destructors): Complete to exercise this case.
   17156 
   17157 2002-06-17  Akim Demaille  <akim (a] epita.fr>
   17158 
   17159 	* data/m4sugar/m4sugar.m4 (m4_map): Recognize when the list of
   17160 	arguments is really empty, not only equal to `[]'.
   17161 	* src/symtab.h, src/symtab.c (symbol_t): `destructor' is a new
   17162 	member.
   17163 	(symbol_destructor_set): New.
   17164 	* src/output.c (symbol_destructors_output): New.
   17165 	* src/reader.h (brace_code_t, current_braced_code): New.
   17166 	* src/scan-gram.l (BRACED_CODE): Use it to branch on...
   17167 	(handle_dollar): Rename as...
   17168 	(handle_action_dollar): this.
   17169 	(handle_destructor_dollar): New.
   17170 	* src/parse-gram.y (PERCENT_DESTRUCTOR): New.
   17171 	(grammar_declaration): Use it.
   17172 	* data/bison.simple (yystos): Is always defined.
   17173 	(yydestructor): New.
   17174 	* tests/actions.at (Destructors): New.
   17175 	* tests/calc.at (_AT_CHECK_CALC_ERROR): Don't rely on egrep.
   17176 
   17177 2002-06-17  Akim Demaille  <akim (a] epita.fr>
   17178 
   17179 	* src/symlist.h, src/symlist.c (symbol_list_length): New.
   17180 	* src/scan-gram.l (handle_dollar, handle_at): Compute the
   17181 	rule_length only when needed.
   17182 	* src/output.c (actions_output, token_definitions_output): Output
   17183 	the full M4 block.
   17184 	* src/symtab.c: Don't access directly to the symbol tag, use
   17185 	symbol_tag_get.
   17186 	* src/parse-gram.y: Use symbol_list_free.
   17187 
   17188 2002-06-17  Akim Demaille  <akim (a] epita.fr>
   17189 
   17190 	* src/reader.h, src/reader.c (symbol_list, symbol_list_new)
   17191 	(symbol_list_prepend, get_type_name): Move to...
   17192 	* src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
   17193 	(symbol_list_prepend, symbol_list_n_type_name_get): here.
   17194 	Adjust all callers.
   17195 	(symbol_list_free): New.
   17196 	* src/scan-gram.l (handle_dollar): Takes a location.
   17197 	* tests/input.at (Invalid $n): Adjust.
   17198 
   17199 2002-06-17  Akim Demaille  <akim (a] epita.fr>
   17200 
   17201 	* src/reader.h, src/reader.c (symbol_list_new): Export it.
   17202 	(symbol_list_prepend): New.
   17203 	* src/parse-gram.y (%union): `list' is a new member.
   17204 	(symbols.1): New, replaces...
   17205 	(terms_to_prec.1, nterms_to_type.1): these.
   17206 	* src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
   17207 	Take a location as additional argument.
   17208 	Adjust all callers.
   17209 
   17210 2002-06-15  Akim Demaille  <akim (a] epita.fr>
   17211 
   17212 	* src/parse-gram.y: Move %token in the declaration section so that
   17213 	we don't depend upon CVS Bison.
   17214 
   17215 2002-06-15  Akim Demaille  <akim (a] epita.fr>
   17216 
   17217 	* src/state.h, src/state.c (state_rule_lookaheads_print): New.
   17218 	* src/print.c (print_core): Use it.
   17219 
   17220 2002-06-15  Akim Demaille  <akim (a] epita.fr>
   17221 
   17222 	* src/conflicts.c (log_resolution): Accept the rule involved in
   17223 	the sr conflicts instead of the lookahead number that points to
   17224 	that rule.
   17225 	(flush_reduce): Accept the current lookahead vector as argument,
   17226 	instead of the index in LA.
   17227 	(resolve_sr_conflict): Accept the current number of lookahead
   17228 	bitset to consider for the STATE, instead of the index in LA.
   17229 	(set_conflicts): Adjust.
   17230 	* src/lalr.c, src/lalr.h, src/state.h: Comment changes.
   17231 
   17232 2002-06-15  Akim Demaille  <akim (a] epita.fr>
   17233 
   17234 	* src/state.h (state_t): Replace the `lookaheadsp' member, a
   17235 	short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
   17236 	Adjust all dependencies.
   17237 	* src/lalr.c (initialize_lookaheads): Split into...
   17238 	(states_lookaheads_count, states_lookaheads_initialize): these.
   17239 	(lalr): Adjust.
   17240 
   17241 2002-06-15  Akim Demaille  <akim (a] epita.fr>
   17242 
   17243 	* src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
   17244 	out of...
   17245 	(grammar_rules_print): here.
   17246 	* src/reduce.c (reduce_output): Use it.
   17247 	* tests/reduce.at (Useless Rules, Reduced Automaton)
   17248 	(Underivable Rules): Adjust.
   17249 
   17250 2002-06-15  Akim Demaille  <akim (a] epita.fr>
   17251 
   17252 	Copy BYacc's nice way to report the grammar.
   17253 
   17254 	* src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
   17255 	New.
   17256 	Don't print the rules' location, it is confusing and useless.
   17257 	(rule_print): Use grammar_rhs_print.
   17258 	* src/print.c (print_grammar): Use grammar_rules_print.
   17259 
   17260 2002-06-15  Akim Demaille  <akim (a] epita.fr>
   17261 
   17262 	Complete and rationalize `useless thing' warnings.
   17263 
   17264 	* src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
   17265 	(symbol_tag_print): New.
   17266 	Use them everywhere in place of accessing directly the tag member.
   17267 	* src/gram.h, src/gram.c (rule_print): New.
   17268 	Use it where a rule used to be printed `by hand'.
   17269 	* src/reduce.c (nonterminals_reduce): Report the use nonterminals.
   17270 	(reduce_grammar_tables): Report the useless rules.
   17271 	(reduce_print): Useless things are a warning, not an error.
   17272 	Report it as such.
   17273 	* tests/reduce.at (Useless Nonterminals, Useless Rules):
   17274 	(Reduced Automaton, Underivable Rules): Adjust.
   17275 	* tests/regression.at (Web2c Report, Web2c Report): Adjust.
   17276 	* tests/conflicts.at (Unresolved SR Conflicts)
   17277 	(Solved SR Conflicts): Adjust.
   17278 
   17279 2002-06-15  Akim Demaille  <akim (a] epita.fr>
   17280 
   17281 	Let symbols have a location.
   17282 
   17283 	* src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
   17284 	(getsym): Adjust.
   17285 	Adjust all callers.
   17286 	* src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
   17287 	Use location_t, not int.
   17288 	* src/symtab.c (symbol_check_defined): Take advantage of the
   17289 	location.
   17290 	* tests/regression.at (Invalid inputs): Adjust.
   17291 
   17292 2002-06-15  Akim Demaille  <akim (a] epita.fr>
   17293 
   17294 	* src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
   17295 	(input): Don't try to initialize yylloc here, do it in the
   17296 	scanner.
   17297 	* src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
   17298 	* src/gram.h (rule_t): Change line and action_line into location
   17299 	and action_location, of location_t type.
   17300 	Adjust all dependencies.
   17301 	* src/location.h, src/location.c (empty_location): New.
   17302 	* src/reader.h, src/reader.c (grammar_start_symbol_set)
   17303 	(grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
   17304 	(grammar_current_rule_symbol_append)
   17305 	(grammar_current_rule_action_append): Expect a location as argument.
   17306 	* src/reader.c (grammar_midrule_action): Adjust to attach an
   17307 	action's location as dummy symbol location.
   17308 	* src/symtab.h, src/symtab.c (startsymbol_location): New.
   17309 	* tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
   17310 	the line numbers.
   17311 
   17312 2002-06-14  Akim Demaille  <akim (a] epita.fr>
   17313 
   17314 	Grammar declarations may be found in the grammar section.
   17315 
   17316 	* src/parse-gram.y (rules_or_grammar_declaration): New.
   17317 	(declarations): Each declaration may end with a semicolon, not
   17318 	just...
   17319 	(grammar_declaration): `"%union"'.
   17320 	(grammar): Branch to rules_or_grammar_declaration.
   17321 
   17322 2002-06-14  Akim Demaille  <akim (a] epita.fr>
   17323 
   17324 	* src/main.c (main): Invoke scanner_free.
   17325 
   17326 2002-06-14  Akim Demaille  <akim (a] epita.fr>
   17327 
   17328 	* src/output.c (m4_invoke): Extracted from...
   17329 	(output_skeleton): here.
   17330 	Free tempfile.
   17331 
   17332 2002-06-14  Akim Demaille  <akim (a] epita.fr>
   17333 
   17334 	* src/parse-gram.y (directives, directive, gram)
   17335 	(grammar_directives, precedence_directives, precedence_directive):
   17336 	Rename as...
   17337 	(declarations, declaration, grammar, grammar_declaration)
   17338 	(precedence_declaration, precedence_declarator): these.
   17339 	(symbol_declaration): New.
   17340 
   17341 2002-06-14  Akim Demaille  <akim (a] epita.fr>
   17342 
   17343 	* src/files.c (action_obstack): Remove, unused.
   17344 	(output_obstack): Remove it, and all its dependencies, as it is no
   17345 	longer needed.
   17346 	* src/reader.c (epilogue_set): Build the epilogue in the
   17347 	muscle_obstack.
   17348 	* src/output.h, src/output.c (muscle_obstack): Move to...
   17349 	* src/muscle_tab.h, src/muscle_tab.h: here.
   17350 	(muscle_init): Initialize muscle_obstack.
   17351 	(muscle_free): New.
   17352 	* src/main.c (main): Call it.
   17353 
   17354 2002-06-14  Akim Demaille  <akim (a] epita.fr>
   17355 
   17356 	* src/location.h: New, extracted from...
   17357 	* src/reader.h: here.
   17358 	* src/Makefile.am (noinst_HEADERS): Merge into
   17359 	(bison_SOURCES): this.
   17360 	Add location.h.
   17361 	* src/parse-gram.y: Use location_t instead of Bison's.
   17362 	* src/reader.h, src/reader.c (prologue_augment, epilogue_set):
   17363 	Use location_t instead of ints.
   17364 
   17365 2002-06-14  Akim Demaille  <akim (a] epita.fr>
   17366 
   17367 	* data/bison.simple, data/bison.c++: Be sure to restore the
   17368 	current #line when returning to the skeleton contents after having
   17369 	exposed the input file's #line.
   17370 
   17371 2002-06-12  Akim Demaille  <akim (a] epita.fr>
   17372 
   17373 	* src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
   17374 	eager.
   17375 	* tests/actions.at (Exotic Dollars): New.
   17376 
   17377 2002-06-12  Akim Demaille  <akim (a] epita.fr>
   17378 
   17379 	* src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
   17380 	['"/] too eagerly.
   17381 	* tests/input.at (Torturing the Scanner): New.
   17382 
   17383 2002-06-11  Akim Demaille  <akim (a] epita.fr>
   17384 
   17385 	* src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
   17386 	[SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
   17387 	[SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
   17388 	* src/reader.h, src/scan-gram.l (scanner_initialize): this.
   17389 	* src/reader.c (reader): Use it.
   17390 
   17391 2002-06-11  Akim Demaille  <akim (a] epita.fr>
   17392 
   17393 	* src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
   17394 	Adjust all callers.
   17395 	(scanner_last_string_free): New.
   17396 
   17397 2002-06-11  Akim Demaille  <akim (a] epita.fr>
   17398 
   17399 	* src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...
   17400 	(YY_OBS_INIT, YY_OBS_GROW, YY_OBS_FINISH): these.
   17401 	(last_string, YY_OBS_FREE): New.
   17402 	Use them when returning an ID.
   17403 
   17404 2002-06-11  Akim Demaille  <akim (a] epita.fr>
   17405 
   17406 	Have Bison grammars parsed by a Bison grammar.
   17407 
   17408 	* src/reader.c, src/reader.h (prologue_augment): New.
   17409 	* src/reader.c (copy_definition): Remove.
   17410 
   17411 	* src/reader.h, src/reader.c (gram_start_symbol_set, prologue_augment)
   17412 	(grammar_symbol_append, grammar_rule_begin, grammar_midrule_action)
   17413 	(grammar_current_rule_prec_set, grammar_current_rule_check)
   17414 	(grammar_current_rule_symbol_append)
   17415 	(grammar_current_rule_action_append): Export.
   17416 	* src/parse-gram.y (symbol_list_new, symbol_list_symbol_append_
   17417 	(symbol_list_action_append): Remove.
   17418 	Hook the routines from reader.
   17419 	* src/scan-gram.l: In INITIAL, characters and strings are tokens.
   17420 	* src/system.h (ATTRIBUTE_NORETURN, ATTRIBUTE_UNUSED): Now.
   17421 
   17422 	* src/reader.c (read_declarations): Remove, unused.
   17423 
   17424 	* src/parse-gram.y: Handle the epilogue.
   17425 	* src/reader.h, src/reader.c (gram_start_symbol_set): Rename as...
   17426 	(grammar_start_symbol_set): this.
   17427 	* src/scan-gram.l: Be sure to ``use'' yycontrol to keep GCC quiet.
   17428 	* src/reader.c (readgram): Remove, unused.
   17429 	(reader): Adjust to insert eoftoken and axiom where appropriate.
   17430 
   17431 	* src/reader.c (copy_dollar): Replace with...
   17432 	* src/scan-gram.h (handle_dollar): this.
   17433 	* src/parse-gram.y: Remove `%thong'.
   17434 
   17435 	* src/reader.c (copy_at): Replace with...
   17436 	* src/scan-gram.h (handle_at): this.
   17437 
   17438 	* src/complain.h, src/complain.c (warn_at, complain_at, fatal_at):
   17439 	New.
   17440 
   17441 	* src/scan-gram.l (YY_LINES): Keep lineno synchronized for the
   17442 	time being.
   17443 
   17444 	* src/reader.h, src/reader.c (grammar_rule_end): New.
   17445 
   17446 	* src/parse.y (current_type, current_class): New.
   17447 	Implement `%nterm', `%token' support.
   17448 	Merge `%term' into `%token'.
   17449 	(string_as_id): New.
   17450 	* src/symtab.h, src/symtab.c (symbol_make_alias): Don't pass the
   17451 	type name.
   17452 
   17453 	* src/parse-gram.y: Be sure to handle properly the beginning of
   17454 	rules.
   17455 
   17456 	* src/parse-gram.y: Handle %type.
   17457 	* src/reader.c (grammar_rule_end): Call grammar_current_rule_check.
   17458 
   17459 	* src/parse-gram.y: More directives support.
   17460 	* src/options.c: No longer handle source directives.
   17461 
   17462 	* src/parse-gram.y: Fix %output.
   17463 
   17464 	* src/parse-gram.y: Handle %union.
   17465 	Use the prologue locations.
   17466 	* src/reader.c (parse_union_decl): Remove.
   17467 
   17468 	* src/reader.h, src/reader.c (epilogue_set): New.
   17469 	* src/parse-gram.y: Use it.
   17470 
   17471 	* data/bison.simple, data/bison.c++: b4_stype is now either not
   17472 	defined, then default to int, or to the contents of %union,
   17473 	without `union' itself.
   17474 	Adjust.
   17475 	* src/muscle_tab.c (muscle_init): Don't predefine `stype'.
   17476 
   17477 	* src/output.c (actions_output): Don't output braces, as they are
   17478 	already handled by the scanner.
   17479 
   17480 	* src/scan-gram.l (SC_CHARACTER): Set the user_token_number of
   17481 	characters to themselves.
   17482 
   17483 	* tests/reduce.at (Reduced Automaton): End the grammars with %% so
   17484 	that the epilogue has a proper #line.
   17485 
   17486 	* src/parse-gram.y: Handle precedence/associativity.
   17487 
   17488 	* src/symtab.c (symbol_precedence_set): Requires the symbol to be
   17489 	a terminal.
   17490 	* src/scan-gram.l (SC_BRACED_CODE): Catch strings and characters.
   17491 	* tests/calc.at: Do not use `%token "foo"' as it makes not sense
   17492 	at all to define terminals that cannot be emitted.
   17493 
   17494 	* src/scan-gram.l: Escape M4 characters.
   17495 
   17496 	* src/scan-gram.l: Working properly with escapes in user
   17497 	strings/characters.
   17498 
   17499 	* tests/torture.at (AT_DATA_TRIANGULAR_GRAMMAR)
   17500 	(AT_DATA_HORIZONTAL_GRAMMAR): Respect the `%token ID NUM STRING'
   17501 	grammar.
   17502 	Use more modest sizes, as for the time being the parser does not
   17503 	release memory, and therefore the process swallows a huge amount
   17504 	of memory.
   17505 
   17506 	* tests/torture.at (AT_DATA_LOOKAHEADS_GRAMMAR): Adjust to the
   17507 	stricter %token grammar.
   17508 
   17509 	* src/symtab.h (associativity): Add `undef_assoc'.
   17510 	(symbol_precedence_set): Do nothing when passed an undef_assoc.
   17511 	* src/symtab.c (symbol_check_alias_consistence): Adjust.
   17512 
   17513 	* tests/regression.at (Invalid %directive): Remove, as it is now
   17514 	meaningless.
   17515 	(Invalid inputs): Adjust to the new error messages.
   17516 	(Token definitions): The new grammar doesn't allow too many
   17517 	eccentricities.
   17518 
   17519 	* src/lex.h, src/lex.c: Remove.
   17520 	* src/reader.c (lastprec, skip_to_char, read_signed_integer)
   17521 	(copy_character, copy_string2, copy_string, copy_identifier)
   17522 	(copy_comment, parse_token_decl, parse_type_decl, parse_assoc_decl)
   17523 	(parse_muscle_decl, parse_dquoted_param, parse_skel_decl)
   17524 	(parse_action): Remove.
   17525 	* po/POTFILES.in: Adjust.
   17526 
   17527 2002-06-11  Akim Demaille  <akim (a] epita.fr>
   17528 
   17529 	* src/reader.c (parse_action): Don't store directly into the
   17530 	rule's action member: return the action as a string.
   17531 	Don't require `rule_length' as an argument: compute it.
   17532 	(grammar_current_rule_symbol_append)
   17533 	(grammar_current_rule_action_append): New, eved out from
   17534 	(readgram): here.
   17535 	Remove `action_flag', `rulelength', unused now.
   17536 
   17537 2002-06-11  Akim Demaille  <akim (a] epita.fr>
   17538 
   17539 	* src/reader.c (grammar_current_rule_prec_set).
   17540 	(grammar_current_rule_check): New, eved out from...
   17541 	(readgram): here.
   17542 	Remove `xaction', `first_rhs': useless.
   17543 	* tests/input.at (Type clashes): New.
   17544 	* tests/existing.at (GNU Cim Grammar): Adjust.
   17545 
   17546 2002-06-11  Akim Demaille  <akim (a] epita.fr>
   17547 
   17548 	* src/reader.c (grammar_midrule_action): New, Eved out from
   17549 	(readgram): here.
   17550 
   17551 2002-06-11  Akim Demaille  <akim (a] epita.fr>
   17552 
   17553 	* src/reader.c (grammar_rule_begin, previous_rule, current_rule):
   17554 	New.
   17555 	(readgram): Use them as replacement of inlined code, crule and
   17556 	crule1.
   17557 
   17558 2002-06-11  Akim Demaille  <akim (a] epita.fr>
   17559 
   17560 	* src/reader.c (grammar_end, grammar_symbol_append): New.
   17561 	(readgram): Use them.
   17562 	Make the use of `p' as local as possible.
   17563 
   17564 2002-06-10  Akim Demaille  <akim (a] epita.fr>
   17565 
   17566 	GCJ's parser requires the tokens to be defined before the prologue.
   17567 
   17568 	* data/bison.simple: Output the token definition before the user's
   17569 	prologue.
   17570 	* tests/regression.at (Braces parsing, Duplicate string)
   17571 	(Mixing %token styles): Check the output from bison.
   17572 	(Early token definitions): New.
   17573 
   17574 2002-06-10  Akim Demaille  <akim (a] epita.fr>
   17575 
   17576 	* src/symtab.c (symbol_user_token_number_set): Don't complain when
   17577 	assigning twice the same user number to a token, so that we can
   17578 	use it in...
   17579 	* src/lex.c (lex): here.
   17580 	Also use `symbol_class_set' instead of hand written code.
   17581 	* src/reader.c (parse_assoc_decl): Likewise.
   17582 
   17583 2002-06-10  Akim Demaille  <akim (a] epita.fr>
   17584 
   17585 	* src/symtab.c, src/symtab.c (symbol_class_set)
   17586 	(symbol_user_token_number_set): New.
   17587 	* src/reader.c (parse_token_decl): Use them.
   17588 	Use a switch instead of ifs.
   17589 	Use a single argument.
   17590 
   17591 2002-06-10  Akim Demaille  <akim (a] epita.fr>
   17592 
   17593 	Remove `%thong' support as it is undocumented, unused, duplicates
   17594 	`%token's job, and creates useless e-mail traffic with people who
   17595 	want to know what it is, why it is undocumented, unused, and
   17596 	duplicates `%token's job.
   17597 
   17598 	* src/reader.c (parse_thong_decl): Remove.
   17599 	* src/options.c (option_table): Remove "thong".
   17600 	* src/lex.h (tok_thong): Remove.
   17601 
   17602 2002-06-10  Akim Demaille  <akim (a] epita.fr>
   17603 
   17604 	* src/symtab.c, src/symtab.c (symbol_type_set)
   17605 	(symbol_precedence_set): New.
   17606 	* src/reader.c (parse_type_decl, parse_assoc_decl): Use them.
   17607 	(value_components_used): Remove, unused.
   17608 
   17609 2002-06-09  Akim Demaille  <akim (a] epita.fr>
   17610 
   17611 	Move symbols handling code out of the reader.
   17612 
   17613 	* src/reader.h, src/reader.c (errtoken, undeftoken, eoftoken)
   17614 	(axiom): Move to...
   17615 	* src/symtab.h, src/symtab.c: here.
   17616 
   17617 	* src/gram.c (start_symbol): Remove: use startsymbol->number.
   17618 	* src/reader.c (startval): Rename as...
   17619 	* src/symtab.h, src/symtab.c (startsymbol): this.
   17620 	* src/reader.c: Adjust.
   17621 
   17622 	* src/reader.c (symbol_check_defined, symbol_make_alias)
   17623 	(symbol_check_alias_consistence, symbol_pack, symbol_translation)
   17624 	(token_translations_init)
   17625 	Move to...
   17626 	* src/symtab.c: here.
   17627 	* src/reader.c (packsymbols): Move to...
   17628 	* src/symtab.h, src/symtab.c (symbols_pack): here.
   17629 	* src/symtab.h, src/symtab.c (symbol_make_alias): Takes SYMVAL as
   17630 	argument.
   17631 
   17632 2002-06-03  Akim Demaille  <akim (a] epita.fr>
   17633 
   17634 	* src/muscle_tab.c (muscle_insert, muscle_find): Declarations,
   17635 	then statements.
   17636 
   17637 2002-06-03  Akim Demaille  <akim (a] epita.fr>
   17638 
   17639 	* src/muscle_tab.c (muscle_find, muscle_insert): Don't initialize
   17640 	structs with non literals.
   17641 	* src/scan-skel.l: never-interactive.
   17642 	* src/conflicts.c (enum conflict_resolution_e): No trailing
   17643 	comma.
   17644 	* src/getargs.c (usage): Split long literal strings.
   17645 	Reported by Hans Aberg.
   17646 
   17647 2002-05-28  Akim Demaille  <akim (a] epita.fr>
   17648 
   17649 	* data/bison.c++: Use C++ ostreams.
   17650 	(cdebug_): New member.
   17651 
   17652 2002-05-28  Akim Demaille  <akim (a] epita.fr>
   17653 
   17654 	* src/output.c (output_skeleton): Be sure to allocate enough room
   17655 	for `/' _and_ for `\0' in full_skeleton.
   17656 
   17657 2002-05-28  Akim Demaille  <akim (a] epita.fr>
   17658 
   17659 	* data/bison.c++: Catch up with bison.simple:
   17660 	2002-05-24  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   17661 	and Paul Eggert  <eggert (a] twinsun.com>: `error' handing.
   17662 	2002-05-26  Akim Demaille  <akim (a] epita.fr>: stos_, token_number_,
   17663 	and popping traces.
   17664 
   17665 2002-05-27  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   17666 
   17667 	* src/output.c (output_skeleton): Put an explicit path in front of
   17668 	the skeleton file name, rather than relying on the -I directory,
   17669 	to partially alleviate effects of having a skeleton file lying around
   17670 	in the current directory.
   17671 
   17672 2002-05-27  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   17673 
   17674 	* src/conflicts.c (log_resolution): Correct typo:
   17675 	obstack_printf should be obstack_fgrow1.
   17676 
   17677 2002-05-26  Akim Demaille  <akim (a] epita.fr>
   17678 
   17679 	* src/state.h (state_t): `solved_conflicts' is a new member.
   17680 	* src/LR0.c (new_state): Set it to 0.
   17681 	* src/conflicts.h, src/conflicts.c (print_conflicts)
   17682 	(free_conflicts, solve_conflicts): Rename as...
   17683 	(conflicts_print, conflicts_free, conflicts_solve): these.
   17684 	Adjust callers.
   17685 	* src/conflicts.c (enum conflict_resolution_e)
   17686 	(solved_conflicts_obstack): New, used by...
   17687 	(log_resolution): this.
   17688 	Adjust to attach the conflict resolution to each state.
   17689 	Complete the description with the precedence/associativity
   17690 	information.
   17691 	(resolve_sr_conflict): Adjust.
   17692 	* src/print.c (print_state): Output its solved_conflicts.
   17693 	* tests/conflicts.at (Unresolved SR Conflicts)
   17694 	(Solved SR Conflicts): Exercise --report=all.
   17695 
   17696 2002-05-26  Akim Demaille  <akim (a] epita.fr>
   17697 
   17698 	* src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
   17699 	* src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
   17700 	* src/reader.c, src/reduce.c, src/state.h, src/symtab.h
   17701 	(token_number_t, item_number_as_token_number)
   17702 	(token_number_as_item_number, muscle_insert_token_number_table):
   17703 	Rename as...
   17704 	(symbol_number_t, item_number_as_symbol_number)
   17705 	(symbol_number_as_item_number, muscle_insert_symbol_number_table):
   17706 	these, since it is more appropriate.
   17707 
   17708 2002-05-26  Akim Demaille  <akim (a] epita.fr>
   17709 
   17710 	* tests/calc.at (AT_CHECK_CALC): Adjust: there are now additional
   17711 	`Error:' lines.
   17712 	* data/bison.simple (yystos) [YYDEBUG]: New.
   17713 	(yyparse) [YYDEBUG]: Display the symbols which are popped during
   17714 	error recovery.
   17715 	* tests/regression.at (Web2c Actions): Adjust: yystos is output now.
   17716 
   17717 2002-05-25  Akim Demaille  <akim (a] epita.fr>
   17718 
   17719 	* doc/bison.texinfo (Debugging): Split into...
   17720 	(Tracing): this new section, its former contents, and...
   17721 	(Understanding): this new section.
   17722 	* src/getargs.h, src/getargs.c (verbose_flag): Remove, replaced
   17723 	by...
   17724 	(report_flag): this.
   17725 	Adjust all dependencies.
   17726 	(report_args, report_types, report_argmatch): New.
   17727 	(usage, getargs): Report/support -r, --report.
   17728 	* src/options.h
   17729 	(struct option_table_struct): Rename as..,
   17730 	(struct option_table_s): this.
   17731 	Rename the `set_flag' member to `flag' to match with getopt_long's
   17732 	struct.
   17733 	* src/options.c (option_table): Split verbose into an entry for
   17734 	%verbose, and another for --verbose.
   17735 	Support --report/-r, so remove -r from the obsolete --raw.
   17736 	* src/print.c: Attach full item sets and lookaheads reports to
   17737 	report_flag instead of trace_flag.
   17738 	* lib/argmatch.h, lib/argmatch.c: New, from Fileutils 4.1.
   17739 
   17740 2002-05-24  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   17741 	and Paul Eggert  <eggert (a] twinsun.com>
   17742 
   17743 	* data/bison.simple (yyparse): Correct error handling to conform to
   17744 	POSIX and yacc.  Specifically, after syntax error is discovered,
   17745 	do not reduce further before shifting the error token.
   17746 	Clean up the code a bit by removing the labels yyerrdefault,
   17747 	yyerrhandle, yyerrpop.
   17748 	* NEWS: Document the above.
   17749 
   17750 2002-05-20  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   17751 
   17752 	* data/bison.simple (yyr1): Don't use yy_token_number_type as element
   17753 	type; it isn't always big enough, since it doesn't necessarily
   17754 	include non-terminals.
   17755 	(yytranslate): Expand definition of yy_token_number_type, so that
   17756 	the latter can be removed.
   17757 	(yy_token_number_type): Remove, only one use.
   17758 	* data/bison.c++ (r1_): Parallel change to yyr1 in bison.simple---
   17759 	don't use TokenNumberType as element type.
   17760 
   17761 	* tests/regression.at: Modify expected output to agree with change
   17762 	to yyr1 and yytranslate.
   17763 
   17764 2002-05-13  Florian Krohm  <florian (a] edamail.fishkill.ibm.com>
   17765 
   17766 	* src/reader.c (parse_action): Use copy_character instead of
   17767 	obstack_1grow.
   17768 
   17769 2002-05-13  Akim Demaille  <akim (a] epita.fr>
   17770 
   17771 	* tests/regression.at (Token definitions): Prototype yylex and
   17772 	yyerror.
   17773 
   17774 2002-05-12  Paul Hilfinger  <Hilfinger (a] CS.Berkeley.EDU>
   17775 
   17776 	* src/scan-skel.l: Correct off-by-one error in handling of __oline__.
   17777 	* data/bison.simple (b4_sint_type, b4_uint_type): Correct to reflect
   17778 	32-bit arithmetic.
   17779 	* data/bison.c++ (b4_sint_type, b4_uint_type): Ditto.
   17780 
   17781 2002-05-07  Akim Demaille  <akim (a] epita.fr>
   17782 
   17783 	* tests/synclines.at: Be sure to prototype yylex and yyerror to
   17784 	avoid GCC warnings.
   17785 
   17786 2002-05-07  Akim Demaille  <akim (a] epita.fr>
   17787 
   17788 	Kill GCC warnings.
   17789 
   17790 	* src/reduce.c (nonterminals_reduce): Don't loop over RITEM: loop
   17791 	over the RHS of each rule.
   17792 	* src/gram.h, src/gram.c (nritems): Is `unsigned int', not int.
   17793 	* src/state.h (state_t): Member `nitems' is unsigned short.
   17794 	* src/LR0.c (get_state): Adjust.
   17795 	* src/reader.c (packgram): Likewise.
   17796 	* src/output.c (GENERATE_MUSCLE_INSERT_TABLE): `max' is of type
   17797 	`Type'.
   17798 	(muscle_insert_int_table): Remove, unused.
   17799 	(prepare_rules): Remove `max'.
   17800 
   17801 2002-05-06  Akim Demaille  <akim (a] epita.fr>
   17802 
   17803 	* src/closure.c (print_firsts): Display of the symbol tags.
   17804 	(bitmatrix_print): Move to...
   17805 	* lib/bitsetv-print.h, lib/bitsetv-print.c (bitsetv_matrix_dump):
   17806 	here.
   17807 	* tests/sets.at (Nullable, Broken Closure, Firsts): Adjust.
   17808 
   17809 2002-05-06  Akim Demaille  <akim (a] epita.fr>
   17810 
   17811 	* src/muscle_tab.c (muscle_m4_output): Must return TRUE for
   17812 	hash_do_for_each.
   17813 
   17814 2002-05-06  Akim Demaille  <akim (a] epita.fr>
   17815 
   17816 	* src/LR0.c (new_state, get_state): Instead of using the global
   17817 	`kernel_size' and `kernel_base', have two new arguments:
   17818 	`core_size' and `core'.
   17819 	Adjust callers.
   17820 
   17821 2002-05-06  Akim Demaille  <akim (a] epita.fr>
   17822 
   17823 	* src/reader.c (packgram): No longer end `ritem' with a 0
   17824 	sentinel: it is not used.
   17825 
   17826 2002-05-05  Akim Demaille  <akim (a] epita.fr>
   17827 
   17828 	New experimental feature: display the lookaheads in the report and
   17829 	graph.
   17830 
   17831 	* src/print (print_core): When --trace-flag, display the rules
   17832 	lookaheads.
   17833 	* src/print_graph.c (print_core): Likewise.
   17834 	Swap the arguments.
   17835 	Adjust caller.
   17836 
   17837 2002-05-05  Akim Demaille  <akim (a] epita.fr>
   17838 
   17839 	* tests/torture.at (Many lookaheads): New test.
   17840 
   17841 2002-05-05  Akim Demaille  <akim (a] epita.fr>
   17842 
   17843 	* src/output.c (GENERATE_OUTPUT_TABLE): Replace with...
   17844 	(GENERATE_MUSCLE_INSERT_TABLE): this.
   17845 	(output_int_table, output_unsigned_int_table, output_short_table)
   17846 	(output_token_number_table, output_item_number_table): Replace with...
   17847 	(muscle_insert_int_table, muscle_insert_unsigned_int_table)
   17848 	(muscle_insert_short_table, muscle_insert_token_number_table)
   17849 	(muscle_insert_item_number_table): these.
   17850 	Adjust all callers.
   17851 	(prepare_tokens): Don't free `translations', since...
   17852 	* src/reader.h, src/reader.c (grammar_free): do it.
   17853 	Move to...
   17854 	* src/gram.h, src/gram.c (grammar_free): here.
   17855 	* data/bison.simple, data/bison.c++: b4_token_number_max is now
   17856 	b4_translate_max.
   17857 
   17858 2002-05-05  Akim Demaille  <akim (a] epita.fr>
   17859 
   17860 	* src/output.c (output_unsigned_int_table): New.
   17861 	(prepare_rules): `i' is unsigned.
   17862 	`prhs', `rline', `r2' are unsigned int.
   17863 	Rename muscle `rhs_number_max' as `rhs_max'.
   17864 	Output muscles `prhs_max', `rline_max', and `r2_max'.
   17865 	Free rline and r1.
   17866 	* data/bison.simple, data/bison.c++: Adjust to use these muscles
   17867 	to compute types instead of constant types.
   17868 	* tests/regression.at (Web2c Actions): Adjust.
   17869 
   17870 2002-05-04  Akim Demaille  <akim (a] epita.fr>
   17871 
   17872 	* src/symtab.h (SALIAS, SUNDEF): Rename as...
   17873 	(USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these.
   17874 	Adjust dependencies.
   17875 	* src/output.c (token_definitions_output): Be sure not to output a
   17876 	`#define 'a'' when fed with `%token 'a' "a"'.
   17877 	* tests/regression.at (Token definitions): New.
   17878 
   17879 2002-05-03  Paul Eggert  <eggert (a] twinsun.com>
   17880 
   17881 	* data/bison.simple (b4_token_defines): Also define YYTOKENTYPE
   17882 	for K&R C.
   17883 
   17884 2002-05-03  gettextize  <bug-gnu-gettext (a] gnu.org>
   17885 
   17886 	* Makefile.am (SUBDIRS): Remove intl.
   17887 	(EXTRA_DIST): Add config/config.rpath.
   17888 
   17889 2002-05-03  Akim Demaille  <akim (a] epita.fr>
   17890 
   17891 	* data/bison.simple (m4_if): Don't output empty enums.
   17892 	And actually, output valid enum definitions :(.
   17893 
   17894 2002-05-03  Akim Demaille  <akim (a] epita.fr>
   17895 
   17896 	* configure.bat: Remove, completely obsolete.
   17897 	* Makefile.am (EXTRA_DIST): Adjust.
   17898 	Don't distribute config.rpath...
   17899 	* config/Makefile.am (EXTRA_DIST): Do it.
   17900 
   17901 2002-05-03  Akim Demaille  <akim (a] epita.fr>
   17902 
   17903 	* configure.in (GETTEXT_VERSION): New.
   17904 	Suggested by Bruno Haible for the forthcoming Gettext 0.10.3.
   17905 
   17906 2002-05-03  Akim Demaille  <akim (a] epita.fr>
   17907 
   17908 	* data/bison.simple (b4_token_enum): New.
   17909 	(b4_token_defines): Use it to output tokens both as #define and
   17910 	enums.
   17911 	Suggested by Paul Eggert.
   17912 	* src/output.c (token_definitions_output): Don't output spurious
   17913 	white spaces.
   17914 
   17915 2002-05-03  Akim Demaille  <akim (a] epita.fr>
   17916 
   17917 	* data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
   17918 
   17919 2002-05-02  Robert Anisko  <robert (a] lrde.epita.fr>
   17920 
   17921 	* data/bison.c++: Adapt expansion of $s and @s to the C++ parser.
   17922 	Update the stack class, give a try to deque as the default container.
   17923 
   17924 2002-05-02  Akim Demaille  <akim (a] epita.fr>
   17925 
   17926 	* data/bison.simple (yyparse): Do not implement @$ = @1.
   17927 	(YYLLOC_DEFAULT): Adjust to do it.
   17928 	* doc/bison.texinfo (Location Default Action): Fix.
   17929 
   17930 2002-05-02  Akim Demaille  <akim (a] epita.fr>
   17931 
   17932 	* src/reader.c (parse_braces): Merge into...
   17933 	(parse_action): this.
   17934 
   17935 2002-05-02  Akim Demaille  <akim (a] epita.fr>
   17936 
   17937 	* configure.in (ALL_LINGUAS): Remove.
   17938 	* po/LINGUAS, hr.po: New.
   17939 
   17940 2002-05-02  Akim Demaille  <akim (a] epita.fr>
   17941 
   17942 	Remove the so called hairy (semantic) parsers.
   17943 
   17944 	* src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove.
   17945 	* src/gram.h, src/gram.c (semantic_parser): Remove.
   17946 	(rule_t): Remove the guard and guard_line members.
   17947 	* src/lex.h (token_t): remove tok_guard.
   17948 	* src/options.c (option_table): Remove %guard and %semantic_parser
   17949 	support.
   17950 	* src/output.c, src/output.h (guards_output): Remove.
   17951 	(prepare): Adjust.
   17952 	(token_definitions_output): Don't output the `T'
   17953 	tokens (???).
   17954 	(output_skeleton): Don't output the guards.
   17955 	* src/files.c, src/files.c (attrsfile): Remove.
   17956 	* src/reader.c (symbol_list): Remove the guard and guard_line
   17957 	members.
   17958 	Adjust dependencies.
   17959 	(parse_guard): Remove.
   17960 	* data/bison.hairy: Remove.
   17961 	* doc/bison.texinfo (Environment Variables): Remove occurrences of
   17962 	BISON_HAIRY.
   17963 
   17964 2002-05-02  Akim Demaille  <akim (a] epita.fr>
   17965 
   17966 	* src/reader.c (copy_at, copy_dollarm parse_braces, parse_action)
   17967 	(parse_guard): Rename the formal argument `stack_offset' as
   17968 	`rule_length', which is more readable.
   17969 	Adjust callers.
   17970 	(copy_at, copy_dollar): Instead of outputting the hard coded
   17971 	values of $$, $n and so forth, output invocation to b4_lhs_value,
   17972 	b4_lhs_location, b4_rhs_value, and b4_rhs_location.
   17973 	Note: this patch partially drops `semantic-parser' support: it
   17974 	always does `rule_length - n', where semantic parsers ought to
   17975 	always use `-n'.
   17976 	* data/bison.simple, data/bison.c++ (b4_lhs_value)
   17977 	(b4_lhs_location, b4_rhs_value, and b4_rhs_location: New.
   17978 
   17979 2002-05-02  Akim Demaille  <akim (a] epita.fr>
   17980 
   17981 	* configure.in (AC_INIT): Bump to 1.49b.
   17982 	(AM_INIT_AUTOMAKE): Short invocation.
   17983 
   17984 2002-05-02  Akim Demaille  <akim (a] epita.fr>
   17985 
   17986 	Version 1.49a.
   17987 
   17988 2002-05-01  Akim Demaille  <akim (a] epita.fr>
   17989 
   17990 	* src/skeleton.h: Remove.
   17991 
   17992 2002-05-01  Akim Demaille  <akim (a] epita.fr>
   17993 
   17994 	* src/skeleton.h: Fix the #endif.
   17995 	Reported by Magnus Fromreide.
   17996 
   17997 2002-04-26  Paul Eggert  <eggert (a] twinsun.com>
   17998 
   17999 	* data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL):
   18000 	Define if we define YYSTYPE and YYLTYPE, respectively.
   18001 	(YYCOPY): Fix [] quoting problem in the non-GCC case.
   18002 
   18003 2002-04-25  Robert Anisko  <robert (a] lrde.epita.fr>
   18004 
   18005 	* src/scan-skel.l: Postprocess quadrigraphs.
   18006 
   18007 	* src/reader.c (copy_character): New function, used to output
   18008 	single characters while replacing `[' and `]' with quadrigraphs, to
   18009 	avoid troubles with M4 quotes.
   18010 	(copy_comment): Output characters with copy_character.
   18011 	(read_additionnal_code): Likewise.
   18012 	(copy_string2): Likewise.
   18013 	(copy_definition): Likewise.
   18014 
   18015 	* tests/calc.at: Exercise M4 quoting.
   18016 
   18017 2002-04-25  Akim Demaille  <akim (a] epita.fr>
   18018 
   18019 	* tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space
   18020 	between `!' and the command.
   18021 	Reported by Paul Eggert.
   18022 
   18023 2002-04-24  Robert Anisko  <robert (a] lrde.epita.fr>
   18024 
   18025 	* tests/calc.at: Exercise prologue splitting.
   18026 
   18027 	* data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and
   18028 	`b4_post_prologue' instead of `b4_prologue'.
   18029 
   18030 	* src/output.c (prepare): Add the `pre_prologue' and `post_prologue'
   18031 	muscles.
   18032 	(output): Free pre_prologue_obstack and post_prologue_obstack.
   18033 	* src/files.h, src/files.c (attrs_obstack): Remove.
   18034 	(pre_prologue_obstack, post_prologue_obstack): New.
   18035 	* src/reader.c (copy_definition): Add a parameter to specify the
   18036 	obstack to fill, instead of using attrs_obstack unconditionally.
   18037 	(read_declarations): Pass pre_prologue_obstack to copy_definition if
   18038 	`%union' has not yet been seen, pass post_prologue_obstack otherwise.
   18039 
   18040 2002-04-23  Paul Eggert  <eggert (a] twinsun.com>
   18041 
   18042 	* data/bison.simple: Remove unnecessary commentary and white
   18043 	space differences from 1_29-branch.
   18044 	Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE).
   18045 
   18046 	(union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY,
   18047 	YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or
   18048 	if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial
   18049 	constructors or destructors.
   18050 
   18051 	(yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
   18052 
   18053 2002-04-23  Akim Demaille  <akim (a] epita.fr>
   18054 
   18055 	* tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels.
   18056 	* tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's
   18057 	location with columns.
   18058 	* tests/conflicts.at (%nonassoc and eof): Don't use `error.h'.
   18059 	All reported by Paul Eggert.
   18060 
   18061 2002-04-22  Akim Demaille  <akim (a] epita.fr>
   18062 
   18063 	* src/reduce.c (dump_grammar): Move to...
   18064 	* src/gram.h, src/gram.c (grammar_dump): here.
   18065 	Be sure to separate long item numbers.
   18066 	Don't read the members of a rule's prec if its nil.
   18067 
   18068 2002-04-22  Akim Demaille  <akim (a] epita.fr>
   18069 
   18070 	* src/output.c (table_size, table_grow): New.
   18071 	(MAXTABLE): Remove, replace uses with table_size.
   18072 	(pack_vector): Instead of dying when the table is too big, grow it.
   18073 
   18074 2002-04-22  Akim Demaille  <akim (a] epita.fr>
   18075 
   18076 	* data/bison.simple (yyr1): Its type is that of a token number.
   18077 	* data/bison.c++ (r1_): Likewise.
   18078 	* tests/regression.at (Web2c Actions): Adjust.
   18079 
   18080 2002-04-22  Akim Demaille  <akim (a] epita.fr>
   18081 
   18082 	* src/reader.c (token_translations_init): 256 is now the default
   18083 	value for the error token, i.e., it will be assigned another
   18084 	number if the user assigned 256 to one of her tokens.
   18085 	(reader): Don't force 256 to error.
   18086 	* doc/bison.texinfo (Symbols): Adjust.
   18087 	* tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR)
   18088 	(AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3
   18089 	etc. instead of 10, 20, 30 (which was used to `jump' over error
   18090 	(256) and undefined (2)).
   18091 
   18092 2002-04-22  Akim Demaille  <akim (a] epita.fr>
   18093 
   18094 	Propagate more token_number_t.
   18095 
   18096 	* src/gram.h (token_number_as_item_number)
   18097 	(item_number_as_token_number): New.
   18098 	* src/output.c (GENERATE_OUTPUT_TABLE): New.
   18099 	Use it to create output_item_number_table and
   18100 	output_token_number_table.
   18101 	* src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c,
   18102 	* src/lex.c, src/nullable.c, src/output.c, src/print.c,
   18103 	* src/print_graph.c, src/reader.c, src/reduce.c, src/state.h,
   18104 	* src/symtab.c, src/symtab.h: Use token_number_t instead of shorts.
   18105 
   18106 2002-04-22  Akim Demaille  <akim (a] epita.fr>
   18107 
   18108 	* src/output.h, src/output.c (get_lines_number): Remove.
   18109 
   18110 2002-04-19  Akim Demaille  <akim (a] epita.fr>
   18111 
   18112 	* doc/bison.texinfo (Actions): Make clear that `|' is not the same
   18113 	as Lex/Flex'.
   18114 	(Debugging): More details about enabling the debugging features.
   18115 	(Table of Symbols): Describe $$, $n, @$, and @n.
   18116 	Suggested by Tim Josling.
   18117 
   18118 2002-04-19  Akim Demaille  <akim (a] epita.fr>
   18119 
   18120 	* doc/bison.texinfo: Remove the uses of the obsolete @refill.
   18121 
   18122 2002-04-10  Akim Demaille  <akim (a] epita.fr>
   18123 
   18124 	* src/system.h: Rely on HAVE_LIMITS_H.
   18125 	Suggested by Paul Eggert.
   18126 
   18127 2002-04-09  Akim Demaille  <akim (a] epita.fr>
   18128 
   18129 	* tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the
   18130 	full stderr, and strip it according to the bison options, instead
   18131 	of composing the error message from different bits.
   18132 	This makes it easier to check for several error messages.
   18133 	Adjust all the invocations.
   18134 	Add an invocation exercising the error token.
   18135 	Add an invocation demonstrating a stupid error message.
   18136 	(_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0.
   18137 	Adjust the tests.
   18138 	Error message are for stderr, not stdout.
   18139 
   18140 2002-04-09  Akim Demaille  <akim (a] epita.fr>
   18141 
   18142 	* src/gram.h, src/gram.c (error_token_number): Remove, use
   18143 	errtoken->number.
   18144 	* src/reader.c (reader): Don't specify the user token number (2)
   18145 	for $undefined, as it uselessly prevents using it.
   18146 	* src/gram.h (token_number_t): Move to...
   18147 	* src/symtab.h: here.
   18148 	(state_t.number): Is a token_number_t.
   18149 	* src/print.c, src/reader.c: Use undeftoken->number instead of
   18150 	hard coded 2.
   18151 	(Even though this 2 is not the same as above: the number of the
   18152 	undeftoken remains being 2, it is its user token number which
   18153 	might not be 2).
   18154 	* src/output.c (prepare_tokens): Rename the `maxtok' muscle with
   18155 	`user_token_number_max'.
   18156 	Output `undef_token_number'.
   18157 	* data/bison.simple, data/bison.c++: Use them.
   18158 	Be sure to map invalid yylex return values to
   18159 	`undef_token_number'.  This saves us from gratuitous SEGV.
   18160 
   18161 	* tests/conflicts.at (Solved SR Conflicts)
   18162 	(Unresolved SR Conflicts): Adjust.
   18163 	* tests/regression.at (Web2c Actions): Adjust.
   18164 
   18165 2002-04-08  Akim Demaille  <akim (a] epita.fr>
   18166 
   18167 	* data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/.
   18168 	Adding #line.
   18169 	Remove the duplicate `typedefs'.
   18170 	(RhsNumberType): Fix the declaration and various other typos.
   18171 	Use __ofile__.
   18172 	* data/bison.simple: Use __ofile__.
   18173 	* src/scan-skel.l: Handle __ofile__.
   18174 
   18175 2002-04-08  Akim Demaille  <akim (a] epita.fr>
   18176 
   18177 	* src/gram.h (item_number_t): New, the type of item numbers in
   18178 	RITEM.  Note that it must be able to code symbol numbers as
   18179 	positive number, and the negation of rule numbers as negative
   18180 	numbers.
   18181 	Adjust all dependencies (pretty many).
   18182 	* src/reduce.c (rule): Remove this `short *' pointer: use
   18183 	item_number_t.
   18184 	* src/system.h (MINSHORT, MAXSHORT): Remove.
   18185 	Include `limits.h'.
   18186 	Adjust dependencies to using SHRT_MAX and SHRT_MIN.
   18187 	(shortcpy): Remove.
   18188 	(MAXTABLE): Move to...
   18189 	* src/output.c (MAXTABLE): here.
   18190 	(prepare_rules): Use output_int_table to output rhs.
   18191 	* data/bison.simple, data/bison.c++: Adjust.
   18192 	* tests/torture.at (Big triangle): Move the limit from 254 to
   18193 	500.
   18194 	* tests/regression.at (Web2c Actions): Ajust.
   18195 
   18196 	Trying with bigger grammars shows various phenomena: at 3000 (28Mb
   18197 	of grammar file) bison is killed by my system, at 2000 (12Mb) bison
   18198 	passes, but produces negative #line number, once fixed, GCC is
   18199 	killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of
   18200 	C), it passes.
   18201 	* src/state.h (state_h): Code input lines on ints, not shorts.
   18202 
   18203 2002-04-08  Akim Demaille  <akim (a] epita.fr>
   18204 
   18205 	* src/reduce.c (reduce_grammar): First reduce the nonterminals,
   18206 	and then the grammar.
   18207 
   18208 2002-04-08  Akim Demaille  <akim (a] epita.fr>
   18209 
   18210 	* src/system.h: No longer using strndup.
   18211 
   18212 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18213 
   18214 	* src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New.
   18215 	* src/output.c (output_table_data): Return the longest number.
   18216 	(prepare_tokens): Output `token_number_max').
   18217 	* data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type):
   18218 	New.
   18219 	Use them to define yy_token_number_type/TokenNumberType.
   18220 	Use this type for yytranslate.
   18221 	* tests/torture.at (Big triangle): Push the limit from 124 to
   18222 	253.
   18223 	* tests/regression.at (Web2c Actions): Adjust.
   18224 
   18225 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18226 
   18227 	* tests/torture.at (Big triangle): New.
   18228 	(GNU AWK Grammar, GNU Cim Grammar): Move to...
   18229 	* tests/existing.at: here.
   18230 
   18231 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18232 
   18233 	* src/gram.h, src/gram.c (nitems): Remove, it is an alias of
   18234 	nritems.
   18235 	Adjust dependencies.
   18236 
   18237 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18238 
   18239 	* src/reader.c: Normalize increments to prefix form.
   18240 
   18241 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18242 
   18243 	* src/reader.c, symtab.c: Remove debugging code.
   18244 
   18245 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18246 
   18247 	Rename all the `bucket's as `symbol_t'.
   18248 
   18249 	* src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c,
   18250 	* src/reader.c, src/reader.h, src/reduce.c, src/state.h,
   18251 	* src/symtab.c, src/symtab.h (bucket): Rename as...
   18252 	(symbol_t): this.
   18253 	(symbol_list_new, bucket_check_defined, bucket_make_alias)
   18254 	(bucket_check_alias_consistence, bucket_pack, bucket_translation)
   18255 	(bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
   18256 	(buckets_new, buckets_free, buckets_do): Rename as...
   18257 	(symbol_list_new, symbol_check_defined, symbol_make_alias)
   18258 	(symbol_check_alias_consistence, symbol_pack, symbol_translation)
   18259 	(symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t)
   18260 	(symbols_new, symbols_free, symbols_do): these.
   18261 
   18262 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18263 
   18264 	Use lib/hash for the symbol table.
   18265 
   18266 	* src/gram.c (ntokens): Initialize to 1, to reserve a slot for
   18267 	EOF.
   18268 	* src/lex.c (lex): Set the `number' member of new terminals.
   18269 	* src/reader.c (bucket_check_defined, bucket_make_alias)
   18270 	(bucket_check_alias_consistence, bucket_translation): New.
   18271 	(reader, grammar_free, readgram, token_translations_init)
   18272 	(packsymbols): Adjust.
   18273 	(reader): Number the predefined tokens.
   18274 	* src/reduce.c (inaccessable_symbols): Just use hard coded numbers
   18275 	for predefined tokens.
   18276 	* src/symtab.h (bucket): Remove all the hash table related
   18277 	members.
   18278 	* src/symtab.c (symtab): Replace by...
   18279 	(bucket_table): this.
   18280 	(bucket_new, bucket_free, hash_compare_bucket, hash_bucket)
   18281 	(buckets_new, buckets_do): New.
   18282 
   18283 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18284 
   18285 	* src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems)
   18286 	(start_symbol, max_user_token_number, semantic_parser)
   18287 	(error_token_number): Initialize.
   18288 	* src/reader.c (grammar, start_flag, startval, typed, lastprec):
   18289 	Initialize.
   18290 	(reader): Don't.
   18291 	(errtoken, eoftoken, undeftoken, axiom): Extern.
   18292 
   18293 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18294 
   18295 	* src/gram.h (rule_s): prec and precsym are now pointers
   18296 	to the bucket giving the priority/associativity.
   18297 	Member `associativity' removed: useless.
   18298 	* src/reduce.c, src/conflicts.c: Adjust.
   18299 
   18300 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18301 
   18302 	* src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c:
   18303 	Properly escape the symbols' TAG when outputting them.
   18304 
   18305 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18306 
   18307 	* src/lalr.h (LA): Is a bitsetv, not bitset*.
   18308 
   18309 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18310 
   18311 	* src/lalr.h, src/lalr.c (LAruleno): Replace with...
   18312 	(LArule): this, which is an array to rule_t*.
   18313 	* src/print.c, src/conflicts.c: Adjust.
   18314 
   18315 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18316 
   18317 	* src/gram.h (rule_t): Rename `number' as `user_number'.
   18318 	`number' is a new member.
   18319 	Adjust dependencies.
   18320 	* src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
   18321 
   18322 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18323 
   18324 	As a result of the previous patch, it is no longer needed
   18325 	to reorder ritem itself.
   18326 
   18327 	* src/reduce.c (reduce_grammar_tables): Don't sort RITEM.
   18328 
   18329 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18330 
   18331 	Be sure never to walk through RITEMS, but use only data related to
   18332 	the rules themselves. RITEMS should be banished.
   18333 
   18334 	* src/output.c (output_token_translations): Rename as...
   18335 	(prepare_tokens): this.
   18336 	In addition to `translate', prepare the muscles `tname' and
   18337 	`toknum', which were handled by...
   18338 	(output_rule_data): this.
   18339 	Remove, and move the remainder of its outputs into...
   18340 	(prepare_rules): this new routines, which also merges content from
   18341 	(output_gram): this.
   18342 	(prepare_rules): Be sure never to walk through RITEMS.
   18343 	(output_stos): Rename as...
   18344 	(prepare_stos): this.
   18345 	(output): Always invoke prepare_states, after all, just don't use it
   18346 	in the output if you don't need it.
   18347 
   18348 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18349 
   18350 	* src/LR0.c (new_state): Display `nstates' as the name of the
   18351 	newly created state.
   18352 	Adjust to initialize first_state and last_state if needed.
   18353 	Be sure to distinguish the initial from the final state.
   18354 	(new_states): Create the itemset of the initial state, and use
   18355 	new_state.
   18356 	* src/closure.c (closure): Now that the initial state has its
   18357 	items properly set, there is no need for a special case when
   18358 	creating `ruleset'.
   18359 
   18360 	As a result, now the rule 0, reducing to $axiom, is visible in the
   18361 	outputs.  Adjust the test suite.
   18362 
   18363 	* tests/conflicts.at (Solved SR Conflicts)
   18364 	(Unresolved SR Conflicts): Adjust.
   18365 	* tests/regression.at (Web2c Report, Rule Line Numbers): Idem.
   18366 	* tests/conflicts.at (S/R in initial): New.
   18367 
   18368 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18369 
   18370 	* src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over
   18371 	the RHS of the rules.
   18372 	* src/output.c (output_gram): Likewise.
   18373 
   18374 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18375 
   18376 	* src/gram.h (rule_t): `lhs' is now a pointer to the symbol's
   18377 	bucket.
   18378 	Adjust all dependencies.
   18379 	* src/reduce.c (nonterminals_reduce): Don't forget to renumber the
   18380 	`number' of the buckets too.
   18381 	* src/gram.h: Include `symtab.h'.
   18382 	(associativity): Move to...
   18383 	* src/symtab.h: here.
   18384 	No longer include `gram.h'.
   18385 
   18386 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18387 
   18388 	* src/gram.h, src/gram.c (rules_rhs_length): New.
   18389 	(ritem_longest_rhs): Use it.
   18390 	* src/gram.h (rule_t): `number' is a new member.
   18391 	* src/reader.c (packgram): Set it.
   18392 	* src/reduce.c (reduce_grammar_tables): Move the useless rules at
   18393 	the end of `rules', and count them out of `nrules'.
   18394 	(reduce_output, dump_grammar): Adjust.
   18395 	* src/print.c (print_grammar): It is no longer needed to check for
   18396 	the usefulness of a rule, as useless rules are beyond `nrules + 1'.
   18397 	* tests/reduce.at (Reduced Automaton): New test.
   18398 
   18399 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18400 
   18401 	* src/reduce.c (inaccessable_symbols): Fix a buglet: because of a
   18402 	lacking `+ 1' to nrules, Bison reported as useless a token if it
   18403 	was used solely to set the precedence of the last rule...
   18404 
   18405 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18406 
   18407 	* data/bison.c++, data/bison.simple: Don't output the current file
   18408 	name in #line, to avoid useless diffs between two identical
   18409 	outputs under different names.
   18410 
   18411 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18412 
   18413 	* src/closure.c, src/print.c, src/reader.c, src/reduce.c:
   18414 	Normalize loops to using `< nrules + 1', not `<= nrules'.
   18415 
   18416 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18417 
   18418 	* TODO: Update.
   18419 
   18420 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18421 
   18422 	* src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename
   18423 	bucket.value as bucket.number.
   18424 
   18425 2002-04-07  Akim Demaille  <akim (a] epita.fr>
   18426 
   18427 	* src/closure.c, src/derives.c, src/gram.h, src/lalr.c,
   18428 	* src/nullable.c, src/output.c, src/print.c, src/print_graph.c,
   18429 	* src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the
   18430 	RHS, instead of being an index in RITEMS.
   18431 
   18432 2002-04-04  Paul Eggert  <eggert (a] twinsun.com>
   18433 
   18434 	* doc/bison.texinfo: Update copyright date.
   18435 	(Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII.
   18436 	(Symbols): Warn about running Bison in one character set,
   18437 	but compiling and/or running in an incompatible one.
   18438 	Warn about character code 256, too.
   18439 
   18440 2002-04-03  Paul Eggert  <eggert (a] twinsun.com>
   18441 
   18442 	* src/bison.data (YYSTACK_ALLOC): Depend on whether
   18443 	YYERROR_VERBOSE is nonzero, not whether it is defined.
   18444 
   18445 	Merge changes from bison-1_29-branch.
   18446 
   18447 2002-03-20  Paul Eggert  <eggert (a] twinsun.com>
   18448 
   18449 	Merge fixes from Debian bison_1.34-1.diff.
   18450 
   18451 	* configure.in (AC_PREREQ): 2.53.
   18452 
   18453 2002-03-20  Akim Demaille  <akim (a] epita.fr>
   18454 
   18455 	* src/conflicts.c (log_resolution): Argument `resolution' is const.
   18456 
   18457 2002-03-19  Paul Eggert  <eggert (a] twinsun.com>
   18458 
   18459 	* src/bison.simple (YYCOPY): New macro.
   18460 	(YYSTACK_RELOCATE): Use it.
   18461 	Remove Type arg; no longer needed.  All callers changed.
   18462 	(yymemcpy): Remove; no longer needed.
   18463 
   18464 	* Makefile.am (AUTOMAKE_OPTIONS): 1.6.
   18465 	* doc/Makefile.am (AUTOMAKE_OPTIONS): Remove.
   18466 
   18467 2002-03-19  Akim Demaille  <akim (a] epita.fr>
   18468 
   18469 	Test and fix the #line outputs.
   18470 
   18471 	* tests/atlocal.at (GCC): New.
   18472 	* tests/synclines.at (AT_TEST_SYNCLINE): New macro.
   18473 	(Prologue synch line, %union synch line, Postprologue synch line)
   18474 	(Action synch line, Epilogue synch line): New tests.
   18475 	* src/reader.c (parse_union_decl): Define the muscle stype_line.
   18476 	* data/bison.simple, data/bison.c++: Use it.
   18477 
   18478 2002-03-19  Akim Demaille  <akim (a] epita.fr>
   18479 
   18480 	* tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts)
   18481 	(Solved SR Conflicts, %expect not enough, %expect right)
   18482 	(%expect too much): Move to...
   18483 	* tests/conflicts.at: this new file.
   18484 
   18485 2002-03-19  Akim Demaille  <akim (a] epita.fr>
   18486 
   18487 	* data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
   18488 	* data/bison.simple, data/bison.c++: Handle the `#define' part, so
   18489 	that we can move to enums for instance.
   18490 	* src/output.c (token_definitions_output): Output a list of
   18491 	`token-name, token-number' instead of the #define.
   18492 	(output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'.
   18493 
   18494 2002-03-14  Akim Demaille  <akim (a] epita.fr>
   18495 
   18496 	Use Gettext 0.11.1.
   18497 
   18498 2002-03-09  Robert Anisko  <robert (a] lrde.epita.fr>
   18499 
   18500 	* data/bison.c++: Make the user able to add members to the generated
   18501 	parser by subclassing.
   18502 
   18503 2002-03-05  Robert Anisko  <robert (a] lrde.epita.fr>
   18504 
   18505 	* src/reader.c (read_additionnal_code): `c' should be an integer, not
   18506 	a character.
   18507 	Reported by Nicolas Tisserand and Nicolas Burrus.
   18508 
   18509 2002-03-04  Robert Anisko  <robert (a] lrde.epita.fr>
   18510 
   18511 	* src/reader.c: Warn about lacking semi-colons, do not complain.
   18512 
   18513 2002-03-04  Robert Anisko  <robert (a] lrde.epita.fr>
   18514 
   18515 	* data/bison.c++: Remove a debug line.
   18516 
   18517 2002-03-04  Robert Anisko  <robert (a] lrde.epita.fr>
   18518 
   18519 	* data/bison.c++: Unmerge value as yylval and value as yyval.  Unmerge
   18520 	location as yylloc and location as yyloc.  Use YYLLOC_DEFAULT, and
   18521 	provide a default implementation.
   18522 
   18523 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18524 
   18525 	* tests/input.at (Invalid $n, Invalid @n): Add the ending `;'.
   18526 	* tests/output.at (AT_CHECK_OUTPUT): Likewise.
   18527 	* tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto.
   18528 	* tests/semantic.at (Parsing Guards): Similarly.
   18529 	* src/reader.at (readgram): Complain if the last rule is not ended
   18530 	with a semi-colon.
   18531 
   18532 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18533 
   18534 	* src/warshall.h, src/warshall.c (bitmatrix_print): Move to...
   18535 	* src/closure.c: here.
   18536 	(set_firsts): Use bitsetv_reflexive_transitive_closure instead of
   18537 	RTC.
   18538 	* src/warshall.h, src/warshall.c: Remove.
   18539 	* tests/sets.at (Broken Closure): Adjust.
   18540 
   18541 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18542 
   18543 	* src/output.c (output_skeleton): tempdir is const.
   18544 	bytes_read is unused.
   18545 
   18546 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18547 
   18548 	* lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
   18549 	* lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c:
   18550 	Update.
   18551 	From Michael Hayes.
   18552 
   18553 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18554 
   18555 	* src/closure.c (closure): `r' is unused.
   18556 
   18557 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18558 
   18559 	* tests/sets.at (Broken Closure): Add the ending `;'.
   18560 	* src/reader.at (readgram): Complain if a rule is not ended with a
   18561 	semi-colon.
   18562 
   18563 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18564 
   18565 	* src/conflicts.c (set_conflicts): Use bitset_disjoint_p.
   18566 	(count_sr_conflicts): Use bitset_count.
   18567 	* src/reduce.c (inaccessable_symbols): Ditto.
   18568 	(bits_size): Remove.
   18569 	* src/warshall.h, src/warshall.c: Convert to bitsetv.
   18570 
   18571 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18572 
   18573 	* src/closure.c, src/conflicts.c, src/lalr.c, src/print.c,
   18574 	* src/reduce.c: Remove the `bitset_zero's following the
   18575 	`bitset_create's, as now it is performed by the latter.
   18576 
   18577 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18578 
   18579 	* lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h,
   18580 	* lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h,
   18581 	* lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the
   18582 	latest sources from Michael.
   18583 
   18584 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18585 
   18586 	* src/output.c (output): Don't free the grammar.
   18587 	* src/reader.c (grammar_free): New.
   18588 	* src/main.c (main): Call it and don't free symtab here.
   18589 
   18590 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18591 
   18592 	* src/lex.c (parse_percent_token): Be sure to 0-end token_buffer
   18593 	before returning.
   18594 	Reported by Benoit Perrot.
   18595 
   18596 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18597 
   18598 	Use bitset operations when possible, not loops over bits.
   18599 
   18600 	* src/conflicts.c (set_conflicts, count_sr_conflicts): Use
   18601 	bitset_or.
   18602 	* src/print.c (print_reductions): Use bitset_and, bitset_andn.
   18603 	* src/reduce.c (useless_nonterminals): Formatting changes.
   18604 	* src/warshall.c (TC): Use bitset_or.
   18605 
   18606 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18607 
   18608 	* src/lalr.h, src/lalr.c (tokensetsize): Remove, unused.
   18609 	* src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET):
   18610 	Ditto.
   18611 
   18612 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18613 
   18614 	* src/lalr.c (F): Now a bitset*.
   18615 	Adjust all dependencies.
   18616 
   18617 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18618 
   18619 	* src/conflicts.c (shiftset, lookaheadset): Now bitset.
   18620 	Adjust all dependencies.
   18621 
   18622 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18623 
   18624 	* src/L0.c, src/LR0.h (nstates): Be size_t.
   18625 	Adjust comparisons (signed vs unsigned).
   18626 	* src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a
   18627 	bitset*.
   18628 	Adjust all dependencies.
   18629 
   18630 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18631 
   18632 	* src/closure.c (firsts): Now, also a bitset.
   18633 	Adjust all dependencies.
   18634 	(varsetsize): Remove, now unused.
   18635 	* src/warshall.h, src/warshall.c: Now work on arrays of bitsets.
   18636 
   18637 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18638 
   18639 	* src/print.c: Convert to use bitset.h, not hand coded iterations
   18640 	over ints.
   18641 
   18642 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18643 
   18644 	* src/reduce.c: Convert to use bitset.h, not hand coded BSet.
   18645 
   18646 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18647 
   18648 	* src/closure.c (ruleset): Be a bitset.
   18649 	(rulesetsize): Remove.
   18650 
   18651 2002-03-04  Akim Demaille  <akim (a] epita.fr>
   18652 
   18653 	* lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c,
   18654 	* lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c,
   18655 	* lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New.
   18656 	* src/closure.c (fderives): Be an array of bitsets.
   18657 
   18658 2002-02-28  Robert Anisko  <robert (a] lrde.epita.fr>
   18659 
   18660 	* data/bison.c++: Merge the two generated headers.  Insert a copyright
   18661 	notice in each output file.
   18662 
   18663 2002-02-28  Akim Demaille  <akim (a] epita.fr>
   18664 
   18665 	* data/bison.c++: Copy the prologue of bison.simple to fetch
   18666 	useful M4 definitions, such as b4_header_guard.
   18667 
   18668 2002-02-25  Akim Demaille  <akim (a] epita.fr>
   18669 
   18670 	* src/getargs.c (version): Give the name of the authors, and use a
   18671 	translator friendly scheme for the bgr
   18672 	copyright notice.
   18673 
   18674 2002-02-25  Akim Demaille  <akim (a] epita.fr>
   18675 
   18676 	* src/output.c (header_output): Remove, now handled completely via
   18677 	M4.
   18678 
   18679 2002-02-25  Akim Demaille  <akim (a] epita.fr>
   18680 
   18681 	* m4/m4.m4: New, from CVS Autoconf.
   18682 	* configure.in: Invoke it.
   18683 	* src/output.c (output_skeleton): Use its result instead of the
   18684 	hard coded name.
   18685 
   18686 2002-02-25  Akim Demaille  <akim (a] epita.fr>
   18687 
   18688 	* lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from
   18689 	Fileutils 4.1.5.
   18690 	* configure.in: Invoke UTILS_FUNC_MKSTEMP.
   18691 	* src/output.c (output_skeleton): Use mkstemp to create a real
   18692 	temporary file.
   18693 	Move the filling of `skeleton' and its muscle to...
   18694 	(prepare): here.
   18695 	(output): Move the definition of the prologue muscle to...
   18696 	(prepare): here.
   18697 	* src/system.h (DEFAULT_TMPDIR): New.
   18698 
   18699 2002-02-14  Paul Eggert  <eggert (a] twinsun.com>
   18700 
   18701 	Remove the support for C++ namespace cleanliness; it was
   18702 	causing more problems than it was curing, since it didn't work
   18703 	properly on some nonstandard C++ compilers.  This can wait
   18704 	for a proper C++ parser.
   18705 
   18706 	* NEWS: Document this.
   18707 	* doc/bison.texinfo (Bison Parser, Debugging): Remove special mention
   18708 	of C++, as it's treated like C now.
   18709 	* src/bison.simple (YYSTD): Remove.
   18710 	(YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL):
   18711 	Treat C++ just like Standard C instead of trying to support
   18712 	namespace cleanliness.
   18713 
   18714 2002-02-14  Akim Demaille  <akim (a] epita.fr>
   18715 
   18716 	* tests/regression.at (else): Adjust to Andreas' change.
   18717 
   18718 2002-02-14  Akim Demaille  <akim (a] epita.fr>
   18719 
   18720 	* lib/Makefile.am (EXTRA_DIST): Ship strnlen.c.
   18721 
   18722 2002-02-13  Andreas Schwab  <schwab (a] suse.de>
   18723 
   18724 	* src/output.c (output_rule_data): Don't output NULL, it might
   18725 	not be defined yet.
   18726 
   18727 2002-02-11  Robert Anisko  <robert (a] lrde.epita.fr>
   18728 
   18729 	* data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue.
   18730 	(Copyright notice): Update.
   18731 
   18732 2002-02-11  Akim Demaille  <akim (a] epita.fr>
   18733 
   18734 	* tests/regression.at (%nonassoc and eof): Don't include
   18735 	nonportable headers.
   18736 
   18737 2002-02-08  Robert Anisko  <robert (a] lrde.epita.fr>
   18738 
   18739 	* data/bison.c++: Correct error recovery.  Make the user able to
   18740 	initialize the starting location.
   18741 
   18742 2002-02-07  Akim Demaille  <akim (a] epita.fr>
   18743 
   18744 	* tests/input.at: New.
   18745 
   18746 2002-02-07  Robert Anisko  <robert (a] lrde.epita.fr>
   18747 
   18748 	* data/bison.c++: Replace some direct m4 expansions by constants.  Be
   18749 	more consistent when naming methods and variables.  Put preprocessor
   18750 	directives around tables only needed for debugging.
   18751 
   18752 2002-02-07  Robert Anisko  <robert (a] lrde.epita.fr>
   18753 
   18754 	* data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in
   18755 	C++ parsers.
   18756 	(yy::b4_name::parse): Use print_.
   18757 
   18758 2002-02-07  Robert Anisko  <robert (a] lrde.epita.fr>
   18759 
   18760 	* data/bison.c++ (yy::b4_name::parse): Error recovery is back.
   18761 
   18762 2002-02-07  Robert Anisko  <robert (a] lrde.epita.fr>
   18763 
   18764 	* data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in
   18765 	C++ parsers.
   18766 	(yy::b4_name::parse): Build verbose error messages, and use error_.
   18767 
   18768 2002-02-06  Robert Anisko  <robert (a] lrde.epita.fr>
   18769 
   18770 	* data/bison.c++: Fix m4 quoting in comments.
   18771 
   18772 2002-02-06  Robert Anisko  <robert (a] lrde.epita.fr>
   18773 
   18774 	* data/bison.c++: Adjust the parser code.  Fix some muscles that were
   18775 	not expanded by m4.
   18776 
   18777 2002-02-05  Akim Demaille  <akim (a] epita.fr>
   18778 
   18779 	* data/bison.c++: Adjust to the M4 back end.
   18780 	More is certainly needed.
   18781 
   18782 2002-02-05  Akim Demaille  <akim (a] epita.fr>
   18783 
   18784 	Give a try to M4 as a back end.
   18785 
   18786 	* lib/readpipe.c: New, from wdiff.
   18787 	* src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and
   18788 	BISON_HAIRY.
   18789 	* src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS
   18790 	specific values.  Now it is m4 that performs the lookup.
   18791 	* src/parse-skel.y: Remove.
   18792 	* src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New.
   18793 	* src/output.c (actions_output, guards_output)
   18794 	(token_definitions_output): No longer keeps track of the output
   18795 	line number, hence remove the second argument.
   18796 	(guards_output): Check against the guard member of a rule, not the
   18797 	action member.
   18798 	Adjust callers.
   18799 	(output_skeleton): Don't look for the skeleton location, let m4 do
   18800 	that.
   18801 	Create `/tmp/muscles.m4'.  This is temporary, a proper temporary
   18802 	file will be used.
   18803 	Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton.
   18804 	(prepare): Given that for the time being changesyntax is not
   18805 	usable in M4, rename the muscles using `-' to `_'.
   18806 	Define `defines_flag', `output_parser_name' and `output_header_name'.
   18807 	* src/output.h (actions_output, guards_output)
   18808 	(token_definitions_output): Adjust prototypes.
   18809 	* src/scan-skel.l: Instead of scanning the skeletons, it now
   18810 	processes the output of m4: `__oline__' and `#output'.
   18811 	* data/bison.simple: Adjust to be used by M4(sugar).
   18812 	* tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up
   18813 	to date.
   18814 	* tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR'
   18815 	instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'.
   18816 	* data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New,
   18817 	shamelessly stolen from CVS Autoconf.
   18818 
   18819 2002-02-05  Akim Demaille  <akim (a] epita.fr>
   18820 
   18821 	* lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version.
   18822 	* configure.in: Check for the declarations of free and malloc.
   18823 	* src/muscle_tab.c: Adjust.
   18824 
   18825 2002-02-05  Akim Demaille  <akim (a] epita.fr>
   18826 
   18827 	* src/muscle_tab.c (muscle_init): Don't default to NULL muscle
   18828 	which have no values.
   18829 
   18830 2002-02-05  Akim Demaille  <akim (a] epita.fr>
   18831 
   18832 	* src/bison.simple, src/bison.hairy, src/bison.c++: Move to...
   18833 	* data/: here.
   18834 
   18835 2002-01-29  Paul Eggert  <eggert (a] twinsun.com>
   18836 
   18837 	* src/bison.simple (YYSIZE_T): Do not define merely because
   18838 	YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined.
   18839 	On some platforms, <alloca.h> does not declare YYSTD (size_t).
   18840 
   18841 2002-01-27  Akim Demaille  <akim (a] epita.fr>
   18842 
   18843 	Fix `%nonassoc and eof'.
   18844 
   18845 	* src/state.c (errs_dup): Aaaah!  The failure was due to bytes
   18846 	which were not properly copied!  Replace
   18847 	memcpy (res->errs, src->errs, src->nerrs);
   18848 	with
   18849 	memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0]));
   18850 	!!!
   18851 	* tests/regression.at (%nonassoc and eof): Adjust to newest
   18852 	Autotest: `.' is not in the PATH.
   18853 
   18854 2002-01-27  Akim Demaille  <akim (a] epita.fr>
   18855 
   18856 	* tests/sets.at (AT_EXTRACT_SETS): New.
   18857 	(Nullable): Use it.
   18858 	(Firsts): New.
   18859 
   18860 2002-01-26  Akim Demaille  <akim (a] epita.fr>
   18861 
   18862 	* tests/actions.at, tests/calc.at, tests/headers.at,
   18863 	* tests/torture.at: Adjust to the newest Autotest which no longer
   18864 	forces `.' in the PATH.
   18865 
   18866 2002-01-25  Akim Demaille  <akim (a] epita.fr>
   18867 
   18868 	* tests/regression.at (%nonassoc and eof): New.
   18869 	Suggested by Robert Anisko.
   18870 
   18871 2002-01-24  Akim Demaille  <akim (a] epita.fr>
   18872 
   18873 	Bison dumps core when trying to complain about broken input files.
   18874 	Reported by Cris van Pelt.
   18875 
   18876 	* src/lex.c (parse_percent_token): Be sure to set token_buffer.
   18877 	* tests/regression.at (Invalid input: 1, Invalid input: 2): Merge
   18878 	into...
   18879 	(Invalid inputs): Strengthen: exercise parse_percent_token.
   18880 
   18881 2002-01-24  Robert Anisko  <robert.anisko (a] epita.fr>
   18882 
   18883 	* src/Makefile.am: Add bison.c++.
   18884 	* src/bison.c++: New skeleton.
   18885 
   18886 2002-01-21  Paolo Bonzini <bonzini (a] gnu.org>
   18887 
   18888 	* po/it.po: New.
   18889 
   18890 2002-01-21  Kees Zeelenberg  <kzlg (a] users.sourceforge.net>
   18891 
   18892 	* src/files.c (skeleton_find) [MSDOS]: Fix cp definition.
   18893 
   18894 2002-01-20  Marc Autret  <marc (a] gnu.org>
   18895 
   18896 	* src/files.c (compute_output_file_names): Fix
   18897 
   18898 2002-01-20  Marc Autret  <marc (a] gnu.org>
   18899 
   18900 	* tests/output.at: New test.
   18901 	* src/files.c (compute_base_names): Don't map extensions when
   18902 	the YACC flag is set, use defaults.
   18903 	Reported by Evgeny Stambulchik.
   18904 
   18905 2002-01-20  Marc Autret  <marc (a] gnu.org>
   18906 
   18907 	* src/system.h: Need to define __attribute__ away for non-GCC
   18908 	compilers as well (i.e., the vendor C compiler).
   18909 	Suggested by Albert Chin-A-Young.
   18910 
   18911 2002-01-11  Tim Van Holder  <tim.van.holder (a] pandora.be>
   18912 
   18913 	* lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the
   18914 	canonical definition.
   18915 	* src/system.h: Use the canonical definition for PARAMS (avoids
   18916 	a conflict with the macro from lib/hash.h).
   18917 
   18918 2002-01-11  Akim Demaille  <akim (a] epita.fr>
   18919 
   18920 	* configure.in: Use AC_FUNC_STRNLEN.
   18921 	Fixes the failures observed on AIX 4.3 by H.Merijn Brand.
   18922 
   18923 2002-01-09  Akim Demaille  <akim (a] epita.fr>
   18924 
   18925 	* src/files.c, src/files.h (output_infix): New.
   18926 	(tab_extension): Remove.
   18927 	(compute_base_names): Compute the former, drop the latter.
   18928 	* src/output.c (prepare): Insert the muscles `output-infix', and
   18929 	`output-suffix'.
   18930 	* src/parse-skel.y (string, string.1): New.
   18931 	(section.header): Use it.
   18932 	(section.yacc): Remove.
   18933 	(prefix): Remove too.
   18934 	* src/scan-skel.l: Adjust.
   18935 	* src/bison.simple, src/bison.hairy: Adjust.
   18936 
   18937 2002-01-09  Akim Demaille  <akim (a] epita.fr>
   18938 
   18939 	* configure.in (WERROR_CFLAGS): Compute it.
   18940 	* src/Makefile.am (CFLAGS): Pass it.
   18941 	* tests/atlocal.in (CFLAGS): Idem.
   18942 	* src/files.c: Fix a few warnings.
   18943 	(get_extension_index): Remove, unused.
   18944 
   18945 2002-01-08  Akim Demaille  <akim (a] epita.fr>
   18946 
   18947 	* src/getargs.c (AS_FILE_NAME): New.
   18948 	(getargs): Use it to convert DOSish file names.
   18949 	* src/files.c (base_name): Rename as full_base_name to avoid
   18950 	clashes with `base_name ()'.
   18951 	(filename_split): New.
   18952 	(compute_base_names): N-th rewrite, using filename_split.
   18953 
   18954 2002-01-08  Akim Demaille  <akim (a] epita.fr>
   18955 
   18956 	* lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c:
   18957 	New, stolen from the Fileutils 4.1.
   18958 	* lib/Makefile.am (libbison_a_SOURCES): Adjust.
   18959 	* configure.in: Check for the presence of memrchr, and of its
   18960 	prototype.
   18961 
   18962 2002-01-07  Tim Van Holder  <tim.van.holder (a] pandora.be>
   18963 
   18964 	* lib/hash.h (__P): Added definition for this macro.
   18965 	* src/Makefile.am: Add parse-skel.c and scan-skel.c to
   18966 	BUILT_SOURCES, to ensure they are generated first.
   18967 	* src/parse-skel.y: Use YYERROR_VERBOSE instead of
   18968 	%error-verbose to allow bootstrapping with bison 1.30x.
   18969 
   18970 2002-01-06  Akim Demaille  <akim (a] epita.fr>
   18971 
   18972 	* src/reader.c (parse_braces): Don't fetch the next char, the
   18973 	convention is to fetch on entry.
   18974 	* tests/torture.at (GNU Cim Grammar): Reintroduce their weird
   18975 	'switch' without a following semicolon.
   18976 	* tests/regression.at (braces parsing): New.
   18977 
   18978 2002-01-06  Akim Demaille  <akim (a] epita.fr>
   18979 
   18980 	Bison is dead wrong in its RR conflict reports.
   18981 
   18982 	* tests/torture.at (GNU Cim Grammar): New.
   18983 	* src/conflicts.c (count_rr_conflicts): Fix.
   18984 
   18985 2002-01-06  Akim Demaille  <akim (a] epita.fr>
   18986 
   18987 	Creating package.m4 from configure.ac causes too many problems.
   18988 
   18989 	* tests/Makefile.am (package.m4): Create it by hand,
   18990 	AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf.
   18991 
   18992 2002-01-06  Akim Demaille  <akim (a] epita.fr>
   18993 
   18994 	* src/Makefile.am (bison_SOURCES): Add parse-skel.h and
   18995 	skeleton.h.
   18996 
   18997 2002-01-04  Paul Eggert  <eggert (a] twinsun.com>
   18998 
   18999 	* doc/bison.texinfo (Debugging):
   19000 	Remove YYSTDERR; it's no longer defined or used.
   19001 	Also, s/cstdio.h/cstdio/.
   19002 
   19003 2002-01-03  Akim Demaille  <akim (a] epita.fr>
   19004 
   19005 	* tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf.
   19006 
   19007 2002-01-03  Akim Demaille  <akim (a] epita.fr>
   19008 
   19009 	* src/parse-skel.y (process_skeleton): Don't bind the parser's
   19010 	tracing code to --trace, wait for a better --trace option, with
   19011 	args.
   19012 
   19013 2002-01-03  Akim Demaille  <akim (a] epita.fr>
   19014 
   19015 	* src/bison.simple (YYSTDERR): Remove, replace `stderr'.
   19016 	The ISO C++ standard is extremely clear about it: stderr is
   19017 	considered a macro, not a regular symbol (see table 94 `Header
   19018 	<cstdio> synopsis', [lib.c.files] 27.8.2 C Library files).
   19019 	Therefore std:: does not apply to it.  It still does with fprintf.
   19020 	Also, s/cstdio.h/cstdio/.
   19021 
   19022 2002-01-03  Akim Demaille  <akim (a] epita.fr>
   19023 
   19024 	* lib/quotearg.c: Use `#include "..."' instead of `#include <...>'
   19025 	for non system headers.
   19026 
   19027 2002-01-02  Akim Demaille  <akim (a] epita.fr>
   19028 
   19029 	Equip the skeleton chain with location tracking, runtime trace,
   19030 	pure parser and scanner.
   19031 
   19032 	* src/parse-skel.y: Request a pure parser, locations, and prefix
   19033 	renaming.
   19034 	(%union): Having several members with the same type does not help
   19035 	type mismatches, simplify.
   19036 	(YYPRINT, yyprint): New.
   19037 	(yyerror): ``Rename'' (there is a #define yyerror skel_error) as...
   19038 	(skel_error): this.
   19039 	Handle locations.
   19040 	* src/scan-skel.l: Adjust to these changes.
   19041 	* src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP)
   19042 	(LOCATION_PRINT, skel_control_t): New.
   19043 
   19044 2001-12-30  Akim Demaille  <akim (a] epita.fr>
   19045 
   19046 	* src/parse-skel.y: Get rid of the shift/reduce conflict:
   19047 	replace `gb' with BLANKS.
   19048 	* src/scan-skel.l: Adjust.
   19049 
   19050 2001-12-30  Akim Demaille  <akim (a] epita.fr>
   19051 
   19052 	* src/system.h: We don't need nor want bcopy.
   19053 	Throw away MS-DOS crap: we don't need getpid.
   19054 	* configure.in: We don't need strndup.  It was even causing
   19055 	problems: because Flex includes the headers *before* us,
   19056 	_GNU_SOURCE is not defined by config.h, and therefore strndup was
   19057 	not visible.
   19058 	* lib/xstrndup.c: New.
   19059 	* src/scan-skel.l: Use it.
   19060 	Be sure to initialize yylval.muscle member when scanning a MUSCLE.
   19061 	* src/parse-skel.y: Use %directives instead of #defines.
   19062 
   19063 2001-12-30  Akim Demaille  <akim (a] epita.fr>
   19064 
   19065 	* src/skeleton.h: New.
   19066 	* src/output.c (output_parser, output_master_parser): Remove, dead
   19067 	code.
   19068 	* src/output.h (get_lines_number, actions_output, guards_output)
   19069 	(token_definitions_output): Prototype them.
   19070 	* src/parse-skel.y: Add the license notice.
   19071 	Include output.h and skeleton.h.
   19072 	(process_skeleton): Returns void, and takes a single parameter.
   19073 	* src/scan-skel.l: Add the license notice.
   19074 	Include skeleton.h.
   19075 	Don't use %option yylineno: it seems that then Flex imagines
   19076 	REJECT has been used, and therefore it won't reallocate its
   19077 	buffers (which makes no other sense to me than a bug).  It results
   19078 	in warnings for `unused: yy_flex_realloc'.
   19079 
   19080 2001-12-30  Robert Anisko  <robert.anisko (a] epita.fr>
   19081 
   19082 	* src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
   19083 	(MUSCLE_INSERT_PREFIX): ...to there.
   19084 	* src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING)
   19085 	(MUSCLE_INSERT_PREFIX): Move from here...
   19086 
   19087 	* src/bison.hairy: Add a section directive.  Put braces around muscle
   19088 	names.  This parser skeleton is still broken, but Bison should not
   19089 	choke on a bad muscle 'syntax'.
   19090 	* src/bison.simple: Add a section directive.  Put braces around muscle
   19091 	names.
   19092 
   19093 	* src/files.h (strsuffix, stringappend): Add declarations.
   19094 	(tab_extension): Add declaration.
   19095 	(short_base_name): Add declaration.
   19096 
   19097 	* src/files.c (strsuffix, stringappend): No longer static.  These
   19098 	functions are used in the skeleton parser.
   19099 	(tab_extension): New.
   19100 	(compute_base_names): Use the computations done in this function
   19101 	to guess if the generated parsers should have '.tab' in their
   19102 	names.
   19103 	(short_base_name): No longer static.
   19104 
   19105 	* src/output.c (output_skeleton): New.
   19106 	(output): Disable call to output_master_parser, and give a try to
   19107 	a new skeleton handling system.
   19108 	(guards_output, actions_output): No longer static.
   19109 	(token_definitions_output, get_lines_number): No longer static.
   19110 
   19111 	* configure.in: Use AM_PROG_LEX and AC_PROG_YACC.
   19112 
   19113 	* src/Makefile.am (bison_SOURCES): Add scan-skel.l and
   19114 	parse-skel.y.
   19115 
   19116 	* src/parse-skel.y: New file.
   19117 	* src/scan-skel.l: New file.
   19118 
   19119 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19120 
   19121 	%name-prefix is broken.
   19122 
   19123 	* src/files.c (spec_name_prefix): Initialize to NULL, not to "yy".
   19124 	Adjust all dependencies.
   19125 	* tests/headers.at (export YYLTYPE): Strengthen this test: use
   19126 	%name-prefix.
   19127 
   19128 	Renaming yylval but not yylloc is not consistent.  Now we do.
   19129 
   19130 	* src/bison.simple: Prefix yylloc if used.
   19131 	* doc/bison.texinfo (Decl Summary): Document that.
   19132 
   19133 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19134 
   19135 	* doc/bison.texinfo: Promote `%long-directive' over
   19136 	`%long_directive'.
   19137 	Remove all references to fixed-output-files, yacc is enough.
   19138 
   19139 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19140 
   19141 	* src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the
   19142 	user prologue.  These are defaults.
   19143 	* tests/actions.at (Mid-rule actions): Make sure the user can
   19144 	define YYDEBUG and YYERROR_VERBOSE.
   19145 
   19146 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19147 
   19148 	* src/output.c (header_output): Don't forget to export YYLTYPE and
   19149 	yylloc.
   19150 	* tests/headers.at (export YYLTYPE): New, make sure it does.
   19151 	* tests/regression.at (%union and --defines, Invalid CPP headers):
   19152 	Move to...
   19153 	* tests/headers.at: here.
   19154 
   19155 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19156 
   19157 	* src/gram.h (rule_s): Member `assoc' is of type `associativity'.
   19158 
   19159 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19160 
   19161 	* tests/actions.at (Mid-rule actions): Output on a single line
   19162 	instead of several.
   19163 
   19164 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19165 
   19166 	* doc/bison.texinfo: Formatting changes.
   19167 
   19168 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19169 
   19170 	Don't store the token defs in a muscle, just be ready to output it
   19171 	on command.  Now possible via `symbols'.  Fixes a memory leak.
   19172 
   19173 	* src/output.c (token_definitions_output): New.
   19174 	(output_parser, header_output): Use it.
   19175 	* src/reader.c (symbols_save): Remove.
   19176 
   19177 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19178 
   19179 	* src/bison.simple: Do not provide a default for YYSTYPE and
   19180 	YYLTYPE before the user's prologue.  Otherwise it's hardly... a
   19181 	default.
   19182 
   19183 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19184 
   19185 	Mid-rule actions are simply... ignored!
   19186 
   19187 	* src/reader.c (readgram): Be sure to attach mid-rule actions to
   19188 	the empty-rule associated to the dummy symbol, not to the host
   19189 	rule.
   19190 	* tests/actions.at (Mid-rule actions): New.
   19191 
   19192 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19193 
   19194 	Memory leak.
   19195 
   19196 	* src/reader.c (reader): Free grammar.
   19197 
   19198 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19199 
   19200 	Memory leak.
   19201 
   19202 	* src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here,
   19203 	since it allocates it for each state, although only one is needed.
   19204 	(allocate_storage): Do it here.
   19205 
   19206 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19207 
   19208 	* src/options.h, src/options.c (create_long_option_table): Rename
   19209 	as...
   19210 	(long_option_table_new): this, with a clearer prototype.
   19211 	(percent_table): Remove, unused,
   19212 	* src/getargs.c (getargs): Adjust.
   19213 
   19214 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19215 
   19216 	* src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c
   19217 	* src/print.c, src/print_graph.c, src/state.h: Rename state_table
   19218 	as states.
   19219 
   19220 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19221 
   19222 	* src/lalr.c (build_relations): Rename `states' as `states1'.
   19223 	Sorry, I don't understand exactly what it is, no better name...
   19224 
   19225 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19226 
   19227 	* src/closure.c, src/conflicts.c, src/derives.c, src/gram.c
   19228 	* src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c
   19229 	* src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table
   19230 	as rules.
   19231 
   19232 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19233 
   19234 	* src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long
   19235 	ago.
   19236 
   19237 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19238 
   19239 	* src/reader.c, src/reader.h (user_toknums): Remove.
   19240 	Adjust all users to use symbols[i]->user_token_number.
   19241 
   19242 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19243 
   19244 	* src/gram.c, src/gram.h (sprec, sassoc): Remove.
   19245 	Adjust all users to use symbols[i]->prec or ->assoc.
   19246 
   19247 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19248 
   19249 	* src/reader.c, src/reader.h (tags): Remove.
   19250 	Adjust all users to use symbols[i]->tag.
   19251 
   19252 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19253 
   19254 	* src/gram.h, src/gram.c (symbols): New, similar to state_table
   19255 	and rule_table.
   19256 	* src/reader.c (packsymbols): Fill this table.
   19257 	Drop sprec.
   19258 	* src/conflicts.c (resolve_sr_conflict): Adjust.
   19259 	* src/reduce.c (reduce_grammar): Adjust: just sort symbols, a
   19260 	single table.
   19261 	Use symbols[i]->tag instead of tags[i].
   19262 
   19263 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19264 
   19265 	* tests/calc.at (_AT_DATA_CALC_Y): Also use %union.
   19266 	In addition, put a comment in there, to replace...
   19267 	* tests/regression.at (%union and C comments): Remove.
   19268 
   19269 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19270 
   19271 	* tests/regression.at (Web2c Actions): Blindly move the actual
   19272 	output as expected output.  The contents *seem* right to me, but I
   19273 	can't pretend reading perfectly parser tables...  Nonetheless, all
   19274 	the other tests pass correctly, the table look OK, even though the
   19275 	presence of `$axiom' is to be noted: AFAICS it is useless (but
   19276 	harmless).
   19277 
   19278 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19279 
   19280 	* src/reader.c (readgram): Don't add the rule 0 if there were no
   19281 	rules read.  In other words, add it _after_ having performed
   19282 	grammar sanity checks.
   19283 	Fixes the `tests/regression.at (Invalid input: 1)' Failure.
   19284 
   19285 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19286 
   19287 	* tests/regression.at (Web2c Report): Catch up: the rule 0 is now
   19288 	visible, and some states have now a different number.
   19289 
   19290 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19291 
   19292 	* src/reader.c (readgram): Bind the initial rule's lineno to that
   19293 	of the first rule.
   19294 	* tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts):
   19295 	(Solved SR Conflicts): Adjust rule 0's line number.
   19296 
   19297 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19298 
   19299 	Fix the `GAWK Grammar' failure.
   19300 
   19301 	* src/LR0.c (final_state): Initialize to -1 so that we do compute
   19302 	the reductions of the first state which was mistakenly confused
   19303 	with the final state because precisely final_state was initialized
   19304 	to 0.
   19305 	* tests/sets.at (Nullable): Adjust: state 0 does have lookaheads,
   19306 	now noticed by Bison.
   19307 	* tests/regression.at (Rule Line Numbers): Adjust: state 0 does
   19308 	have a reduction on $default.
   19309 
   19310 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19311 
   19312 	* src/gram.c (ritem_print): Be sure to subtract 1 when displaying
   19313 	rule line numbers.
   19314 	* src/closure.c (print_closure): Likewise.
   19315 	* src/derives.c (print_derives): Likewise.
   19316 	* tests/sets.at (Nullable): Adjust: the rule numbers are correct
   19317 	now.
   19318 
   19319 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19320 
   19321 	* src/lalr.c (lookaheads_print): New.
   19322 	(lalr): Call it when --trace-flag.
   19323 	* tests/sets.at (Nullable): Adjust: when tracing, the lookaheads
   19324 	are dumped.
   19325 
   19326 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19327 
   19328 	* src/derives.c (print_derives): Be sure to use `>= 0', not `> 0',
   19329 	when walking through ritem, even via rule->rhs.
   19330 	* src/reduce.c (dump_grammar, useful_production, reduce_output)
   19331 	(useful_production, useless_nonterminals): Likewise.
   19332 	(reduce_grammar_tables): Likewise, plus update nritems.
   19333 	* src/nullable.c (set_nullable): Likewise.
   19334 	* src/lalr.c (build_relations): Likewise.
   19335 	* tests/sets.at (Nullable): Adjust.
   19336 	Fortunately, now, the $axiom is no longer nullable.
   19337 
   19338 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19339 
   19340 	* src/LR0.c (generate_states): Use nritems, not nitems, nor using
   19341 	the 0-sentinel.
   19342 	* src/gram.c (ritem_longest_rhs): Likewise.
   19343 	* src/reduce.c (nonterminals_reduce): Likewise.
   19344 	* src/print_graph.c (print_graph): Likewise.
   19345 	* src/output.c (output_rule_data): Likewise.
   19346 	* src/nullable.c (set_nullable):  Likewise.
   19347 
   19348 2001-12-29  Akim Demaille  <akim (a] epita.fr>
   19349 
   19350 	* src/output.c: Comment changes.
   19351 
   19352 2001-12-27  Paul Eggert  <eggert (a] twinsun.com>
   19353 
   19354 	* src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special
   19355 	cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and
   19356 	Sparc, as they were causing more porting problems than the
   19357 	(minor) performance improvement was worth.
   19358 
   19359 	Also, catch up with 1.31's YYSTD.
   19360 
   19361 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19362 
   19363 	* src/output.c (output_gram): Rely on nritems, not the
   19364 	0-sentinel.  See below.
   19365 	Use -1 as separator, not 0.
   19366 	* src/bison.simple (yyparse): Subtract 1 to the rule numbers.
   19367 	Rely on -1 as separator in yyrhs, instead of 0.
   19368 	* tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue
   19369 	twice `Now at end of input', therefore there are two lines less to
   19370 	expect.
   19371 
   19372 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19373 
   19374 	* tests/regression.at (Unresolved SR Conflicts):
   19375 	(Solved SR Conflicts, Rule Line Numbers): Adjust to the changes
   19376 	below.
   19377 
   19378 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19379 
   19380 	* src/LR0.c (new_state): Recognize the final state by the fact it
   19381 	is reached by eoftoken.
   19382 	(insert_start_shifting_state, insert_eof_shifting_state)
   19383 	(insert_accepting_state, augment_automaton): Remove, since now
   19384 	these states are automatically computed from the initial state.
   19385 	(generate_states): Adjust.
   19386 	* src/print.c: When reporting a rule number to the user, subtract
   19387 	1, so that the axiom rule is rule 0, and the first user rule is 1.
   19388 	* src/reduce.c: Likewise.
   19389 	* src/print_graph.c (print_core): For the time being, just as for
   19390 	the report, depend upon --trace-flags to dump the full set of
   19391 	items.
   19392 	* src/reader.c (readgram): Once the grammar read, insert the rule
   19393 	0: `$axiom: START-SYMBOL $'.
   19394 	* tests/set.at: Adjust: rule 0 is now displayed, and since the
   19395 	number of the states has changed (the final state is no longer
   19396 	necessarily the last), catch up.
   19397 
   19398 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19399 
   19400 	Try to make the use of the eoftoken valid.  Given that its value
   19401 	is 0 which was also used as a sentinel in ritem, (i) make sure >= 0
   19402 	is used instead of > 0 where appropriate, (ii), depend upon nritems
   19403 	instead of the 0-sentinel.
   19404 
   19405 	* src/gram.h, src/gram.c (nritems): New.
   19406 	Expected to be duplication of nitems, but for the time being...
   19407 	* src/reader.c (packgram): Assert nritems and nitems are equal.
   19408 	* src/LR0.c (allocate_itemsets, new_itemsets): Adjust.
   19409 	* src/closure.c (print_closure, print_fderives): Likewise.
   19410 	* src/gram.c (ritem_print): Likewise.
   19411 	* src/print.c (print_core, print_grammar): Likewise.
   19412 	* src/print_graph.c: Likewise.
   19413 
   19414 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19415 
   19416 	* src/main.c (main): If there are complains after grammar
   19417 	reductions, then output the report anyway if requested, then die.
   19418 	* src/symtab.c (bucket_new): Initialize `value' to -1, not 0.
   19419 	* src/reader.c (eoftoken): New.
   19420 	(parse_token_decl): If the token being defined has value `0', it
   19421 	is the eoftoken.
   19422 	(packsymbols): No longer hack `tags' to insert `$' by hand.
   19423 	Be sure to preserve the value of the eoftoken.
   19424 	(reader): Make sure eoftoken is defined.
   19425 	Initialize nsyms to 0: now eoftoken is created just like the others.
   19426 	* src/print.c (print_grammar): Don't special case the eof token.
   19427 	* src/regression.at: Adjust: `$' has value 0, not -1, which was a
   19428 	lie anyway, albeit pleasant.
   19429 	* tests/calc.at: Exercise error messages with eoftoken.
   19430 	Change the grammar so that empty input is invalid.
   19431 	Adjust expectations.
   19432 	When yyungeting, be sure to use a valid yylloc: use last_yylloc.
   19433 
   19434 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19435 
   19436 	* configure.in: Check the protos of strchr ans strspn.
   19437 	Replace strchr if needed.
   19438 	* src/system.h: Provide the protos of strchr, strspn and memchr if
   19439 	missing.
   19440 	* lib/strchr.c: New.
   19441 	* src/reader.c (symbols_save): Use strchr.
   19442 
   19443 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19444 
   19445 	* src/print.c, src/print_graph.c (escape): New.
   19446 	Use it to quote the TAGS outputs.
   19447 	* src/print_graph.c (print_state): Now errors are in red, and
   19448 	reductions in green.
   19449 	Prefer high to wide: output the state number on a line of its own.
   19450 
   19451 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19452 
   19453 	* src/state.h, src/state.c (reductions_new): New.
   19454 	* src/LR0.c (set_state_table): Let all the states have a
   19455 	`reductions', even if reduced to 0.
   19456 	(save_reductions): Adjust.
   19457 	* src/lalr.c (initialize_LA, initialize_lookaheads): Adjust.
   19458 	* src/print.c (print_reductions, print_actions): Adjust.
   19459 	* src/output.c (action_row): Adjust.
   19460 
   19461 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19462 
   19463 	* src/state.h, src/state.c (errs_new, errs_dup): New.
   19464 	* src/LR0.c (set_state_table): Let all the states have an errs,
   19465 	even if reduced to 0.
   19466 	* src/print.c (print_errs, print_reductions): Adjust.
   19467 	* src/output.c (output_actions, action_row): Adjust.
   19468 	* src/conflicts.c (resolve_sr_conflict): Adjust.
   19469 
   19470 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19471 
   19472 	* src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL.
   19473 
   19474 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19475 
   19476 	* src/conflicts.c, src/conflicts.h (print_reductions): Move to...
   19477 	* src/print.c: here.
   19478 	(lookaheadset, shiftset): New, used as additional storage by
   19479 	print_reductions.
   19480 	(print_results): Adjust.
   19481 	(print_shifts, print_gotos, print_errs): New, extracted from...
   19482 	(print_actions): here.
   19483 	* src/print_graph.c (print_actions): Remove dead code.
   19484 
   19485 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19486 
   19487 	* src/reader.c (copy_dollar, copy_at): Better checking of `n' in
   19488 	`$n' and `@n'.
   19489 
   19490 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19491 
   19492 	* src/lalr.c (add_lookback_edge): Use state_t instead of ints.
   19493 	(build_relations): Adjust.
   19494 
   19495 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19496 
   19497 	* src/lalr.c (set_goto_map): Remove a wrong but benign loop
   19498 	duplication.
   19499 
   19500 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19501 
   19502 	* src/reader.c (packgram): Catch nitems overflows.
   19503 
   19504 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19505 
   19506 	* src/files.c, src/files.h (guard_obstack): Remove.
   19507 	* src/output.c (output): Adjust.
   19508 	* src/reader.c (parse_braces): New, factoring...
   19509 	(copy_action, copy_guard): these two which are renamed as...
   19510 	(parse_action, parse_guard): these.
   19511 	As a voluntary consequence, using braces around guards is now
   19512 	mandatory.
   19513 
   19514 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19515 
   19516 	* src/gram.h (rule_t): `guard' and `guard_line' are new members.
   19517 	* src/reader.c (symbol_list): `guard' and `guard_line' are new
   19518 	members.
   19519 	(symbol_list_new): Adjust.
   19520 	(copy_action): action_line is the first line, not the last.
   19521 	(copy_guard): Just as for actions, store the `action' only, not
   19522 	the switch/case/break flesh.
   19523 	Don't parse the user action that might follow the guard, let...
   19524 	(readgram): do it, i.e., now, there can be an action after a
   19525 	guard.
   19526 	In other words the guard is just explicitly optional.
   19527 	(packgram): Adjust.
   19528 	* src/output.c (guards_output): New.
   19529 	(output_parser): Call it when needed.
   19530 	(output): Also free the guard and attrs obstacks.
   19531 	* src/files.c, src/files.h (obstack_save): Remove.
   19532 	(output_files): Remove.
   19533 	As a result, if one needs the former `.act' file, using an
   19534 	appropriate skeleton which requires actions and guards is now
   19535 	required.
   19536 	* src/main.c (main): Adjust.
   19537 	* tests/semantic.at: New.
   19538 	* tests/regression.at: Use `input.y' as input file name.
   19539 	Avoid 8+3 problems by requiring input.c when the test needs the
   19540 	parser.
   19541 
   19542 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19543 
   19544 	* src/reader.c (symbol_list_new): Be sure to initialize all the
   19545 	fields.
   19546 
   19547 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19548 
   19549 	All the hacks using a final pseudo state are now useless.
   19550 
   19551 	* src/LR0.c (set_state_table): state_table holds exactly nstates.
   19552 	* src/lalr.c (nLA): New.
   19553 	(initialize_LA, compute_lookaheads, initialize_lookaheads): Use it
   19554 	instead of lookaheadsp from the pseudo state (nstate + 1).
   19555 
   19556 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19557 
   19558 	* src/output.c (action_row, token_actions): Use a state_t instead
   19559 	of a integer, and nlookaheads instead of the following state's
   19560 	lookaheadsp.
   19561 
   19562 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19563 
   19564 	* src/conflicts.c (log_resolution, flush_shift)
   19565 	(resolve_sr_conflict, set_conflicts, solve_conflicts)
   19566 	(count_sr_conflicts, count_rr_conflicts, conflicts_output)
   19567 	(conflicts_print, print_reductions): Use a state_t instead of an
   19568 	integer when referring to a state.
   19569 	As much as possible, depend upon nlookaheads, instead of the
   19570 	`lookaheadsp' member of the following state (since lookaheads of
   19571 	successive states are successive, the difference between state n + 1
   19572 	and n served as the number of lookaheads for state n).
   19573 	* src/lalr.c (add_lookback_edge): Likewise.
   19574 	* src/print.c (print_core, print_actions, print_state)
   19575 	(print_results): Likewise.
   19576 	* src/print_graph.c (print_core, print_actions, print_state)
   19577 	(print_graph): Likewise.
   19578 	* src/conflicts.h: Adjust.
   19579 
   19580 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19581 
   19582 	* src/bison.hairy: Formatting/comment changes.
   19583 	ANSIfy.
   19584 	Remove `register' indications.
   19585 	Add plenty of `static'.
   19586 
   19587 2001-12-27  Akim Demaille  <akim (a] epita.fr>
   19588 
   19589 	* src/output.c (prepare): Drop the muscle `ntbase' which
   19590 	duplicates ntokens.
   19591 	* src/bison.simple: Formatting/comment changes.
   19592 	Use YYNTOKENS only, which is documented, but not YYNTBASE, which
   19593 	is an undocumented synonym.
   19594 
   19595 2001-12-22  Akim Demaille  <akim (a] epita.fr>
   19596 
   19597 	* src/output.c (output_table_data): Change the prototype to use
   19598 	`int' for array ranges: some invocations do pass an int, not a
   19599 	short.
   19600 	Reported by Wayne Green.
   19601 
   19602 2001-12-22  Akim Demaille  <akim (a] epita.fr>
   19603 
   19604 	Some actions of web2c.y are improperly triggered.
   19605 	Reported by Mike Castle.
   19606 
   19607 	* src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/.
   19608 	* tests/regression.at (Web2c): Rename as...
   19609 	(Web2c Report): this.
   19610 	(Web2c Actions): New.
   19611 
   19612 2001-12-22  Akim Demaille  <akim (a] epita.fr>
   19613 
   19614 	Reductions in web2c.y are improperly reported.
   19615 	Reported by Mike Castle.
   19616 
   19617 	* src/conflicts.c (print_reductions): Fix.
   19618 	* tests/regression.at (Web2c): New.
   19619 
   19620 2001-12-18  Akim Demaille  <akim (a] epita.fr>
   19621 
   19622 	Some host fail on `assert (!"foo")', which expands to
   19623 	((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__))
   19624 	Reported by Nelson Beebee.
   19625 
   19626 	* src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with
   19627 	`#define it_succeeded 0' and `assert (it_succeeded)'.
   19628 
   19629 2001-12-17  Marc Autret  <autret_m (a] epita.fr>
   19630 
   19631 	* src/bison.simple: Don't hard code the skeleton line and filename.
   19632 	* src/output.c (output_parser): Rename 'line' as 'output_line'.
   19633 	New line counter 'skeleton_line' (skeleton-line muscle).
   19634 
   19635 2001-12-17  Paul Eggert  <eggert (a] twinsun.com>
   19636 
   19637 	* NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that
   19638 	YYDEBUG must be defined to a nonzero value.
   19639 
   19640 	* src/bison.simple (yytname): Do not assume that the user defines
   19641 	YYDEBUG to a properly parenthesized expression.
   19642 
   19643 2001-12-17  Akim Demaille  <akim (a] epita.fr>
   19644 
   19645 	* src/state.h (state_t): Rename lookaheads as lookaheadsp.
   19646 	nlookaheads is a new member.
   19647 	Adjust all users.
   19648 	* src/lalr.h (nlookaheads): Remove this orphan declaration.
   19649 	* src/lalr.c (initialize_lookaheads): Set nlookaheads for each
   19650 	state.
   19651 
   19652 2001-12-17  Akim Demaille  <akim (a] epita.fr>
   19653 
   19654 	* src/files.h, src/files.c (open_files, close_files): Remove.
   19655 	* src/main.c (main): Don't open/close files, nor invoke lex_free,
   19656 	let...
   19657 	* src/reader.c (reader): Do it.
   19658 
   19659 2001-12-17  Akim Demaille  <akim (a] epita.fr>
   19660 
   19661 	* src/conflicts.c (print_reductions): Formatting changes.
   19662 
   19663 2001-12-17  Akim Demaille  <akim (a] epita.fr>
   19664 
   19665 	* src/conflicts.c (flush_shift): Also adjust lookaheadset.
   19666 	(flush_reduce): New.
   19667 	(resolve_sr_conflict): Adjust.
   19668 
   19669 2001-12-17  Akim Demaille  <akim (a] epita.fr>
   19670 
   19671 	* src/output.c (output_obstack): Be static and rename as...
   19672 	(format_obstack): this, to avoid any confusion with files.c's
   19673 	output_obstack.
   19674 	* src/reader.h (muscle_obstack): Move to...
   19675 	* src/output.h: here, since it's defined in output.c.
   19676 
   19677 2001-12-17  Akim Demaille  <akim (a] epita.fr>
   19678 
   19679 	* src/output.c (action_row, save_column, default_goto)
   19680 	(sort_actions, matching_state, pack_vector): Better variable
   19681 	locality.
   19682 
   19683 2001-12-17  Akim Demaille  <akim (a] epita.fr>
   19684 
   19685 	* src/output.c: Various formatting changes.
   19686 
   19687 2001-12-17  Akim Demaille  <akim (a] epita.fr>
   19688 
   19689 	* src/files.c (output_files): Free the output_obstack.
   19690 	* src/main.c (main): Call print and print_graph conditionally.
   19691 	* src/print.c (print): Work unconditionally.
   19692 	* src/print_graph.c (print_graph): Work unconditionally.
   19693 	* src/conflicts.c (log_resolution): Output only if verbose_flag.
   19694 
   19695 2001-12-16  Marc Autret  <autret_m (a] epita.fr>
   19696 
   19697 	* src/output.c (actions_output): Fix. When we use %no-lines,
   19698 	there is one less line per action.
   19699 
   19700 2001-12-16  Marc Autret  <autret_m (a] epita.fr>
   19701 
   19702 	* src/bison.simple: Remove a useless #line directive.
   19703 	s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'.
   19704 	* src/output.c (get_lines_number): New.
   19705 	(output_parser): Adjust, now takes care about the lines of a
   19706 	output muscles.
   19707 	Fix line numbering.
   19708 	(actions_output): Computes the number of lines taken by actions.
   19709 	(output_master_parser): Insert new skeleton which is the name of
   19710 	the output parser file name.
   19711 
   19712 2001-12-15  Marc Autret  <autret_m (a] epita.fr>
   19713 
   19714 	* src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility.
   19715 
   19716 2001-12-15  Marc Autret  <autret_m (a] epita.fr>
   19717 
   19718 	* src/output.c (output_gram): Keep track of the hairy one.
   19719 
   19720 2001-12-15  Akim Demaille  <akim (a] epita.fr>
   19721 
   19722 	Make `make distcheck' work.
   19723 
   19724 	* lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses
   19725 	system.h which uses libgettext.h.
   19726 
   19727 2001-12-15  Akim Demaille  <akim (a] epita.fr>
   19728 
   19729 	* src/nullable.c (set_nullable): Useless rules must be skipped,
   19730 	otherwise, since we range over their symbols, we might look at a
   19731 	nonterminal which no longer ``exists'', i.e., it is not counted in
   19732 	`nvars', hence we overflow our arrays.
   19733 
   19734 2001-12-15  Akim Demaille  <akim (a] epita.fr>
   19735 
   19736 	The header can also be produced directly, without any obstack!
   19737 	Yahoo!
   19738 
   19739 	* src/files.c, src/files.h (defines_obstack): Remove.
   19740 	(compute_header_macro): Global.
   19741 	(defines_obstack_save): Remove.
   19742 	* src/reader.c (parse_union_decl): No longer output to
   19743 	defines_obstack: its content can be found in the `stype' muscle
   19744 	anyway.
   19745 	(output_token_translations): Merge into...
   19746 	(symbols_output): this.
   19747 	Rename as...
   19748 	(symbols_save): this.
   19749 	(reader): Adjust.
   19750 	* src/output.c (header_output): New.
   19751 	(output): Call it.
   19752 
   19753 2001-12-15  Akim Demaille  <akim (a] epita.fr>
   19754 
   19755 	* src/reader.c (parse_union_decl): Instead of handling two obstack
   19756 	simultaneously, use one to define the `stype' muscle, and use the
   19757 	value of the latter to fill defines_obstack.
   19758 	(copy_comment): Remove.
   19759 	(copy_comment2): Work for a single obstack.
   19760 	Rename as...
   19761 	(copy_comment): this.
   19762 
   19763 2001-12-15  Akim Demaille  <akim (a] epita.fr>
   19764 
   19765 	* src/lex.c, src/lex.h (xgetc): No longer static.
   19766 	* src/reader.c (parse_union_decl): Revamp.
   19767 
   19768 2001-12-15  Akim Demaille  <akim (a] epita.fr>
   19769 
   19770 	Still making progress in separating Bison into (i) input, (ii)
   19771 	process, (iii) output: now we can directly output the parser file
   19772 	without using table_obstack at all.
   19773 
   19774 	* src/files.c, src/files.h (table_obstack): Bye bye.
   19775 	(parser_file_name): New.
   19776 	* src/files.c (compute_output_file_names): Compute it.
   19777 	* src/output.c (actions_output, output_parser)
   19778 	(output_master_parser): To a file instead of an obstack.
   19779 
   19780 2001-12-15  Akim Demaille  <akim (a] epita.fr>
   19781 
   19782 	Attach actions to rules, instead of pre-outputting them to
   19783 	actions_obstack.
   19784 
   19785 	* src/gram.h (rule_t): action and action_line are new members.
   19786 	* src/reader.c (symbol_list): Likewise.
   19787 	(copy_action): Save the actions within the rule.
   19788 	(packgram): Save them in rule_table.
   19789 	* src/output.c (actions_output): New.
   19790 	(output_parser): Use it on `%%actions'.
   19791 	(output_rule_data): Don't free rule_table.
   19792 	(output): Do it.
   19793 	(prepare): Don't save the `action' muscle.
   19794 	* src/bison.simple: s/%%action/%%actions/.
   19795 
   19796 2001-12-15  Akim Demaille  <akim (a] epita.fr>
   19797 
   19798 	* src/reader.c (copy_action): When --yacc, don't append a `;'
   19799 	to the user action: let it fail if lacking.
   19800 	Suggested by Arnold Robbins and Tom Tromey.
   19801 
   19802 2001-12-14  Akim Demaille  <akim (a] epita.fr>
   19803 
   19804 	* src/lex.c (literalchar): Simply return the char you decoded, non
   19805 	longer mess around with obstacks and int pointers.
   19806 	Adjust all callers.
   19807 
   19808 2001-12-14  Akim Demaille  <akim (a] epita.fr>
   19809 
   19810 	* src/lex.c (literalchar): Don't escape the special characters,
   19811 	just decode them, and keep them as char (before, eol was output as
   19812 	the 2 char string `\n' etc.).
   19813 	* src/output.c (output_rule_data): Use quotearg to output the
   19814 	token strings.
   19815 
   19816 2001-12-13  Paul Eggert  <eggert (a] twinsun.com>
   19817 
   19818 	* src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE):
   19819 	Do not infringe on the global user namespace when using C++.
   19820 	(YYFPRINTF, YYSTDERR): New macros, needed for the above.
   19821 	All uses of `fprintf' and `stderr' changed.
   19822 
   19823 	* doc/bison.texinfo: Document YYFPRINTF, YYSTDERR.
   19824 
   19825 2001-12-13  Akim Demaille  <akim (a] epita.fr>
   19826 
   19827 	The computation of nullable is broken: it doesn't handle empty
   19828 	RHS's properly.
   19829 
   19830 	* tests/torture.at (GNU AWK Grammar): New.
   19831 	* tests/sets.at (Nullable): New.
   19832 	* src/nullable.c (set_nullable): Instead of blindly looping over
   19833 	`ritems', loop over the rules, and then over their rhs's.
   19834 
   19835 	Work around Autotest bugs.
   19836 
   19837 	* src/warshall.c (bitmatrix_print): Don't use `+--+' as table
   19838 	frame, because Autotest understand lines starting with a `+' as
   19839 	traces from the shell.  Then, they are not processed properly.
   19840 	Admittedly an Autotest bug, but we don't have time to wait for
   19841 	Autotest to catch up.
   19842 	* tests/regression.at (Broken Closure): Adjust to the new table
   19843 	frames.
   19844 	Move to...
   19845 	* tests/sets.at: here.
   19846 
   19847 2001-12-13  Akim Demaille  <akim (a] epita.fr>
   19848 
   19849 	* src/closure.c (closure): Use nrules instead of playing tricks
   19850 	with BITS_PER_WORD.
   19851 
   19852 2001-12-13  Akim Demaille  <akim (a] epita.fr>
   19853 
   19854 	* src/print.c (print_actions): Output the handling of `$' as the
   19855 	traces do: shifting the token EOF.  Before EOF was treated as a
   19856 	nonterminal.
   19857 	* tests/regression.at: Adjust some tests.
   19858 	* src/print_graph.c (print_core): Complete the set of items via
   19859 	closure.  The next-to-final and final states are still unsatisfying,
   19860 	but that's to be addressed elsewhere.
   19861 	No longer output the rule numbers, but do output the state number.
   19862 	A single loop for the shifts + gotos is enough, but picked a
   19863 	distinct color for each.
   19864 	(print_graph): Initialize and finalize closure.
   19865 
   19866 2001-12-13  Akim Demaille  <akim (a] epita.fr>
   19867 
   19868 	* src/reader.c (readgram): Remove dead code, an strip useless
   19869 	braces.
   19870 	(get_type): Remove, unused.
   19871 
   19872 2001-12-12  Akim Demaille  <akim (a] epita.fr>
   19873 
   19874 	* src/complain.h, src/complain.c: Remove error_one_per_line, rely
   19875 	on that of lib/error.c.
   19876 
   19877 2001-12-12  Akim Demaille  <akim (a] epita.fr>
   19878 
   19879 	Some hosts don't like `/' in includes.
   19880 
   19881 	* src/system.h: Include libgettext.h without qualifying the path.
   19882 	* src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove
   19883 	$(top_srcdir).
   19884 
   19885 2001-12-11  Marc Autret  <autret_m (a] epita.fr>
   19886 
   19887 	* src/output.c (output_parser): Remove useless muscle.
   19888 
   19889 2001-12-11  Marc Autret  <autret_m (a] epita.fr>
   19890 
   19891 	* src/bison.simple: Remove #line just before %%epilogue. It
   19892 	is now handled in ...
   19893 	* src/reader.c (read_additionnal_code): Add the output of a
   19894 	#line for the epilogue.
   19895 
   19896 2001-12-10  Marc Autret  <autret_m (a] epita.fr>
   19897 
   19898 	* src/reader.c (copy_definition): Re-use CPP-outed code which
   19899 	replace precedent remove.
   19900 	* src/bison.simple: Remove #line before %%prologue because
   19901 	%%input-line is wrong at this time.
   19902 
   19903 2001-12-10  Marc Autret  <autret_m (a] epita.fr>
   19904 
   19905 	* src/reader.c (symbols_output): Clean up.
   19906 	* src/output.c (output_gram, output): Clean up.
   19907 
   19908 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   19909 
   19910 	* src/lalr.c (initialize_lookaheads): New.  Extracted from...
   19911 	* src/LR0.c (set_state_table): here.
   19912 	* src/lalr.c (lalr): Call it.
   19913 
   19914 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   19915 
   19916 	* src/state.h (shifts): Remove the `number' member: shifts are
   19917 	attached to state, hence no longer need to be labelled with a
   19918 	state number.
   19919 
   19920 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   19921 
   19922 	Now that states have a complete set of members, the linked list of
   19923 	shifts is useless: just fill directly the state's shifts member.
   19924 
   19925 	* src/state.h (shifts): Remove the `next' member.
   19926 	* src/LR0.c (first_state, last_state): Remove.
   19927 	Adjust the callers.
   19928 	(augment_automaton): Don't look for the shifts that must be added
   19929 	a shift on EOF: it is those of the state we looked for!  But now,
   19930 	since shifts are attached, it is no longer needed to looking
   19931 	merely by its id: its number.
   19932 
   19933 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   19934 
   19935 	* src/LR0.c (augment_automaton): Better variable locality.
   19936 	Remove an impossible branch: if there is a state corresponding to
   19937 	the start symbol being shifted, then there is shift for the start
   19938 	symbol from the initial state.
   19939 
   19940 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   19941 
   19942 	* src/LR0.c (augment_automaton): Call `insert_eof_shifting_state'
   19943 	only when appropriate: when insert_start_shifting_state' is not
   19944 	invoked.
   19945 	* tests/regression.at (Rule Line Numbers): Adjust.
   19946 
   19947 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   19948 
   19949 	* src/LR0.c (augment_automaton): Now that all states have shifts,
   19950 	merge the two cases addition shifts to the initial state.
   19951 
   19952 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   19953 
   19954 	* src/lalr.c (set_state_table): Move to...
   19955 	* src/LR0.c: here.
   19956 	* src/lalr.c (lalr): Don't call it...
   19957 	* src/LR0.c (generate_states): do it.
   19958 	* src/LR0.h (first_state): Remove, only the table is used.
   19959 
   19960 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   19961 
   19962 	* src/LR0.h (first_shift, first_reduction): Remove.
   19963 	* src/lalr.c: Don't use first_shift: find shifts through the
   19964 	states.
   19965 
   19966 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   19967 
   19968 	* src/LR0.c: Attach shifts to states as soon as they are
   19969 	computed.
   19970 	* src/lalr.c (set_state_table): Instead of assigning shifts to
   19971 	state, just assert that the mapping was properly done.
   19972 
   19973 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   19974 
   19975 	* src/LR0.c (insert_start_shift): Rename as...
   19976 	(insert_start_shifting_state): this.
   19977 	(insert_eof_shifting_state, insert_accepting_state): New.
   19978 	(augment_automaton): Adjust.
   19979 	Better locality of the variables.
   19980 	When looking if the start_symbol is shifted from the initial
   19981 	state, using `while (... symbol != start_symbol ...)' sounds
   19982 	better than `while (... symbol < start_symbol ...)': If fail
   19983 	to see how the order between symbols could be relevant!
   19984 
   19985 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   19986 
   19987 	* src/getargs.h: Don't declare `spec_name_prefix' and
   19988 	`spec_file_prefix', declared by src/files.h.
   19989 	* src/files.c, src/files.h: Default for spec_name_prefix is "yy".
   19990 	* src/muscle_tab.c (muscle_init): Default prefix to NULL.
   19991 	* src/output.c (prepare): Adjust.
   19992 	* src/reader.c (symbols_output): Likewise.
   19993 	* src/vmsgetargs.c: Vaguely adjust, but who cares?
   19994 
   19995 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   19996 
   19997 	* src/muscle_tab.c (muscle_init): NULL is a better default than
   19998 	`"0"'.
   19999 
   20000 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   20001 
   20002 	* src/reader.c (reader): Calling symbols_output once is enough.
   20003 
   20004 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   20005 
   20006 	Now that states have a complete set of members, the linked list of
   20007 	reductions is useless: just fill directly the state's reductions
   20008 	member.
   20009 
   20010 	* src/state.h (struct reductions): Remove member `number' and
   20011 	`next'.
   20012 	* src/LR0.c (first_reduction, last_reduction): Remove.
   20013 	(save_reductions): Don't link the new reductions, store them in
   20014 	this_state.
   20015 	* src/lalr.c (set_state_table): No need to attach reductions to
   20016 	states, it's already done.
   20017 	* src/output.c (output_actions): No longer free the shifts, then
   20018 	the reductions, then the states: free all the states and their
   20019 	members.
   20020 
   20021 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   20022 
   20023 	* src/options.c (OPTN, DRTV, BOTH): New.
   20024 	(option_table): Use them.
   20025 
   20026 	* src/muscle_tab.c: Don't include xalloc.h and string.h: that's
   20027 	the job of system.h.
   20028 	* src/options.c: Don't include stdio.h and xalloc.h for the same
   20029 	reasons.
   20030 
   20031 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   20032 
   20033 	* src/output.c (output, prepare): Make sure the values of the
   20034 	muscles `action' and `prologue' are 0-terminated.
   20035 
   20036 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   20037 
   20038 	Clean up GCC warnings.
   20039 
   20040 	* src/reader.c (copy_action): `buf' is not used.
   20041 	(parse_skel_decl): Be static.
   20042 	* src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'.
   20043 	* src/options.h (create_long_option_table): Have a real prototype.
   20044 	* lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete)
   20045 	(hash_delete_at): Return const void *.
   20046 	Adjust casts to preserve the const.
   20047 
   20048 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   20049 
   20050 	* configure.in: Require 2.52g.
   20051 	M4 is not needed, but AUTOM4TE is.
   20052 	* m4/m4.m4: Remove.
   20053 	* tests/Makefile.am: Adjust.
   20054 
   20055 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   20056 
   20057 	One structure for states is enough, even though theoretically
   20058 	there are LR(0) states and LALR(1) states.
   20059 
   20060 	* src/lalr.h (state_t): Remove.
   20061 	(state_table): Be state_t **, not state_t *.
   20062 	* src/state.h (core, CORE_ALLOC): Rename as...
   20063 	(state_t, STATE_ALLOC): this.
   20064 	Add the LALR(1) members: shifts, reductions, errs.
   20065 	* src/LR0.c (state_table): Rename as...
   20066 	(state_hash): this, to avoid name clashes with the global
   20067 	`state_table'.
   20068 	* src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c
   20069 	* src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust.
   20070 
   20071 2001-12-10  Akim Demaille  <akim (a] epita.fr>
   20072 
   20073 	Bison dumps core on bash.y.
   20074 	Reported by Pascal Bart.
   20075 
   20076 	* src/warshall.c (bitmatrix_print): New.
   20077 	(TC): Use it.
   20078 	When performing a transitive closure R(i, j) && R(j, k) => R(i, k),
   20079 	j must be the outer loop.
   20080 	* tests/regression.at (Broken Closure): New.
   20081 
   20082 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20083 
   20084 	* tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and
   20085 	its argument.
   20086 	Reported by Peter Hamorsky.
   20087 
   20088 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20089 
   20090 	* src/conflicts.c (err_table): Remove.
   20091 	(resolve_sr_conflict): Adjust.
   20092 	* src/lalr.h (state_t.reduction_table, state_t.shift_table):
   20093 	Rename as...
   20094 	(state_t.reductions, state_t.shifts): this.
   20095 
   20096 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20097 
   20098 	* src/reduce.c (reduce_grammar_tables): No longer disable the
   20099 	removal of useless rules via CPP but via `if (0)', so that the
   20100 	compiler still check the code is valid.
   20101 	For instance, it should have noticed `rline' no longer exists: use
   20102 	the `line' member of rule_t.
   20103 	* src/gram.c (dummy, rline): Remove, unused.
   20104 
   20105 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20106 
   20107 	* src/output.c (pack_vector): Use assert, not berror.
   20108 	* src/main.c (berror): Remove, unused.
   20109 
   20110 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20111 
   20112 	New experimental feature: if --verbose --trace output all the
   20113 	items of a state, not only its kernel.
   20114 
   20115 	* src/print.c (print_core): If `trace_flag', then invoke closure
   20116 	before outputting the items of the state (print_core is no longer
   20117 	a correct name them).
   20118 	(print_results): Invoke new_closure/free_closure if needed.
   20119 
   20120 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20121 
   20122 	* src/LR0.c (new_itemsets): Use nshifts only, not shiftcount.
   20123 	* src/closure.c, src/closure.h (itemsetsize): Rename as...
   20124 	(nitemset): for consistency with the rest of the project.
   20125 
   20126 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20127 
   20128 	* src/closure.c (print_closure): Improve.
   20129 	(closure): Use it for printing input and output.
   20130 
   20131 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20132 
   20133 	* src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are
   20134 	indexed by nonterminals.
   20135 
   20136 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20137 
   20138 	* src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of
   20139 	what it was!).
   20140 	* src/warshall.h: Remove accidental duplication of the content.
   20141 
   20142 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20143 
   20144 	* src/closure.c (set_fderives): De-obfuscate.
   20145 
   20146 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20147 
   20148 	* src/closure.c (print_firsts, print_fderives): De-obfuscate.
   20149 
   20150 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20151 
   20152 	* src/closure.c (set_firsts): De-obfuscate.
   20153 
   20154 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20155 
   20156 	* src/output.c (action_row): De-obfuscate
   20157 	using the good o' techniques: arrays not pointers, variable
   20158 	locality, BITISSET, RESETBIT etc.
   20159 
   20160 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20161 
   20162 	Pessimize the code to simplify it: from now on, all the states
   20163 	have a valid SHIFTS, which NSHIFTS is possibly 0.
   20164 
   20165 	* src/LR0.c (shifts_new): Be global and move to..
   20166 	* src/state.c, src/state.h: here.
   20167 	* src/conflicts, src/lalr.c, src/output.c, src/print.c,
   20168 	* src/print_graph: Adjust.
   20169 
   20170 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20171 
   20172 	* src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New.
   20173 	* src/conflicts.c: Use it.
   20174 	Restore a few missing `if (!SHIFT_IS_DISABLED)' which were
   20175 	incorrectly ``simplified''.
   20176 
   20177 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20178 
   20179 	* src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate
   20180 	using the good o' techniques: arrays not pointers, variable
   20181 	locality, BITISSET, RESETBIT etc.
   20182 
   20183 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20184 
   20185 	* src/state.h (SHIFT_SYMBOL): New.
   20186 	* src/conflicts.c: Use it to deobfuscate.
   20187 
   20188 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20189 
   20190 	* src/conflicts.c (count_sr_conflicts, count_rr_conflicts)
   20191 	(print_reductions): De-obfuscate using the good o' techniques:
   20192 	arrays not pointers, variable locality, BITISSET.
   20193 
   20194 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20195 
   20196 	* src/conflicts.c (print_reductions): Arrays, not pointers.
   20197 	Use BITISSET.
   20198 
   20199 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20200 
   20201 	* src/conflicts.c (print_reductions): Pessimize, but clarify.
   20202 
   20203 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20204 
   20205 	* src/conflicts.c (print_reductions): Improve variable locality.
   20206 
   20207 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20208 
   20209 	* src/conflicts.c (print_reductions): Pessimize, but clarify.
   20210 
   20211 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20212 
   20213 	* src/conflicts.c (print_reductions): Improve variable locality.
   20214 
   20215 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20216 
   20217 	* src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New.
   20218 	* src/lalr.c: Use them.
   20219 
   20220 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20221 
   20222 	* src/LR0.c (augment_automaton): Formatting changes.
   20223 	Better variable locality.
   20224 
   20225 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20226 
   20227 	* src/lalr.c (matrix_print): New.
   20228 	(transpose): Use it.
   20229 	Use arrays instead of pointers.
   20230 
   20231 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20232 
   20233 	* src/lalr.c (maxrhs): Move to...
   20234 	* src/gram.c, src/gram.h (ritem_longest_rhs): here.
   20235 	* src/lalr.c (build_relations): Adjust.
   20236 
   20237 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20238 
   20239 	* src/lalr.c (transpose): Free the memory allocated to the
   20240 	argument, as it is replaced by the results by the unique caller.
   20241 	(build_relations): Merely invoke transpose: it handles the memory
   20242 	deallocation.
   20243 	Improve variable locality.
   20244 	Avoid variables used as mere abbreviations.
   20245 	(compute_lookaheads): Use arrays instead of pointers.
   20246 
   20247 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20248 
   20249 	* src/lalr.c (initialize_F): Improve variable locality.
   20250 	Avoid variables used as mere abbreviations.
   20251 
   20252 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20253 
   20254 	* src/derives.c (print_derives): Display the ruleno.
   20255 	* src/lalr.c (initialize_F, transpose): Better variable locality
   20256 	to improve readability.
   20257 	Avoid variables used as mere abbreviations.
   20258 
   20259 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20260 
   20261 	* src/lalr.c (traverse): Use arrays instead of pointers.
   20262 
   20263 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20264 
   20265 	* src/nullable.c (set_nullable): Use a for loop to de-obfuscate
   20266 	the handling of squeue.
   20267 	`symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
   20268 
   20269 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20270 
   20271 	Because useless nonterminals are now kept alive (instead of being
   20272 	`destroyed'), we now sometimes examine them, and store information
   20273 	related to them.  Hence we need to know their number, and adjust
   20274 	memory allocations.
   20275 
   20276 	* src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer
   20277 	static.
   20278 	* src/LR0.c (allocate_itemsets): The memory allocated to
   20279 	`symbol_count' was used for two different purpose: once to count
   20280 	the number of occurrences of each symbol, and later reassigned to
   20281 	`shift_symbol', containing the symbol that can be shifted from a
   20282 	given state.
   20283 	Deobfuscate, i.e., allocate, use and free `symbol_count' here
   20284 	only, and...
   20285 	(new_itemsets): Allocate `shift_symbol' here.
   20286 	(allocate_itemsets): symbol_count includes useless nonterminals.
   20287 	Make room for them.
   20288 	(free_storage): Use `free', not `XFREE', for pointers that cannot
   20289 	be null.
   20290 
   20291 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20292 
   20293 	* src/nullable.c (set_nullable): Deobfuscate the handling of
   20294 	ritem.
   20295 	`symbol >= 0' is wrong now, use `rule_table[ruleno].useful'.
   20296 
   20297 2001-12-05  Akim Demaille  <akim (a] epita.fr>
   20298 
   20299 	* src/gram.c, src/gram.h (ritem_print): New.
   20300 	* src/gram.c (dummy): Remove, now there is actual code in gram.c.
   20301 	(This useless function was defined only to work around VMS linkers
   20302 	that can't handle compilation units with variables only).
   20303 	* src/reduce.c (dump_grammar): Use it to trace the construction of
   20304 	ritem.
   20305 
   20306 2001-12-04  Paul Eggert  <eggert (a] twinsun.com>
   20307 
   20308 	* src/bison.simple (union yyalloc): Change member names
   20309 	to be the same as the stack names.
   20310 	(yyparse): yyptr is now union yyalloc *, not char *.
   20311 	(YYSTACK_RELOCATE): Likewise.  This avoids a GCC warning,
   20312 	and may generate better code on some machines.
   20313 	(yystpcpy): Use prototype if __STDC__ is defined, not just
   20314 	if __cplusplus is defined.
   20315 
   20316 2001-11-30  Akim Demaille  <akim (a] epita.fr>
   20317 
   20318 	* configure.in (WARNING_CFLAGS): Add -Werror when possible.
   20319 	(CFLAGS): Do not include the WARNING_CFLAGS here, since GNU
   20320 	Gettext doesn't compile cleanly, and dies with -Werror.
   20321 	* src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS):
   20322 	Include WARNING_CFLAGS here.
   20323 	* lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared
   20324 	before being defined.
   20325 
   20326 2001-11-27  Paul Eggert  <eggert (a] twinsun.com>
   20327 
   20328 	* lib/quotearg.h (quotearg_n, quotearg_n_style):
   20329 	First arg is int, not unsigned.
   20330 	* lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise.
   20331 	(SIZE_MAX, UINT_MAX): New macros.
   20332 	(quotearg_n_options): Abort if N is negative.
   20333 	Avoid overflow check on hosts where size_t is 64 bits and int
   20334 	is 32 bits, as overflow is impossible there.
   20335 	Fix off-by-one typo that caused unnecessary reallocation.
   20336 
   20337 2001-11-29  Paul Eggert  <eggert (a] twinsun.com>
   20338 
   20339 	Name space cleanup in generated parser.
   20340 
   20341 	* doc/bison.texinfo (Bison Parser): Discuss system headers
   20342 	and their effect on the user name space.
   20343 
   20344 	* src/bison.simple:
   20345 	(YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX,
   20346 	YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary,
   20347 	i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE).
   20348 
   20349 	(YYSIZE_T): New macro.  Use it instead of size_t, to avoid infringing
   20350 	on user names when possible.
   20351 
   20352 	(YYSTACK_USE_ALLOCA): Do not define; just use any existing defn.
   20353 	Simplify test for whather <alloca.h> exists.
   20354 
   20355 	(<stdlib.h>): Include if we will use malloc, and if standard C or C++.
   20356 
   20357 	(<stdio.h>): Include if YYDEBUG.
   20358 
   20359 	(yymemcpy): Renamed from __yy_memcpy.  Do not define unless
   20360 	! defined (yyoverflow) && ! defined (yymemcpy).
   20361 
   20362 	(yymemcpy, yyparse): Rename local variables as needed so that
   20363 	they all begin with 'yy'.
   20364 
   20365 	(yystrlen, yystpcpy): New functions.
   20366 
   20367 	(YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES.
   20368 	All uses changed.
   20369 
   20370 	(yyparse): size_t -> YYSIZE_T.  Use yystrlen and yystpcpy
   20371 	instead of relying on string.h functions.  Use YYSTACK_ALLOC
   20372 	and YYSTACK_FREE instead of malloc and free.
   20373 
   20374 2001-11-30  Akim Demaille  <akim (a] epita.fr>
   20375 
   20376 	* src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions
   20377 	before their first uses.
   20378 	(YYBISON, YYPURE): Move to the top of the output.
   20379 
   20380 2001-11-30  Akim Demaille  <akim (a] epita.fr>
   20381 
   20382 	* tests/reduce.at (Useless Nonterminals): Fix.
   20383 
   20384 2001-11-30  Akim Demaille  <akim (a] epita.fr>
   20385 
   20386 	* src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty
   20387 	if body instead of `;' to pacify GCC's warnings.
   20388 
   20389 2001-11-30  Akim Demaille  <akim (a] epita.fr>
   20390 
   20391 	Instead of mapping the LHS of unused rules to -1, keep the LHS
   20392 	valid, but flag the rules as invalid.
   20393 
   20394 	* src/gram.h (rule_t): `useful' is a new member.
   20395 	* src/print.c (print_grammar): Adjust.
   20396 	* src/derives.c (set_derives): Likewise.
   20397 	* src/reader.c (packgram, reduce_output): Likewise.
   20398 	* src/reduce.c (reduce_grammar_tables): Likewise.
   20399 	* tests/reduce.at (Underivable Rules, Useless Rules): New.
   20400 
   20401 2001-11-30  Akim Demaille  <akim (a] epita.fr>
   20402 
   20403 	* src/reduce.c (reduce_output): Formatting changes.
   20404 	* src/print.c (print_results, print_grammar): Likewise.
   20405 	* tests/regression.at (Rule Line Numbers)
   20406 	(Solved SR Conflicts, Unresolved SR Conflicts): Adjust.
   20407 
   20408 2001-11-30  Akim Demaille  <akim (a] epita.fr>
   20409 
   20410 	* src/reduce.c (nonterminals_reduce): Instead of throwing away
   20411 	useless nonterminals, move them at the end of the symbol arrays.
   20412 	(reduce_output): Adjust.
   20413 	* tests/reduce.at (Useless Nonterminals): Adjust.
   20414 
   20415 2001-11-30  Akim Demaille  <akim (a] epita.fr>
   20416 
   20417 	* src/reduce.c: Various comment/formatting changes.
   20418 	(nonterminals_reduce): New, extracted from...
   20419 	(reduce_grammar_tables): here.
   20420 	(reduce_grammar): Call nonterminals_reduce.
   20421 
   20422 2001-11-29  Paul Eggert  <eggert (a] twinsun.com>
   20423 
   20424 	* src/bison.simple (YYSTACK_REALLOC): Remove.
   20425 	(YYSTACK_ALLOC): Resurrect this macro, with its old meaning.
   20426 	(YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
   20427 	New macros.
   20428 	(union yyalloc): New type.
   20429 	(__yy_memcpy): Last arg is size_t, not unsigned int, to remove
   20430 	an arbitrary restriction on hosts where size_t is wider than int.
   20431 
   20432 	(yyparse): Don't dump core if alloca or malloc fails; instead, report
   20433 	a parser stack overflow.  Allocate just one block of memory for all
   20434 	three stacks, instead of allocating three blocks; this typically is
   20435 	faster and reduces fragmentation.
   20436 
   20437 	Do not limit the number of items in the stack to a value that fits
   20438 	in 'int', as this is an arbitrary limit on hosts with 64-bit
   20439 	size_t and 32-bit int.
   20440 
   20441 2001-11-29  Marc Autret  <autret_m (a] epita.fr>
   20442 
   20443 	* tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead
   20444 	of defining YYERROR_VERBOSE.
   20445 	[AT_DATA]: $4 is now out of C declarations in the prologue.
   20446 
   20447 2001-11-28  Marc Autret  <autret_m (a] epita.fr>
   20448 
   20449 	* src/reader.c (parse_dquoted_param): New.
   20450 	(parse_skel_decl): Use it.
   20451 	* src/lex.h: Add its prototype.
   20452 	* src/lex.c (literalchar): Become not static.
   20453 
   20454 2001-11-28  Marc Autret  <autret_m (a] epita.fr>
   20455 
   20456 	* src/output.h: And put its extern declaration here.
   20457 	* src/output.c (error_verbose): Define here.
   20458 	(prepare): Echo name modification.
   20459 	* src/getargs.h: Clean its extern declaration.
   20460 	* src/getargs.c (error_verbose_flag): Remove.
   20461 	(getargs): Remove case 'e'.
   20462 	* src/options.c (option_table): 'error-verbose' is now seen as simple
   20463 	percent option.
   20464 	Include output.h.
   20465 
   20466 	* src/reader.c (read_declarations): Remove case tok_include.
   20467 	(parse_include_decl): Remove.
   20468 	* src/lex.h (token_t): Remove tok_include.
   20469 	* src/options.c (option_table): 'include' is now a simple command line
   20470 	option.
   20471 
   20472 2001-11-28  Marc Autret  <autret_m (a] epita.fr>
   20473 
   20474 	* src/bison.simple: Adjust muscle names.
   20475 	* src/muscle_tab.c (muscle_init): Also rename the muscles.
   20476 	* src/output.c (prepare): s/_/-/ for the muscles names.
   20477 	(output_parser): When scanning for a muscle, allow '-' instead of '_'.
   20478 
   20479 2001-11-28  Marc Autret  <autret_m (a] epita.fr>
   20480 
   20481 	* src/bison.simple: Fix debug.
   20482 	[YYERROR_VERBOSE]: Re-integrate as an internal macro.
   20483 
   20484 2001-11-28  Akim Demaille  <akim (a] epita.fr>
   20485 
   20486 	* src/LR0.c (shifts_new): New.
   20487 	(save_shifts, insert_start_shift, augment_automaton): Use it.
   20488 
   20489 2001-11-28  Akim Demaille  <akim (a] epita.fr>
   20490 
   20491 	* src/closure.c (closure): `b' and `ruleno' denote the same value:
   20492 	keep ruleno only.
   20493 
   20494 2001-11-28  Akim Demaille  <akim (a] epita.fr>
   20495 
   20496 	* src/closure.c (closure): Instead of looping over word in array
   20497 	then bits in words, loop over bits in array.
   20498 
   20499 2001-11-28  Akim Demaille  <akim (a] epita.fr>
   20500 
   20501 	* src/closure.c (closure): No longer optimize the special case
   20502 	where all the bits of `ruleset[r]' are set to 0, to make the code
   20503 	clearer.
   20504 
   20505 2001-11-28  Akim Demaille  <akim (a] epita.fr>
   20506 
   20507 	* src/closure.c (closure): `r' and `c' are new variables, used to
   20508 	de-obfuscate accesses to RULESET and CORE.
   20509 
   20510 2001-11-28  Akim Demaille  <akim (a] epita.fr>
   20511 
   20512 	* src/reduce.c (reduce_print): Use ngettext.
   20513 	(dump_grammar): Improve the trace accuracy.
   20514 
   20515 2001-11-28  Akim Demaille  <akim (a] epita.fr>
   20516 
   20517 	* src/reduce.c (dump_grammar): Don't translate trace messages.
   20518 
   20519 2001-11-28  Akim Demaille  <akim (a] epita.fr>
   20520 
   20521 	* tests/reduce.at (Useless Terminals, Useless Nonterminals): New.
   20522 	* src/reduce.c (reduce_grammar_tables): Do not free useless tags,
   20523 	as all tags are free'ed afterwards.
   20524 	From Enrico Scholz.
   20525 
   20526 2001-11-27  Paul Eggert  <eggert (a] twinsun.com>
   20527 
   20528 	* src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to
   20529 	use alloca when we didn't want to, and vice versa.
   20530 
   20531 2001-11-27  Marc Autret  <autret_m (a] epita.fr>
   20532 
   20533 	* src/muscle_tab.c (muscle_init): Remove 'verbose' muscle
   20534 	initialization.
   20535 	* src/output.c (prepare): Remove its update.
   20536 
   20537 2001-11-27  Marc Autret  <autret_m (a] epita.fr>
   20538 
   20539 	* tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition.
   20540 	Use %error-verbose.
   20541 
   20542 2001-11-27  Marc Autret  <autret_m (a] epita.fr>
   20543 
   20544 	* src/bison.simple: Remove YYERROR_VERBOSE using.
   20545 	Use %%error_verbose.
   20546 	(yyparse): Likewise.
   20547 	* src/output.c (prepare): Give its final value.
   20548 	* src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'.
   20549 	* src/getargs.h: Add its extern declaration.
   20550 	* src/getargs.c (error_verbose_flag): New int.
   20551 	(getargs): Update to catch new case.
   20552 	* src/options.c (option_table): 'error-verbose' is a new option.
   20553 	(shortopts): Update.
   20554 
   20555 2001-11-27  Akim Demaille  <akim (a] epita.fr>
   20556 
   20557 	* src/system.h: Use intl/libgettext.h.
   20558 	* src/Makefile.am (INCLUDES): Add -I $(top_srcdir).
   20559 
   20560 2001-11-27  Akim Demaille  <akim (a] epita.fr>
   20561 
   20562 	* tests/torture.at (Exploding the Stack Size with Malloc):
   20563 	s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/.
   20564 
   20565 2001-11-27  Akim Demaille  <akim (a] epita.fr>
   20566 
   20567 	* src/files.c: Include error.h.
   20568 	Reported by Hans Aberg.
   20569 
   20570 2001-11-26  Marc Autret  <autret_m (a] epita.fr>
   20571 
   20572 	* src/reader.c (parse_include_decl): New, not yet implemented.
   20573 	(read_declarations): Add case tok_include.
   20574 	* src/getargs.h (include): Add its extern definition.
   20575 	* src/getargs.c (include): New const char *.
   20576 	(getargs): Add case '-I'.
   20577 	* src/options.c (option_table): Add include as command line and
   20578 	percent option.
   20579 	* src/lex.h (token_t): Add tok_include.
   20580 
   20581 2001-11-26  Akim Demaille  <akim (a] epita.fr>
   20582 
   20583 	* src/reader.c (readgram): Make sure rules for mid-rule actions
   20584 	have a lineno equal to that of their host rule.
   20585 	Reported by Hans Aberg.
   20586 	* tests/regression.at (Rule Line Numbers): New.
   20587 
   20588 2001-11-26  Akim Demaille  <akim (a] epita.fr>
   20589 
   20590 	* src/LR0.c (allocate_itemsets): kernel_size contains ints, not
   20591 	size_ts.
   20592 
   20593 2001-11-26  Akim Demaille  <akim (a] epita.fr>
   20594 
   20595 	* src/complain.c, src/complain.h (error): Remove, provided by
   20596 	lib/error.[ch].
   20597 
   20598 2001-11-26  Akim Demaille  <akim (a] epita.fr>
   20599 
   20600 	* src/reader.c (read_declarations): Don't abort on tok_illegal,
   20601 	issue an error message.
   20602 	* tests/regression.at (Invalid %directive): New.
   20603 	Reported by Hans Aberg.
   20604 
   20605 2001-11-26  Akim Demaille  <akim (a] epita.fr>
   20606 
   20607 	* configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE.
   20608 	* lib/Makefile.am (libbison_a_SOURCES): Adjust.
   20609 
   20610 2001-11-26  Akim Demaille  <akim (a] epita.fr>
   20611 
   20612 	* src/conflicts.c (conflicts_print): Don't complain at all when
   20613 	there are no reduce/reduce conflicts, and as many shift/reduce
   20614 	conflicts as expected.
   20615 	* tests/regression.at (%expect right): Adjust.
   20616 
   20617 2001-11-23  Akim Demaille  <akim (a] epita.fr>
   20618 
   20619 	* lib/alloca.c: Update, from fileutils.
   20620 
   20621 2001-11-23  Akim Demaille  <akim (a] epita.fr>
   20622 
   20623 	* lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@.
   20624 
   20625 2001-11-23  Akim Demaille  <akim (a] epita.fr>
   20626 
   20627 	* src/system.h: Include alloca.h.
   20628 	* src/main.c (main) [C_ALLOCA]: Call alloca (0).
   20629 
   20630 2001-11-23  Akim Demaille  <akim (a] epita.fr>
   20631 
   20632 	* src/print_graph.c (print_actions): Remove `rule', unused.
   20633 	* src/LR0.c (kernel_size): Contain `int' instead of `size_t' to
   20634 	pacify GCC's signed < unsigned warnings.
   20635 	* src/closure.c (itemsetsize): Likewise.
   20636 	* src/reader.c (symbol_list_new): Static.
   20637 
   20638 2001-11-23  Akim Demaille  <akim (a] epita.fr>
   20639 
   20640 	Attaching lineno to buckets is stupid, since only one copy of each
   20641 	symbol is kept, only the line of the first occurrence is kept too.
   20642 
   20643 	* src/symtab.h, src/symtab.c (bucket): Remove the line member.
   20644 	* src/reader.c (rline_allocated): Remove, unused.
   20645 	(symbol_list): Have a `line' member.
   20646 	(symbol_list_new): New.
   20647 	(readgram): Use it.
   20648 	* src/print.c (print_grammar): Output the rule line numbers.
   20649 	* tests/regression.at (Solved SR Conflicts)
   20650 	(Unresolved SR Conflicts): Adjust.
   20651 	Reported by Hans Aberg.
   20652 
   20653 2001-11-22  Marc Autret  <autret_m (a] epita.fr>
   20654 
   20655 	* src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0.
   20656 
   20657 2001-11-22  Marc Autret  <autret_m (a] epita.fr>
   20658 
   20659 	* src/muscle_tab.c (muscle_init): Remove initialization of
   20660 	skeleton muscle.
   20661 	* src/output.c (output_master_parser): Do it here.
   20662 
   20663 2001-11-20  Akim Demaille  <akim (a] epita.fr>
   20664 
   20665 	* po/sv.po: New.
   20666 	* configure.in (ALL_LINGUAS): Adjust.
   20667 	* po/POTFILE.in: Remove `nullable.c' and `derives.c' which no
   20668 	longer contains strings to translate.
   20669 
   20670 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20671 
   20672 	* src/conflicts.c (conflicts_print): Add a missing \n.
   20673 
   20674 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20675 
   20676 	* src/nullable.c (nullable_print): New.
   20677 	(set_nullable): Call it when tracing.
   20678 	Better locality of variables.
   20679 
   20680 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20681 
   20682 	* src/print.c (print_actions): Better locality of variables.
   20683 
   20684 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20685 
   20686 	* src/derives.c (print_derives): Fix and enrich.
   20687 	* src/closure.c (print_fderives): Likewise.
   20688 
   20689 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20690 
   20691 	* src/closure.c (itemsetend): Remove, replaced with...
   20692 	(itemsetsize): new.
   20693 
   20694 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20695 
   20696 	* src/LR0.c (kernel_end): Remove, replaced with...
   20697 	(kernel_size): new.
   20698 
   20699 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20700 
   20701 	* src/conflicts.c (set_conflicts): Use arrays instead of pointers
   20702 	to clarify.
   20703 
   20704 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20705 
   20706 	* src/closure.c (closure): Use arrays instead of pointers to clarify.
   20707 
   20708 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20709 
   20710 	* src/closure.c, src/derives.c, src/nullable.c: Adjust various
   20711 	trace messages.
   20712 	* src/LR0.c: Likewise.
   20713 	(allocate_itemsets): Use arrays instead of pointers to clarify.
   20714 
   20715 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20716 
   20717 	* src/getargs.c (statistics_flag): Replace with...
   20718 	(trace_flag): New.
   20719 	(longopts): Accept --trace instead of --statistics.
   20720 	* src/getargs.h, src/options.c: Adjust.
   20721 	* src/LR0.c, src/closure.c, src/derives.c, src/nullable.c,
   20722 	* src/reduce.c: Use trace_flags instead of the CPP conditional TRACE.
   20723 
   20724 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20725 
   20726 	* src/LR0.c (new_itemsets, get_state): Use more arrays and fewer
   20727 	pointers to clarify the code.
   20728 	(save_reductions, save_shifts): Factor common parts of alternatives.
   20729 
   20730 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20731 
   20732 	* src/LR0.c (new_state, get_state): Complete TRACE code.
   20733 	* src/closure.c: Include `reader.h' to get `tags', needed by the
   20734 	trace code.
   20735 	Rename the conditional DEBUG as TRACE.
   20736 	Output consistently TRACEs to stderr, not stdout.
   20737 	* src/derives.c: Likewise.
   20738 	* src/reduce.c: (inaccessable_symbols): Using if is better style
   20739 	than goto.
   20740 	Use `#if TRACE' instead of `#if 0' for tracing code.
   20741 
   20742 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20743 
   20744 	* src/system.h (LIST_FREE, shortcpy): New.
   20745 	* src/LR0.c: Use them.
   20746 	* src/output.c (free_itemsets, free_reductions, free_shifts):
   20747 	Remove, replaced by LIST_FREE.
   20748 
   20749 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20750 
   20751 	* src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC)
   20752 	(REDUCTIONS_ALLOC):  New.
   20753 	* src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory
   20754 	allocation.
   20755 
   20756 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20757 
   20758 	* src/LR0.c (new_state): Complete trace code.
   20759 	* src/nullable.c (set_nullable): Don't translate traces.
   20760 
   20761 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20762 
   20763 	* src/print_graph.c (print_core): Better locality of variables.
   20764 	* src/print.c (print_core): Likewise.
   20765 
   20766 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20767 
   20768 	* src/vcg.c: You do the output, so you are responsible of the
   20769 	handling of VCG syntax, in particular: use quotearg.
   20770 	* src/print_graph.c: Don't.
   20771 	(print_actions): Don't output the actions as part of the nodes,
   20772 	since that's the job of the edges.
   20773 	(print_state): Don't output by hand: fill the node description,
   20774 	and ask for its output.
   20775 
   20776 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20777 
   20778 	* src/bison.simple (yyparse): When verbosely reporting an error,
   20779 	no longer put additional quotes around token names.
   20780 	* tests/calc.at: Adjust.
   20781 
   20782 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20783 
   20784 	* src/symtab.h, src/symtab.c: `line' is a new member of `bucket'.
   20785 	* src/reader.c (record_rule_lines, rline, rline_allocated): Remove.
   20786 	* src/output.c: Adjust.
   20787 
   20788 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20789 
   20790 	* src/gram.h (rprec, rprecsym, rassoc): Remove, now part of...
   20791 	(rule_t): this.
   20792 	* src/conflicts.c, src/reader.c, src/reduce.c: Adjust.
   20793 
   20794 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20795 
   20796 	* src/gram.h (rule_t): New.
   20797 	(rule_table): New.
   20798 	(rrhs, rlhs): Remove, part of state_t.
   20799 	* src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c,
   20800 	* src/lalr.c, src/nullable.c, src/output.c, src/print.c,
   20801 	* src/reader.c, src/reduce.c: Adjust.
   20802 
   20803 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20804 
   20805 	* src/reader.c (symbols_output): New, extracted from...
   20806 	(packsymbols): Here.
   20807 	(reader): Call it.
   20808 
   20809 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20810 
   20811 	* src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with...
   20812 	(maxrhs): this new function.
   20813 
   20814 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20815 
   20816 	* src/lalr.c (F): New macro to access the variable F.
   20817 	Adjust.
   20818 
   20819 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20820 
   20821 	* src/lalr.h (LA): New macro to access the variable LA.
   20822 	* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
   20823 	* src/lalr.c: Adjust.
   20824 
   20825 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20826 
   20827 	* src/lalr.c (initialize_LA): Only initialize LA.  Let...
   20828 	(set_state_table): handle the `lookaheads' members.
   20829 
   20830 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20831 
   20832 	* src/lalr.h (lookaheads): Removed array, whose contents is now
   20833 	a member of...
   20834 	(state_t): this structure.
   20835 	* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
   20836 	Adjust.
   20837 
   20838 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20839 
   20840 	* src/lalr.h (consistent): Removed array, whose contents is now
   20841 	a member of...
   20842 	(state_t): this structure.
   20843 	* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
   20844 	Adjust.
   20845 
   20846 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20847 
   20848 	* src/lalr.h (reduction_table, shift_table): Removed arrays, whose
   20849 	contents are now members of...
   20850 	(state_t): this structure.
   20851 	* src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c:
   20852 	Adjust.
   20853 
   20854 2001-11-19  Akim Demaille  <akim (a] epita.fr>
   20855 
   20856 	* src/lalr.h (state_t): New.
   20857 	(state_table): Be a state_t * instead of a core **.
   20858 	(accessing_symbol): Remove, part of state_t.
   20859 	* src/lalr.c: Adjust.
   20860 	(set_accessing_symbol): Merge into...
   20861 	(set_state_table): this.
   20862 	* src/print_graph.c, src/conflicts.c: Adjust.
   20863 
   20864 2001-11-14  Akim Demaille  <akim (a] epita.fr>
   20865 
   20866 	* tests/calc.at, tests/output.at, tests/regression.at,
   20867 	* tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g:
   20868 	now the tests are run in private dirs, therefore AC_CLEANUP and
   20869 	family can be simplified to 0-ary.
   20870 	* tests/atlocal.in: Now that we run `elsewhere' than in tests/,
   20871 	use abs. path to find config.h.
   20872 	* tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's
   20873 	stderr, there can be way too much random noise.
   20874 	Instead pass -Werror to GCC and rely on the exit status.
   20875 	Reported by Wolfram Wagner.
   20876 
   20877 2001-11-14  Akim Demaille  <akim (a] epita.fr>
   20878 
   20879 	* src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be
   20880 	defined only if yyoverflow is defined, to avoid `warning: unused
   20881 	variable `yyvs1''.
   20882 	Reported by The Test Suite.
   20883 
   20884 2001-11-14  Akim Demaille  <akim (a] epita.fr>
   20885 
   20886 	* src/print.c: Include reduce.h.
   20887 	Reported by Hans Aberg.
   20888 
   20889 2001-11-14  Akim Demaille  <akim (a] epita.fr>
   20890 
   20891 	* src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer):
   20892 	Revert a previous patch:  these are really const.
   20893 	* src/conflicts.c (conflict_report): Additional useless pair of
   20894 	braces to pacify GCC's warnings for `if () if () {} else {}'.
   20895 	* src/lex.c (parse_percent_token): Replace equal_offset with
   20896 	arg_offset.
   20897 	arg is const.
   20898 	Be sure to strdup `arg' when used, since there is no reason for
   20899 	token_buffer not to change.
   20900 
   20901 2001-11-14  Akim Demaille  <akim (a] epita.fr>
   20902 
   20903 	* src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper
   20904 	definition.
   20905 	* src/main.c (main): Use them.
   20906 	Suggested by Hans Aberg.
   20907 
   20908 2001-11-12  Akim Demaille  <akim (a] epita.fr>
   20909 
   20910 	* src/system.h (ngettext): Now that we use ngettext, be sure to
   20911 	provide a default definition when NLS are not used.
   20912 
   20913 2001-11-12  Akim Demaille  <akim (a] epita.fr>
   20914 
   20915 	* doc/bison.texinfo: Use `$' as shell prompt, not `%'.
   20916 	Use @kbd to denote user input.
   20917 	(Language and Grammar): ANSIfy the example.
   20918 	Adjust its layout for info/notinfo.
   20919 	(Location Tracking Calc): Output error messages to stderr.
   20920 	Output locations in a more GNUtically correct way.
   20921 	Fix a couple of Englishos.
   20922 	Adjust @group/@end group pairs.
   20923 
   20924 2001-11-12  Akim Demaille  <akim (a] epita.fr>
   20925 
   20926 	%expect was not functioning at all.
   20927 
   20928 	* src/conflicts.c (expected_conflicts): Set to -1.
   20929 	(conflict_report): Use ngettext.
   20930 	(conflicts_print): Check %expect and make its violation an error.
   20931 	* doc/bison.texinfo (Expect Decl): Adjust.
   20932 	* configure.in (AM_GNU_GETTEXT): Ask for ngettext.
   20933 	* tests/regression.at (%expect not enough, %expect right)
   20934 	(%expect too much): New.
   20935 
   20936 2001-11-12  Akim Demaille  <akim (a] epita.fr>
   20937 
   20938 	* tests/regression.at (Conflicts): Rename as...
   20939 	(Unresolved SR Conflicts): this.
   20940 	(Solved SR Conflicts): New.
   20941 
   20942 2001-11-12  Akim Demaille  <akim (a] epita.fr>
   20943 
   20944 	* src/reduce.c (print_results): Rename as...
   20945 	(reduce_output): This.
   20946 	Output to OUT, passed as argument, instead of output_obstack.
   20947 	(dump_grammar): Likewise.
   20948 	(reduce_free): New.
   20949 	Also free V1.
   20950 	(reduce_grammar): No longer call reduce_output, since...
   20951 	* src/print.c (print_results): do it.
   20952 	* src/main.c (main): Call reduce_free;
   20953 
   20954 2001-11-12  Akim Demaille  <akim (a] epita.fr>
   20955 
   20956 	* src/conflicts.c (print_reductions): Accept OUT as argument.
   20957 	Output to it, not to output_obstack.
   20958 	* src/print.c (print_actions): Adjust.
   20959 
   20960 2001-11-12  Akim Demaille  <akim (a] epita.fr>
   20961 
   20962 	* src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return
   20963 	the result instead of using...
   20964 	(src_total, rrc_total, src_count, rrc_count): Remove.
   20965 	(any_conflicts): Remove.
   20966 	(print_conflicts): Split into...
   20967 	(conflicts_print, conflicts_output): New.
   20968 	* src/conflicts.h: Adjust.
   20969 	* src/main.c (main): Invoke both conflicts_output and conflicts_print.
   20970 	* src/print.c (print_grammar): Issue `\n' between two rules.
   20971 	* tests/regression.at (Conflicts): New.
   20972 	Reported by Tom Lane.
   20973 
   20974 2001-11-12  Akim Demaille  <akim (a] epita.fr>
   20975 
   20976 	* tests/regression.at (Invalid input): Remove, duplicate with
   20977 	``Invalid input: 1''.
   20978 
   20979 2001-11-12  Akim Demaille  <akim (a] epita.fr>
   20980 
   20981 	* tests/torture.at (AT_DATA_STACK_TORTURE)
   20982 	(Exploding the Stack Size with Alloca)
   20983 	(Exploding the Stack Size with Malloc): New.
   20984 
   20985 2001-11-12  Akim Demaille  <akim (a] epita.fr>
   20986 
   20987 	* src/bison.simple (YYSTACK_REALLOC): New.
   20988 	(yyparse) [!yyoverflow]: Use it and free the old stack.
   20989 	Reported by Per Allansson.
   20990 
   20991 2001-11-12  Pascal Bart  <pascal.bart (a] epita.fr>
   20992 
   20993 	* src/bison.simple: Define type yystype instead of YYSTYPE, and
   20994 	define CPP macro, which substitute YYSTYPE by yystype.
   20995 	* src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do
   20996 	with yyltype/YYLTYPE.  This allows inclusion of the generated
   20997 	header within the parser if the compiler, such as GGC, accepts
   20998 	multiple equivalent #defines.
   20999 	From Akim.
   21000 
   21001 2001-11-05  Akim Demaille  <akim (a] epita.fr>
   21002 
   21003 	* src/reader.c (symbols_output): New, extracted from...
   21004 	(packsymbols): here.
   21005 	(reader): Adjust.
   21006 
   21007 2001-11-05  Akim Demaille  <akim (a] epita.fr>
   21008 
   21009 	* src/lex.c (parse_percent_token): s/quotearg/quote/.
   21010 
   21011 2001-11-05  Akim Demaille  <akim (a] epita.fr>
   21012 
   21013 	* tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up
   21014 	pattern.
   21015 
   21016 2001-11-05  Akim Demaille  <akim (a] epita.fr>
   21017 
   21018 	* src/options.h (struct option_table_struct): set_flags is void*.
   21019 	* src/options.c (longopts): Support `--output' and `%output'.
   21020 	(usage): Adjust.
   21021 	* src/lex.h (tok_setopt): Remove, replaced with...
   21022 	(tok_intopt, tok_stropt): these new guys.
   21023 	* src/lex.c (getopt.h): Not needed.
   21024 	(token_buffer, unlexed_token_buffer): Not const.
   21025 	(percent_table): Promote `-' over `_' in directive names.
   21026 	Active `%name-prefix', `file-prefix', and `output'.
   21027 	(parse_percent_token): Accept possible arguments to directives.
   21028 	Promote `-' over `_' in directive names.
   21029 
   21030 2001-11-04  Akim Demaille  <akim (a] epita.fr>
   21031 
   21032 	* doc/bison.texinfo (Decl Summary): Split the list into
   21033 	`directives for grammars' and `directives for bison'.
   21034 	Sort'em.
   21035 	Add description of `%name-prefix', `file-prefix', and `output'.
   21036 	Promote `-' over `_' in directive names.
   21037 	(Bison Options): s/%locactions/%locations/.  Nice Freudian slip.
   21038 	Simplify the description of `--name-prefix'.
   21039 	Promote `-' over `_' in directive names.
   21040 	Promote `--output' over `--output-file'.
   21041 	Fix the description of `--defines'.
   21042 	* tests/output.at: Exercise %file-prefix and %output.
   21043 
   21044 2001-11-02  Akim Demaille  <akim (a] epita.fr>
   21045 
   21046 	* doc/refcard.tex: Update.
   21047 
   21048 2001-11-02  Akim Demaille  <akim (a] epita.fr>
   21049 
   21050 	* src/symtab.h (SUNDEF): New.
   21051 	* src/symtab.c (bucket_new): Init user_token_number to SUNDEF to
   21052 	stand for `uninitialized', instead of 0.
   21053 	* src/reader.c (packsymbols, parse_thong_decl): Adjust.
   21054 	* src/lex.c (lex): Adjust.
   21055 
   21056 	* tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF.
   21057 	Number it 0.
   21058 	Let yylex return it instead of a plain 0.
   21059 	Reported by Dick Streefland.
   21060 
   21061 2001-11-02  Akim Demaille  <akim (a] epita.fr>
   21062 
   21063 	* tests/regression.at (Mixing %token styles): New test.
   21064 
   21065 2001-11-02  Akim Demaille  <akim (a] epita.fr>
   21066 
   21067 	* src/reader.c (parse_thong_decl): Formatting changes.
   21068 	(token_translations_init): New, extracted from...
   21069 	(packsymbols): Here.
   21070 	Adjust.
   21071 
   21072 2001-11-01  Akim Demaille  <akim (a] epita.fr>
   21073 
   21074 	* tests/regression.at (AT_TEST_CPP_GUARD_H): New.
   21075 	Check that `9foo.y' produces correct cpp guards.
   21076 	* src/files.c (compute_header_macro): Prepend `BISON_' to CPP
   21077 	guards.
   21078 	Reported by Wwp.
   21079 
   21080 2001-11-01  Akim Demaille  <akim (a] epita.fr>
   21081 
   21082 	* tests/regression.at (Invalid input: 2): New.
   21083 	* src/lex.c (unlexed_token_buffer): New.
   21084 	(lex, unlex): Adjust: when unlexing, be sure to save token_buffer
   21085 	too.
   21086 	Reported by Wwp.
   21087 
   21088 2001-11-01  Akim Demaille  <akim (a] epita.fr>
   21089 
   21090 	* tests/calc.at: Catch up with 1.30.
   21091 	* configure.in: Bump to 1.49a.
   21092 	Adjust to newer Autotest.
   21093 
   21094 2001-10-19  Pascal Bart  <pascal.bart (a] epita.fr>
   21095 
   21096 	* src/conflicts.c: Move global variables rrc_total and src_total ...
   21097 	(print_conflicts): here.
   21098 	* src/output.c (output): Free global variable user_toknums.
   21099 	* src/lex.c (token_obstack): Become static.
   21100 
   21101 2001-10-18  Akim Demaille  <akim (a] epita.fr>
   21102 
   21103 	* tests/atlocal.in (GCC): Add.
   21104 	* tests/calc.at: s/m4_match/m4_bmatch/.
   21105 	s/m4_patsubst/m4_bpatsubst/.
   21106 	(AT_CHECK_CALC): Check the compiler's stderr only if it's GCC.
   21107 	* configure.in: AC_SUBST(GCC).
   21108 
   21109 2001-10-14  Marc Autret  <autret_m (a] epita.fr>
   21110 
   21111 	* src/options.c (create_long_option_table): Fix.
   21112 
   21113 2001-10-10  Akim Demaille  <akim (a] epita.fr>
   21114 
   21115 	* src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA.
   21116 
   21117 2001-10-04  Akim Demaille  <akim (a] epita.fr>
   21118 
   21119 	* src/reader.c (parse_union_decl): Push the caracters in
   21120 	union_obstack, not attrs_obstack.
   21121 
   21122 2001-10-04  Akim Demaille  <akim (a] epita.fr>
   21123 
   21124 	Merge in the branch 1.29.
   21125 
   21126 	* src/reader.c (packsymbols): Use a temporary obstack for
   21127 	`%%tokendef', since output_stack is already used elsewhere.
   21128 
   21129 	2001-10-02  Akim Demaille  <akim (a] epita.fr>
   21130 
   21131 	Bump 1.29d.
   21132 
   21133 	2001-10-02  Akim Demaille  <akim (a] epita.fr>
   21134 
   21135 	Version 1.29c.
   21136 
   21137 	2001-10-02  Akim Demaille  <akim (a] epita.fr>
   21138 
   21139 	* tests/regression.at (Invalid CPP headers): New.
   21140 	From Alexander Belopolsky.
   21141 	* src/files.c (compute_header_macro): Map non alnum chars to `_'.
   21142 
   21143 	2001-10-02  Akim Demaille  <akim (a] epita.fr>
   21144 
   21145 	* tests/regression.at (Invalid input): New.
   21146 	* src/lex.c (lex): Be sure to set `token_buffer' in any case.
   21147 	Reported by Shura.
   21148 
   21149 	2001-10-02  Akim Demaille  <akim (a] epita.fr>
   21150 
   21151 	* tests/calc.at: Now that --debug works, the tests must be adjusted.
   21152 
   21153 	2001-10-02  Akim Demaille  <akim (a] epita.fr>
   21154 
   21155 	* src/output.c (output_parser): Assert `skeleton'.
   21156 	* src/files.c (skeleton_find): Look harder for skeletons on DOSish
   21157 	systems.
   21158 	From Shura.
   21159 
   21160 	2001-10-01  Marc Autret  <autret_m (a] epita.fr>
   21161 
   21162 	* src/lex.h: Echo modifications.
   21163 	* src/lex.c (unlex): Parameter is now token_t.
   21164 	From Hans Aberg.
   21165 
   21166 	2001-10-01  Marc Autret  <autret_m (a] epita.fr>
   21167 
   21168 	* src/main.c: Include lex.h.
   21169 	From Hans Aberg.
   21170 
   21171 	2001-09-29  Akim Demaille  <akim (a] epita.fr>
   21172 
   21173 	* src/getargs.c (longopts): `--debug' is `-t', not `-d'.
   21174 
   21175 	2001-09-28  Akim Demaille  <akim (a] epita.fr>
   21176 
   21177 	* tests/testsuite.at: Update to newer Autotest.
   21178 	* tests/Makefile.am (EXTRA_DIST): bison is not to be shipped.
   21179 
   21180 	2001-09-27  Akim Demaille  <akim (a] epita.fr>
   21181 
   21182 	Position independent wrapper.
   21183 
   21184 	* tests/bison: Remove.
   21185 	* tests/bison.in: New.
   21186 	* configure.in: Adjust.
   21187 
   21188 	2001-09-27  Paul Eggert  <eggert (a] twinsun.com>
   21189 
   21190 	Port quotearg fixes from tar 1.13.24.
   21191 
   21192 	* lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct
   21193 	tm to be declared.
   21194 	(HAVE_MBSINIT): Undef if !HAVE_MBRTOWC.
   21195 	(mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT.
   21196 
   21197 	* m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4.
   21198 	* m4/mbrtowc.m4: New file.
   21199 	* m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h.
   21200 	Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc).
   21201 
   21202 	2001-09-27  Akim Demaille  <akim (a] epita.fr>
   21203 
   21204 	Bump to 1.29c.
   21205 
   21206 	2001-09-27  Akim Demaille  <akim (a] epita.fr>
   21207 
   21208 	Version 1.29b.
   21209 
   21210 	2001-09-25  Akim Demaille  <akim (a] epita.fr>
   21211 
   21212 	* src/system.h: Include `xalloc.h'.
   21213 	Remove it from the C files.
   21214 	* src/files.c (output_files): Free the obstacks.
   21215 	* src/lex.c (init_lex): Rename as...
   21216 	(lex_init): this.
   21217 	(lex_free): New.
   21218 	* src/main.c (main): Use it.
   21219 
   21220 	2001-09-24  Marc Autret  <autret_m (a] epita.fr>
   21221 
   21222 	* src/vcg.c (open_edge, close_edge, open_node, close_node): Change
   21223 	to output informations in fout (FILE*).
   21224 	(open_graph, close_graph): Likewise.
   21225 	(output_graph, output_edge, output_node): Likewise.
   21226 	* src/vcg.h: Update function prototypes.
   21227 	* src/print_graph.c (print_graph): Open output graph file.
   21228 	(print_actions): Adjust.
   21229 	* src/files.h: Remove extern declaration.
   21230 	* src/files.c: Remove graph_obstack declaration.
   21231 	(open_files): Remove graph_obstack initialization.
   21232 	(output_files): Remove graph_obstack saving.
   21233 
   21234 	2001-09-24  Marc Autret  <autret_m (a] epita.fr>
   21235 
   21236 	* src/files.c (compute_output_file_names): Fix.
   21237 
   21238 	2001-09-24  Marc Autret  <autret_m (a] epita.fr>,
   21239 		    Akim Demaille  <akim (a] epita.fr>
   21240 
   21241 	* src/reader.c (reader): Remove call to free_symtab ().
   21242 	* src/main.c (main): Call it here.
   21243 	Include symtab.h.
   21244 	* src/conflicts.c (initialize_conflicts): Rename as...
   21245 	(solve_conflicts): this.
   21246 	* src/print.c (print_core, print_actions, print_state)
   21247 	(print_grammar): Dump to a file instead a `output_obstack'.
   21248 	(print_results): Dump `output_obstack', and then proceed with the
   21249 	FILE *.
   21250 	* src/files.c (compute_output_file_names, close_files): New.
   21251 	(output_files): Adjust.
   21252 	* src/main.c (main): Adjust.
   21253 
   21254 	2001-09-23  Marc Autret  <autret_m (a] epita.fr>
   21255 
   21256 	* src/files.c (compute_header_macro): Computes header macro name
   21257 	from spec_defines_file when given.
   21258 
   21259 	2001-09-23  Marc Autret  <autret_m (a] epita.fr>
   21260 
   21261 	* src/files.c (output_files): Add default extensions.
   21262 
   21263 	2001-09-22  Akim Demaille  <akim (a] epita.fr>
   21264 
   21265 	* src/conflicts.c (finalize_conflicts): Rename as...
   21266 	(free_conflicts): this.
   21267 
   21268 	2001-09-22  Akim Demaille  <akim (a] epita.fr>
   21269 
   21270 	* src/gram.c (gram_free): Rename back as...
   21271 	(dummy): this.
   21272 	(output_token_translations): Free `token_translations'.
   21273 	* src/symtab.c (free_symtab): Free the tag field.
   21274 
   21275 	2001-09-22  Akim Demaille  <akim (a] epita.fr>
   21276 
   21277 	Remove `translations' as it is always set to true.
   21278 
   21279 	* src/gram.h: Adjust.
   21280 	* src/reader.c (packsymbols, parse_token_decl): Adjust
   21281 	* src/print.c (print_grammar): Adjust.
   21282 	* src/output.c (output_token_translations): Adjust.
   21283 	* src/lex.c (lex): Adjust.
   21284 	* src/gram.c: Be sure the set pointers to NULL.
   21285 	(dummy): Rename as...
   21286 	(gram_free): this.
   21287 
   21288 	2001-09-22  Akim Demaille  <akim (a] epita.fr>
   21289 
   21290 	* configure.in: Invoke AM_LIB_DMALLOC.
   21291 	* src/system.h: Use dmalloc.
   21292 	* src/LR0.c: Be sure to have pointers initialized to NULL.
   21293 	(allocate_itemsets): Allocate kernel_items only if needed.
   21294 
   21295 	2001-09-22  Akim Demaille  <akim (a] epita.fr>
   21296 
   21297 	* configure.in: Bump to 1.29b.
   21298 	* tests/Makefile.am (DISTCLEANFILES): Add package.m4.
   21299 	* tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't
   21300 	need xmalloc.c in calc.y.
   21301 	From Pascal Bart.
   21302 
   21303 	2001-09-21  Akim Demaille  <akim (a] epita.fr>
   21304 
   21305 	Version 1.29a.
   21306 	* Makefile.maint, config/config.guess, config/config.sub,
   21307 	* config/missing: Update from masters.
   21308 	* tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend
   21309 	upon package.m4.
   21310 	* configure.in (ALL_LINGUAS): Add `tr'.
   21311 
   21312 	2001-09-21  Akim Demaille  <akim (a] epita.fr>
   21313 
   21314 	* tests/Makefile.am (package.m4): Move to...
   21315 	($(srcdir)/$(TESTSUITE)): here.
   21316 
   21317 	2001-09-20  Akim Demaille  <akim (a] epita.fr>
   21318 
   21319 	* src/complain.c: No longer try to be standalone: use system.h.
   21320 	Don't assume __STDC__ is defined to 1. Just test if it is defined.
   21321 	* src/complain.h: Likewise.
   21322 	* src/reduce.c (useless_nonterminals, inaccessable_symbols):
   21323 	Remove the unused variable `n'.
   21324 	From Albert Chin-A-Young.
   21325 
   21326 	2001-09-18  Marc Autret  <autret_m (a] epita.fr>
   21327 
   21328 	* doc/bison.1: Update.
   21329 	* doc/bison.texinfo (Bison Options): Update --defines and --graph
   21330 	descriptions.
   21331 	(Option Cross Key): Update.
   21332 	Add --graph.
   21333 
   21334 	2001-09-18  Marc Autret  <autret_m (a] epita.fr>
   21335 
   21336 	* tests/regression.at: New test (comment in %union).
   21337 
   21338 	2001-09-18  Marc Autret  <autret_m (a] epita.fr>
   21339 
   21340 	* src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment
   21341 	do that.
   21342 	Reported by Keith Browne.
   21343 
   21344 	2001-09-18  Marc Autret  <autret_m (a] epita.fr>
   21345 
   21346 	* tests/output.at: Add tests for --defines and --graph.
   21347 
   21348 	2001-09-18  Marc Autret  <autret_m (a] epita.fr>
   21349 
   21350 	* tests/output.at: Removes tests of %{header,src}_extension features.
   21351 
   21352 	2001-09-18  Akim Demaille  <akim (a] epita.fr>
   21353 
   21354 	* tests/Makefile.am (package.m4): New.
   21355 	* tests/calc.at (_AT_CHECK_CALC): Just run `calc input'.
   21356 	(_AT_CHECK_CALC_ERROR): Likewise.
   21357 	Factor the `, ' part of verbose error messages.
   21358 
   21359 	2001-09-18  Marc Autret  <autret_m (a] epita.fr>
   21360 
   21361 	* src/getargs.c (longopts): Declare --defines and --graph as options
   21362 	with optional arguments.
   21363 	* src/files.h: Add extern declarations.
   21364 	* src/files.c (spec_graph_file, spec_defines_file): New.
   21365 	(output_files): Update.
   21366 	Remove CPP-outed code.
   21367 
   21368 	2001-09-18  Marc Autret  <autret_m (a] epita.fr>
   21369 
   21370 	Turn off %{source,header}_extension feature.
   21371 
   21372 	* src/files.c (compute_exts_from_gf): Update.
   21373 	(compute_exts_from_src): Update.
   21374 	(output_files): CPP-out useless code.
   21375 	* src/files.h: Remove {header,source}_extension extern declarations.
   21376 	* src/reader.c (parse_dquoted_param): CPP-out.
   21377 	(parse_header_extension_decl): Remove.
   21378 	(parse_source_extension_decl): Remove.
   21379 	(read_declarations): Remove cases tok_{hdrext,srcext}.
   21380 	* src/lex.c (percent_table): Remove {header,source}_extension entries.
   21381 	* src/lex.h (token_t): Remove tok_hdrext and tok_srcext.
   21382 
   21383 	2001-09-10  Akim Demaille  <akim (a] epita.fr>
   21384 
   21385 	* tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT):
   21386 	(AT_CHECK_BISON_PERCENT_FLAGS): Merge into...
   21387 	(AT_CHECK_OUTPUT): this.
   21388 	Merely check ls' exit status, its output is useless.
   21389 
   21390 	2001-09-10  Akim Demaille  <akim (a] epita.fr>
   21391 
   21392 	* tests/calc.at: Use m4_match.
   21393 	(_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'.
   21394 
   21395 	2001-09-10  Marc Autret  <autret_m (a] epita.fr>,
   21396 		    Akim Demaille  <akim (a] epita.fr>
   21397 
   21398 	* src/vcg.h (graph_s): color, textcolor, bordercolor are now
   21399 	enum color_e.
   21400 	* src/print_graph.c (print_graph): Initalize graph.layoutalgorithm
   21401 	to `normal'.
   21402 	* src/reader.c (parse_token_decl): Initialize token with tok_eof.
   21403 	* src/lex.h: Adjust prototype.
   21404 	(token_t): Add `tok_undef'.
   21405 	* src/lex.c (struct percent_table_struct): Retval is now a token_t.
   21406 	(parse_percent_token): Now returns token_t.
   21407 	Add default statement in switch.
   21408 	(lex): Separate `c' as an input variable, from the token_t result
   21409 	part.
   21410 	(unlexed): Is a token_t.
   21411 
   21412 	2001-09-10  Akim Demaille  <akim (a] epita.fr>
   21413 
   21414 	* configure.in: Bump to 1.29a.
   21415 
   21416 	2001-09-07  Akim Demaille  <akim (a] epita.fr>
   21417 
   21418 	Version 1.29.
   21419 
   21420 	2001-08-30  Akim Demaille  <akim (a] epita.fr>
   21421 
   21422 	* tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove.
   21423 	* m4/atconfig.m4: Remove.
   21424 	* tests/testsuite.at, tests/atlocal.in, tests/output.at,
   21425 	* tests/bison: New.
   21426 	* tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER,
   21427 	m4_if, m4_patsubst, and m4_regexp.
   21428 	* tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an
   21429 	`input' file instead of echo.
   21430 
   21431 	2001-08-29  Akim Demaille  <akim (a] epita.fr>
   21432 
   21433 	Bump to 1.28e.
   21434 
   21435 	2001-08-29  Akim Demaille  <akim (a] epita.fr>
   21436 
   21437 	Version 1.28d.
   21438 
   21439 	2001-08-29  Paul Eggert  <eggert (a] twinsun.com>
   21440 
   21441 	* src/bison.simple (yyparse): Don't take the address of an
   21442 	item before the start of an array, as that doesn't conform to
   21443 	the C Standard.
   21444 
   21445 	2001-08-29  Robert Anisko  <anisko_r (a] epita.fr>
   21446 
   21447 	* doc/bison.texinfo (Location Tracking Calc): New node.
   21448 
   21449 	2001-08-29  Paul Eggert  <eggert (a] twinsun.com>
   21450 
   21451 	* src/output.c (output): Do not define const, as this now
   21452 	causes more problems than it cures.
   21453 
   21454 	2001-08-29  Akim Demaille  <akim (a] epita.fr>
   21455 
   21456 	* doc/bison.texinfo: Modernize `@node' and `@top' use: just name
   21457 	the nodes.
   21458 	Be sure to tag the `detailmenu'.
   21459 
   21460 	2001-08-29  Akim Demaille  <akim (a] epita.fr>
   21461 
   21462 	* Makefile.maint (do-po-update): Wget refuses to overwrite files:
   21463 	download in a tmp dir.
   21464 
   21465 	2001-08-28  Marc Autret  <autret_m (a] epita.fr>
   21466 
   21467 	* config/depcomp: New file.
   21468 
   21469 	2001-08-28  Marc Autret  <autret_m (a] epita.fr>
   21470 
   21471 	* doc/bison.1 (mandoc): Adjust.
   21472 	From Juan Manuel Guerrero.
   21473 
   21474 	2001-08-28  Marc Autret  <autret_m (a] epita.fr>
   21475 
   21476 	* src/print_graph.c (print_state): Fix.
   21477 
   21478 	2001-08-27  Marc Autret  <autret_m (a] epita.fr>
   21479 
   21480 	* src/vcg.h (classname_s, infoname_s, node_s): Constify the
   21481 	char * members.
   21482 	Echo modifications to the functions prototypes.
   21483 	* src/vcg.c (add_classname, add_infoname): Adjust arguments.
   21484 
   21485 	2001-08-27  Marc Autret  <autret_m (a] epita.fr>
   21486 
   21487 	* src/vcg.c: Include `xalloc.h'.
   21488 	(add_colorentry): New.
   21489 	(add_classname): New.
   21490 	(add_infoname): New.
   21491 	* src/vcg.h: Add new prototypes.
   21492 
   21493 	2001-08-27  Akim Demaille  <akim (a] epita.fr>
   21494 
   21495 	* Makefile.maint: Sync. again with CVS Autoconf.
   21496 
   21497 	2001-08-27  Akim Demaille  <akim (a] epita.fr>
   21498 
   21499 	* Makefile.maint: Formatting changes.
   21500 	(po-update, cvs-update, update): New targets.
   21501 	(AMTAR): Remove.
   21502 
   21503 	2001-08-27  Akim Demaille  <akim (a] epita.fr>
   21504 
   21505 	* Makefile.am (AUTOMAKE_OPTIONS): 1.5.
   21506 	* Makefile.maint: Sync. with CVS Autoconf.
   21507 
   21508 	2001-08-27  Marc Autret  <autret_m (a] epita.fr>
   21509 
   21510 	* src/vcg.h (struct infoname_s): New.
   21511 	(struct colorentry_s): New.
   21512 	(graph_s): New fields {vertical,horizontal}_order in structure.
   21513 	Add `infoname' field.
   21514 	Add `colorentry' field;
   21515 	* src/vcg_defaults.h (G_VERTICAL_ORDER): New.
   21516 	(G_HORIZONTAL_ORDER): New.
   21517 	(G_INFONAME): New.
   21518 	(G_COLORENTRY): New.
   21519 	* src/vcg.c (output_graph): Add output of {vertical,horizontal}_order.
   21520 	Add output of `infoname'.
   21521 	Add output of `colorentry'.
   21522 
   21523 	2001-08-27  Marc Autret  <autret_m (a] epita.fr>
   21524 
   21525 	* src/reader.c (parse_dquoted_param): Rename variable `index' to `i'.
   21526 	This one shadowed a global parameter.
   21527 
   21528 	2001-08-24  Marc Autret  <autret_m (a] epita.fr>
   21529 
   21530 	* src/print_graph.c (node_output_size): Declared POSIX `size_t' type,
   21531 	instead of `unsigned'.
   21532 	(print_state): Do not call obstack_object_size () in obstack_grow ()
   21533 	to avoid macro variables shadowing.
   21534 
   21535 	2001-08-23  Marc Autret  <autret_m (a] epita.fr>
   21536 
   21537 	* src/lex.c (percent_table): Typo: s/naem/name/.
   21538 	Add graph option.
   21539 	Normalize new options declarations.
   21540 
   21541 	2001-08-20  Pascal Bart  <pascal.bart (a] epita.fr>
   21542 
   21543 	* tests/suite.at: Exercise %header_extension and %source_extension.
   21544 
   21545 	2001-08-16  Marc Autret  <autret_m (a] epita.fr>
   21546 
   21547 	* src/reader.c (parse_dquoted_param): New.
   21548 	(parse_header_extension_decl): Use it.
   21549 	(parse_source_extension_decl): Likewise.
   21550 
   21551 	2001-08-16  Marc Autret  <autret_m (a] epita.fr>
   21552 
   21553 	* src/vcg.c: Remove includes of `complain.h' and `xalloc.h'.
   21554 	(get_xxxx_str): Use assert () instead of complain ().
   21555 	Remove return invokations in default cases.
   21556 	(get_decision_str): Modify default behaviour. Remove second argument.
   21557 	Echo modifications on calls.
   21558 	(output_graph): Fix.
   21559 
   21560 	2001-08-16  Marc Autret  <autret_m (a] epita.fr>
   21561 
   21562 	* src/getargs.c (usage): Update with ``-g, --graph''.
   21563 
   21564 	2001-08-16  Marc Autret  <autret_m (a] epita.fr>
   21565 
   21566 	* doc/bison.texinfo (Bison Options): Add items `-g', `--graph'.
   21567 	(Option Cross Key): Likewise.
   21568 	* doc/bison.1: Update.
   21569 
   21570 2001-09-25  Pascal Bart  <pascal.bart (a] epita.fr>
   21571 
   21572 	* src/output.c (output_master_parser): Don't finish action_obstack.
   21573 	(output_parser): Don't care about the muscle action, here.
   21574 	(prepare): Copy the action_obstack in the action muscle.
   21575 	(output): Free action_obstack.
   21576 
   21577 2001-09-23  Pascal Bart  <pascal.bart (a] epita.fr>
   21578 
   21579 	* src/reader.c (parse_union_decl): Add new obstack union_obstack.  Which
   21580 	will contain `%union' declaration.
   21581 	(parse_union_decl): Delete #line directive output.
   21582 	(parse_union_decl): Substitute /attrs_obstack/union_obstack for all
   21583 	informations about %union.
   21584 	(parse_union_decl): Copy the union_obstack in the muscle stype.
   21585 	* src/bison.simple: Add new #line directive.
   21586 	Add typdef %%stype YYSTYPE.
   21587 
   21588 2001-09-23  Pascal Bart  <pascal.bart (a] epita.fr>
   21589 
   21590 	* src/bison.simple: Add new `#line' directive.
   21591 
   21592 2001-09-22  Pascal Bart  <pascal.bart (a] epita.fr>
   21593 
   21594 	* src/bison.simple: New `#line' directive.
   21595 	* src/output.c (output_parser): Support new dynamic muscle input_line.
   21596 
   21597 2001-09-22  Marc Autret  <autret_m (a] epita.fr>
   21598 
   21599 	* src/output.c (output_master_parser): New.
   21600 	(output_parser): Be more re-entrant.
   21601 
   21602 2001-09-21  Marc Autret  <autret_m (a] epita.fr>
   21603 
   21604 	* src/reader.c (copy_definition, parse_union_decl): Update and use
   21605 	`linef' muscle.
   21606 	(copy_action): Likewise.
   21607 	Use obstack_1grow ().
   21608 	* src/muscle_tab.c (muscle_init): Add muscle `linef'.
   21609 
   21610 2001-09-21  Marc Autret  <autret_m (a] epita.fr>
   21611 
   21612 	* src/options.c (option_table): Adjust.
   21613 	* src/lex.c (parse_percent_token): Fix.
   21614 
   21615 2001-09-20  Pascal Bart  <pascal.bart (a] epita.fr>
   21616 
   21617 	* src/options.c (symtab.h): Include it, need by lex.h.
   21618 
   21619 2001-09-20  Pascal Bart  <pascal.bart (a] epita.fr>
   21620 
   21621 	* src/lex.c (parse_percent_token): Change type of variable `tx', which
   21622 	is now an option_table_struct*.
   21623 	(option_strcmp): New function option_strcmp.
   21624 	(parse_percent_token): Call option_strcmp.
   21625 	* src/getargs.c (xalloc.h, options.h): Include it.
   21626 	(getargs): Call create_long_option_table.
   21627 	(getargs): Free longopts at the end of the function.
   21628 	(shortopts): Move in options.c.
   21629 	* src/options.c (create_long_option_table): New function.  Convert
   21630 	information from option_table to option structure.
   21631 	* src/reader.c (options.h): Include it.
   21632 
   21633 	* src/Makefile.am: Adjust.
   21634 	* src/options.c (option_table): Create from longopts and percent_table.
   21635 	* src/getargs.c (longopts): Delete.
   21636 	* src/lex.c (struct percent_table_struct): Delete.
   21637 	(percent_table): Delete.
   21638 	(options.h): Include it.
   21639 	* src/options.c: Create.
   21640 	* src/options.h: Create.
   21641 	Declare enum opt_access_e.
   21642 	Define struct option_table_struct.
   21643 
   21644 2001-09-20  Marc Autret  <autret_m (a] epita.fr>
   21645 
   21646 	* doc/bison.texinfo: Adjust terminologies about prologue and epilogue
   21647 	sections of Bison.
   21648 
   21649 2001-09-19  Pascal Bart  <pascal.bart (a] epita.fr>
   21650 
   21651 	* src/bison.simple: s/%%filename/%%skeleton.
   21652 	* src/muscle_tab.c (getargs.h): Include it.
   21653 	(muscle_init): Insert new muscle skeleton.
   21654 
   21655 2001-09-18  Pascal Bart  <pascal.bart (a] epita.fr>
   21656 
   21657 	* src/output.c (output_parser): Delete unused variable actions_dumped.
   21658 
   21659 2001-09-07  Pascal Bart  <pascal.bart (a] epita.fr>
   21660 
   21661 	* src/output.c (output): Delete call to reader_output_yylsp.
   21662 	* src/reader.c (reader): Likewise.
   21663 	* src/reader.h: Delete declaration of reader_output_yylsp.
   21664 
   21665 2001-09-02  Marc Autret  <autret_m (a] epita.fr>
   21666 
   21667 	* src/reader.c: Include muscle_tab.h.
   21668 	(parse_union_decl): Update.
   21669 	(parse_macro_decl): Rename parse_muscle_decl.
   21670 	Update to use renamed functions and variable.
   21671 	(read_declarations, copy_action, read_additionnal_code, : Updated
   21672 	with correct variables and functions names.
   21673 	(packsymbols, reader): Likewise.
   21674 
   21675 	* src/reader.h (muscle_obstack): Extern declaration update.
   21676 
   21677 	* src/output.c: Include muscle_tab.h
   21678 	In all functions using macro_insert, change by using muscle_insert ().
   21679 	(macro_obstack): Rename muscle_obstack.
   21680 	Echo modifications in the whole file.
   21681 	(MACRO_INSERT_INT): Rename MUSCLE_INSERT_INT.
   21682 	(MACRO_INSERT_STRING): Rename MUSCLE_INSERT_STRING.
   21683 	(MACRO_INSERT_PREFIX): Rename MUSCLE_INSERT_PREFIX.
   21684 
   21685 	* src/muscle_tab.h: Update double inclusion macros.
   21686 	(macro_entry_s): Rename muscle_entry_s.
   21687 	Update prototypes.
   21688 
   21689 	* src/muscle_tab.c: Include muscle_tab.h.
   21690 	Rename macro_tabble to muscle_table.
   21691 	(mhash1, mhash2, mcmp): Use muscle_entry.
   21692 	(macro_init): Rename muscle_init. Update.
   21693 	(macro_insert): Rename muscle_insert. Update.
   21694 	(macro_find): Rename muscle_find. Update.
   21695 
   21696 	* src/main.c: Include muscle_tab.h.
   21697 	(main): Call muscle_init ().
   21698 	* src/Makefile.am (bison_SOURCES): Echo modifications.
   21699 
   21700 2001-09-02  Marc Autret  <autret_m (a] epita.fr>
   21701 
   21702 	Now the files macro_tab.[ch] are named muscle_tab.[ch].
   21703 
   21704 	* src/muscle_tab.c, src/muscle_tab.h: Add files.
   21705 
   21706 2001-09-02  Marc Autret  <autret_m (a] epita.fr>
   21707 
   21708 	* src/macrotab.c, src/macrotab.h: Remove.
   21709 
   21710 2001-09-01  Pascal Bart  <pascal.bart (a] epita.fr>
   21711 
   21712 	* src/reader.c (copy_guard): Use muscle to specify the `#line'
   21713 	filename.
   21714 
   21715 2001-09-01  Marc Autret  <autret_m (a] epita.fr>
   21716 
   21717 	* tests/calc.at (exp): Now, YYERROR_VERBOSE need to be set
   21718 	to an explicit value to activate the feature. We do it here.
   21719 
   21720 2001-08-31  Pascal Bart  <pascal.bart (a] epita.fr>
   21721 
   21722 	* src/output.c (prepare): Delete the `filename' muscule insertion.
   21723 	* src/reader.c (copy_action): Use `filename' muscule with `#line'.
   21724 	(parse_union_decl): Likewise.
   21725 	* src/macrotab.c (macro_init): Initialize filename by infile.
   21726 
   21727 2001-08-31  Marc Autret  <autret_m (a] epita.fr>
   21728 
   21729 	* src/bison.simple (YYLSP_NEEDED): New definition.
   21730 	* src/output.c (prepare): Add macro insertion of `locations_flag'
   21731 
   21732 2001-08-31  Pascal Bart  <pascal.bart (a] epita.fr>
   21733 
   21734 	* src/output.c (prepare): Delete insertion of previous muscles,
   21735 	and insert the `prefix' muscles.
   21736 	* src/macrotab.c (macro_init): Likewise.
   21737 	(macro_init): Initialization prefix directive by `yy'.
   21738 	* src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
   21739 	%%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
   21740 	yylval, yydebug, yyerror, yynerrs and yyparse.
   21741 	New directive `#define' to substitute yydebug, ... with option
   21742 	name_prefix.
   21743 
   21744 2001-08-31  Pascal Bart  <pascal.bart (a] epita.fr>
   21745 
   21746 	* src/main.c (main): Standardize.
   21747 	* src/output.c (output_table_data, output_parser): Likewise.
   21748 	* src/macrotab.h, src/macrotab.c, src/bison.simple: Likewise.
   21749 
   21750 2001-08-31  Pascal Bart  <pascal.bart (a] epita.fr>, Marc Autret  <autret_m (a] epita.fr>
   21751 
   21752 	* src/reader.c (read_additionnal_code): Rename %%user_code to
   21753 	%%epilogue.
   21754 	* src/output.c (output): Rename %%declarations to %%prologue.
   21755 	* src/bison.simple: Echo modifications.
   21756 
   21757 2001-08-31  Marc Autret  <autret_m (a] epita.fr>
   21758 
   21759 	* src/reader.c (readgram): CleanUp.
   21760 	(output_token_defines): Likewise.
   21761 	(packsymbols): Likewise.
   21762 	(reader): Likewise.
   21763 	* src/output.c (output): CPP-out useless code.
   21764 
   21765 2001-08-31  Pascal Bart  <pascal.bart (a] epita.fr>
   21766 
   21767 	* src/reader.c (reader): Delete obsolete call to function
   21768 	output_trailers and output_headers.
   21769 	* src/output.h: Remove obsolete functions prototypes of output_headers
   21770 	and output_trailers.
   21771 
   21772 2001-08-30  Pascal Bart  <pascal.bart (a] epita.fr>
   21773 
   21774 	* src/main.c: Include macrotab.h.
   21775 	* src/macrotab.h (macro_entry_s): Constify fields.
   21776 	Adjust functions prototypes.
   21777 	* src/macrotab.c (macro_insert): Constify key and value.
   21778 	(macro_find): Constify key.
   21779 	(macro_insert): Include 'xalloc.h'
   21780 	(macro_insert): Use XMALLOC.
   21781 	(macro_find): Constify return value.
   21782 	* src/output.c (output_table_data): Rename table to table_data.
   21783 	(output_parser): Constify macro_key, macro_value.
   21784 
   21785 2001-08-30  Marc Autret  <autret_m (a] epita.fr>
   21786 
   21787 	* src/reader.c (parse_skel_decl): New.
   21788 	(read_declarations): Add case `tok_skel', call parse_skel_decl ().
   21789 	* src/lex.h (token_t): New token `tok_skel'.
   21790 	* src/lex.c (percent_table): Add skeleton option entry.
   21791 	Standardize.
   21792 
   21793 2001-08-29  Marc Autret  <autret_m (a] epita.fr>
   21794 
   21795 	* src/bison.simple: Add %%user_code directive at the end.
   21796 	* src/reader.c (read_additionnal_code): New.
   21797 	(reader): Use it.
   21798 	* src/output.c (output_program): Remove.
   21799 	(output): Update.
   21800 
   21801 2001-08-28  Marc Autret  <autret_m (a] epita.fr>
   21802 
   21803 	* src/output.c (output_actions): Clean up.
   21804 	(output_gram): CPP-out useless code.
   21805 	* src/reader.c (reader): Clean up, CPP-out useless code.
   21806 
   21807 2001-08-28  Pascal Bart  <pascal.bart (a] epita.fr>
   21808 
   21809 	* src/output.c (output): Copy attrs_obstack in the '%%definitions'
   21810 	directive.
   21811 	* src/bison.simple: Add `%%definitions'.
   21812 
   21813 2001-08-28  Marc Autret  <autret_m (a] epita.fr>
   21814 
   21815 	* config/depcomp: New file.
   21816 
   21817 2001-08-27  Paul Eggert  <eggert (a] twinsun.com>
   21818 
   21819 	* src/bison.simple (yyparse): Don't take the address of an
   21820 	item before the start of an array, as that doesn't conform to
   21821 	the C Standard.
   21822 
   21823 2001-08-27  Robert Anisko  <robert.anisko (a] epita.fr>
   21824 
   21825 	* src/output.c (output): Remove the initialization of the macro
   21826 	obstack.  It was done too late here.
   21827 
   21828 	* src/reader.c (parse_macro_decl): Fix.  Use of the macro obstack was
   21829 	completely wrong.
   21830 	(reader): Initialize the macro obstack here, since we need it to grow
   21831 	'%define' directives.
   21832 
   21833 	* src/reader.h: Declare the macro obstack as extern.
   21834 
   21835 2001-08-27  Robert Anisko  <robert.anisko (a] epita.fr>
   21836 
   21837 	* src/output.c (output_parser): Fix.  Store single '%' characters in
   21838 	the output obstack instead of throwing them away.
   21839 
   21840 2001-08-27  Akim Demaille  <akim (a] epita.fr>
   21841 
   21842 	* Makefile.am (AUTOMAKE_OPTIONS): 1.5.
   21843 
   21844 2001-08-25  Robert Anisko  <robert.anisko (a] epita.fr>
   21845 
   21846 	* lib/Makefile.am: Adjust.
   21847 
   21848 2001-08-25  Robert Anisko  <robert.anisko (a] epita.fr>
   21849 
   21850 	* src/bison.simple: Update and add '%%' directives.
   21851 
   21852 2001-08-25  Robert Anisko  <robert.anisko (a] epita.fr>
   21853 
   21854 	* src/reader.c (reader): Remove calls to 'output_headers' and
   21855 	'output_trailers'. Remove some C output.
   21856 	(readgram): Disable a piece of code that was writing a default
   21857 	definition for 'YYSTYPE'.
   21858 	(reader_output_yylsp): Remove.
   21859 	(packsymbols): Output token defintions to a macro.
   21860 	(copy_definition): Disable C output.
   21861 
   21862 	* src/reader.c (parse_macro_decl): New function used to parse macro
   21863 	declarations.
   21864 	(copy_string2): Put the body of copy_string into this new function.
   21865 	Add a parameter to let the caller choose whether he wants to copy the
   21866 	string delimiters or not.
   21867 	(copy_string): Be a simple call to copy_string2 with the last argument
   21868 	bound to true.
   21869 	(read_declarations): Add case for macro definition.
   21870 	(copy_identifier): New.
   21871 	(parse_macro_decl): Read macro identifiers using copy_identifier
   21872 	rather than lex.
   21873 
   21874 2001-08-25  Robert Anisko  <robert.anisko (a] epita.fr>
   21875 
   21876 	* src/output.c (prepare): Add prefixed names.
   21877 	(output_parser): Output semantic actions.
   21878 	(output_parser): Fix bug on '%%line' directives.
   21879 
   21880 	* src/output.c (output_headers): Remove. The C code printed by this
   21881 	function should now be in the skeletons.
   21882 	(output_trailers): Remove.
   21883 	(output): Disable call to 'reader_output_yylsp'.
   21884 	(output_rule_data): Do not output tables to the table obstack.
   21885 
   21886 	* src/output.c: Remove some C dedicated output.
   21887 	Improve the use of macro and output obstacks.
   21888 	(output_defines): Remove.
   21889 
   21890 	* src/output.c (output_token_translations): Associate 'translate'
   21891 	table with a macro. No output to the table obstack.
   21892 	(output_gram): Same for 'rhs' and 'prhs'.
   21893 	(output_stos): Same for 'stos'.
   21894 	(output_rule_data): Same for 'r1' and 'r2'.
   21895 	(token_actions): Same for 'defact'.
   21896 	(goto_actions): Same for 'defgoto'.
   21897 	(output_base): Same for 'pact' and 'pgoto'.
   21898 	(output_table): Same for 'table'.
   21899 	(output_check): Same for 'check'.
   21900 
   21901 	* src/output.c (output_table_data): New function.
   21902 	(output_short_table): Remove.
   21903 	(output_short_or_char_table): Remove.
   21904 
   21905 	* src/output.c (output_parser): Replace most of the skeleton copy code
   21906 	with something new. Skeletons are now processed character by character
   21907 	rather than line by line, and Bison looks for '%%' macros. This is the
   21908 	first step in making Bison's output process (a lot) more flexible.
   21909 	(output_parser): Use the macro table.
   21910 
   21911 2001-08-25  Robert Anisko  <robert.anisko (a] epita.fr>
   21912 
   21913 	* src/main.c (main): Initialize the macro table.
   21914 
   21915 2001-08-25  Robert Anisko  <robert.anisko (a] epita.fr>
   21916 
   21917 	* src/lex.c (percent_table): Add tok_define.
   21918 	* src/lex.h: Add tok_define.
   21919 
   21920 2001-08-25  Robert Anisko  <robert.anisko (a] epita.fr>
   21921 
   21922 	* src/macrotab.c: New file.
   21923 	* src/macrotab.h: New file.
   21924 	* src/Makefile.am: Update.
   21925 
   21926 2001-08-25  Robert Anisko  <robert.anisko (a] epita.fr>
   21927 
   21928 	* lib/hash.c: New file.
   21929 	* lib/hash.h: New file.
   21930 	* lib/Makefile.am: Update.
   21931 
   21932 2001-08-15  Akim Demaille  <akim (a] epita.fr>
   21933 
   21934 	Version 1.28c.
   21935 
   21936 2001-08-15  Marc Autret  <autret_m (a] epita.fr>
   21937 
   21938 	* src/reader.c (readgram): Indent output macro YYSTYPE.
   21939 	(packsymbols): Likewise.
   21940 	(output_token_defines): Likewise.
   21941 	* src/files.c: Standardize.
   21942 	(compute_header_macro): New.
   21943 	(defines_obstack_save): New. Use compute_header_macro.
   21944 	(output_files): Update. Use defines_obstack_save.
   21945 
   21946 2001-08-15  Akim Demaille  <akim (a] epita.fr>
   21947 
   21948 	* doc/bison.texinfo (Table of Symbols): Document
   21949 	YYSTACK_USE_ALLOCA.
   21950 
   21951 2001-08-15  Akim Demaille  <akim (a] epita.fr>
   21952 
   21953 	* missing: Update from CVS Automake.
   21954 	* config/config.guess, config/config.sub, config/texinfo.tex:
   21955 	Update from gnu.org.
   21956 
   21957 2001-08-15  Akim Demaille  <akim (a] epita.fr>
   21958 
   21959 	* Makefile.maint: Sync with CVS Autoconf.
   21960 
   21961 2001-08-14  Pascal Bart  <pascal.bart (a] epita.fr>
   21962 
   21963 	* doc/bison.texinfo: Include GNU Free Documentation License from
   21964 	`fdl.texi'.
   21965 	* doc/fdl.texi: Add to package.
   21966 
   21967 2001-08-14  Marc Autret  <autret_m (a] epita.fr>
   21968 
   21969 	Turn on %{source,header}_extension features.
   21970 
   21971 	* src/lex.c (percent_table): Un-CPP out header_extension and
   21972 	source_extension.
   21973 	* src/files.c (compute_exts_from_gf): Compare pointers with NULL.
   21974 	(compute_exts_from_src): Remove conditions. It restores priorities
   21975 	between options.
   21976 
   21977 2001-08-14  Marc Autret  <autret_m (a] epita.fr>
   21978 
   21979 	* src/files.c (compute_base_names): Add extensions computing when
   21980 	`--file-prefix' used.
   21981 	Standardize function calls.
   21982 
   21983 2001-08-13  Marc Autret  <autret_m (a] epita.fr>
   21984 
   21985 	* src/bison.simple (YYSTACK_USE_ALLOCA): Changed to allow users
   21986 	defining it (defined but null disables alloca).
   21987 
   21988 2001-08-13  Marc Autret  <autret_m (a] epita.fr>
   21989 
   21990 	* src/bison.simple (_yy_memcpy): CPP reformat.
   21991 
   21992 2001-08-13  Pascal Bart  <pascal.bart (a] epita.fr>
   21993 
   21994 	* tests/atconfig.in (CPPFLAGS): Fix.
   21995 
   21996 2001-08-10  Pascal Bart  <pascal.bart (a] epita.fr>
   21997 
   21998 	* doc/bison.texinfo: Include GNU General Public License from
   21999 	`gpl.texi'.
   22000 	* doc/gpl.texi: Add to package.
   22001 
   22002 2001-08-10  Marc Autret  <autret_m (a] epita.fr>
   22003 
   22004 	* src/print_graph.h: Fix.
   22005 	* src/reader.c (read_declarations): Use parse_header_extension_decl ().
   22006 
   22007 2001-08-10  Akim Demaille  <akim (a] epita.fr>
   22008 
   22009 	* src/system.h: Provide default declarations for stpcpy, strndup,
   22010 	and strnlen.
   22011 
   22012 2001-08-10  Robert Anisko  <anisko_r (a] epita.fr>
   22013 
   22014 	* doc/bison.texinfo (Locations): Update @$ stuff.
   22015 
   22016 2001-08-09  Robert Anisko  <anisko_r (a] epita.fr>
   22017 
   22018 	* src/bison.simple (YYLLOC_DEFAULT): Update.
   22019 	(yyparse): Adjust.
   22020 
   22021 2001-08-08  Marc Autret  <autret_m (a] epita.fr>
   22022 
   22023 	* doc/bison.texinfo: Change @samp{$<@dots{}>} to
   22024 	@samp{$<@dots{}>@var{n}} in Section Actions in Mid-Rule.
   22025 	Reported by Fabrice Bauzac.
   22026 
   22027 2001-08-08  Marc Autret  <autret_m (a] epita.fr>
   22028 
   22029 	* src/vcg_default.h: Use NULL instead of 0 to initialize pointers.
   22030 	* src/vcg.c (output_node): Fix.
   22031 	* src/vcg.h: Cleanup.
   22032 	* src/print_graph.c: Add comments.
   22033 	(node_output_size): New global variable. Simplify the formatting of
   22034 	the VCG graph output.
   22035 	(print_actions): Unused code is now used. It notifies the final state
   22036 	and no action states in the VCG graph. It also give the reduce actions.
   22037 	The `shift and goto' edges are red and the `go to state' edges are
   22038 	blue.
   22039 	Get the current node name and node_obstack by argument.
   22040 	(node_obstack): New variable.
   22041 	(print_state): Manage node_obstack.
   22042 	(print_core): Use node_obstack given by argument.
   22043 	A node is not only computed here but in print_actions also.
   22044 	(print_graph): CPP out useless code instead of commenting it.
   22045 
   22046 2001-08-07  Pascal Bart  <pascal.bart (a] epita.fr>
   22047 
   22048 	* tests/atconfig.in (CPPFLAGS): Fix.
   22049 
   22050 2001-08-07  Akim Demaille  <akim (a] epita.fr>
   22051 
   22052 	* src/print_graph.c (quote): New.
   22053 	(print_core): Use it.
   22054 
   22055 2001-08-06  Akim Demaille  <akim (a] epita.fr>, Marc Autret  <autret_m (a] epita.fr>
   22056 
   22057 	* src/vcg.c (complain.h): Include it.
   22058 	Unepitaize `return' invocations.
   22059 	[NDEBUG] (main): Remove.
   22060 	* src/vcg.h (node_t, edge_t, graph_t): Constify the char * members.
   22061 	* src/files.c (open_files): Initialize graph_obstack.
   22062 	* src/print_graph.c (print_actions): CPP out useless code.
   22063 	(print_core): Don't output the last `\n' in labels.
   22064 	Use `quote'.
   22065 	* src/files.c (output_files): Output the VCG file.
   22066 	* src/main.c (main): Invoke print_graph ();
   22067 
   22068 2001-08-06  Marc Autret  <autret_m (a] epita.fr>
   22069 
   22070 	Automaton VCG graph output.
   22071 	Using option ``-g'' or long option ``--graph'', you can generate
   22072 	a gram_filename.vcg file containing a VCG description of the LALR (1)
   22073 	automaton of your grammar.
   22074 
   22075 	* src/main.c: Call to print_graph() function.
   22076 	* src/getargs.h: Update.
   22077 	* src/getargs.c (options): Update to catch `-g' and `--graph' options.
   22078 	(graph_flag): New flag.
   22079 	(longopts): Update.
   22080 	(getargs): Add case `g'.
   22081 	* src/files.c (graph_obstack): New obstack struct.
   22082 	(open_files): Initialize new obstack.
   22083 	(output_files): Saves graph_obstack if required.
   22084 	* src/files.h (graph_obstack): New extern declaration.
   22085 	* src/Makefile.am: Add new source files.
   22086 
   22087 2001-08-06  Marc Autret  <autret_m (a] epita.fr>
   22088 
   22089 	* src/print_graph.c, src/print_graph.h (graph): New.
   22090 	* src/vcg.h: New file.
   22091 	* src/vcg.c: New file, VCG graph handling.
   22092 
   22093 2001-08-06  Marc Autret  <autret_m (a] epita.fr>
   22094 
   22095 	Add of %source_extension and %header_extension which specify
   22096 	the source or/and the header output file extension.
   22097 
   22098 	* src/files.c (compute_base_names): Remove initialisation of
   22099 	src_extension and header_extension.
   22100 	(compute_exts_from_gf): Update.
   22101 	(compute_exts_from_src): Update.
   22102 	(output_files): Update.
   22103 	* src/reader.c (parse_header_extension_decl): New.
   22104 	(parse_source_extension_decl): New.
   22105 	(read_declarations): New case statements for the new tokens.
   22106 	* src/lex.c (percent_table): Add entries for %source_extension
   22107 	and %header_extension.
   22108 	* src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.
   22109 
   22110 2001-08-06  Marc Autret  <autret_m (a] epita.fr>
   22111 
   22112 	* configure.in: Bump to 1.28c.
   22113 	* doc/bison.texinfo: Texinfo thingies.
   22114 
   22115 2001-08-04  Pascal Bart  <pascal.bart (a] epita.fr>
   22116 
   22117 	* tests/atconfig.in (CPPFLAGS): Add.
   22118 	* tests/calc.at (AT_CHECK): Use CPPFLAGS.
   22119 
   22120 2001-08-03  Akim Demaille  <akim (a] epita.fr>
   22121 
   22122 	Version 1.28b.
   22123 
   22124 2001-08-03  Akim Demaille  <akim (a] epita.fr>
   22125 
   22126 	* tests/Makefile.am (check-local): Ship testsuite.
   22127 	* tests/calc.at (_AT_DATA_CALC_Y): Prototype all the functions.
   22128 	Include `string.h'.
   22129 
   22130 2001-08-03  Akim Demaille  <akim (a] epita.fr>
   22131 
   22132 	* configure.in: Try using -Wformat when compiling.
   22133 
   22134 2001-08-03  Akim Demaille  <akim (a] epita.fr>
   22135 
   22136 	* configure.in: Bump to 1.28b.
   22137 
   22138 2001-08-03  Akim Demaille  <akim (a] epita.fr>
   22139 
   22140 	* src/complain.c: Adjust strerror_r portability issues.
   22141 
   22142 2001-08-03  Akim Demaille  <akim (a] epita.fr>
   22143 
   22144 	Version 1.28a.
   22145 
   22146 2001-08-03  Akim Demaille  <akim (a] epita.fr>
   22147 
   22148 	* src/getargs.c, src/getarg.h (skeleton)): Constify.
   22149 	* src/lex.c (literalchar): Avoid name clashes on `buf'.
   22150 	* src/getargs.c: Include complain.h.
   22151 	* src/files.c, src/files.h (skeleton_find): Avoid name clashes.
   22152 	* lib/quotearg.c, lib/quotearg.h: Update from fileutils 4.1.
   22153 
   22154 2001-08-03  Akim Demaille  <akim (a] epita.fr>
   22155 
   22156 	* src/reader.c (readgram): Display hidden chars in error messages.
   22157 
   22158 2001-08-03  Akim Demaille  <akim (a] epita.fr>
   22159 
   22160 	Update to gettext 0.10.39.
   22161 
   22162 2001-08-03  Akim Demaille  <akim (a] epita.fr>
   22163 
   22164 	* lib/strspn.c: New.
   22165 
   22166 2001-08-01  Marc Autret  <autret_m (a] epita.fr>
   22167 
   22168 	* doc/bison.texinfo: Update.
   22169 	* doc/bison.1 (mandoc): Update.
   22170 	* src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove .c and .h.
   22171 	* src/files.c: Support output files extensions computing.
   22172 	(src_extension): New static variable.
   22173 	(header_extension): New static variable.
   22174 	(tr): New function.
   22175 	(get_extension_index): New function, gets the index of an extension
   22176 	filename in a string.
   22177 	(compute_exts_from_gf): New function, computes extensions from the
   22178 	grammar file extension.
   22179 	(compute_exts_from_src): New functions, computes extensions from the
   22180 	C source file extension, file given by ``-o'' option.
   22181 	(compute_base_names): Update.
   22182 	(output_files): Update.
   22183 
   22184 2001-08-01  Robert Anisko  <anisko_r (a] epita.fr>
   22185 
   22186 	* doc/bison.texi: Document @$.
   22187 	(Locations): New section.
   22188 
   22189 2001-07-18  Akim Demaille  <akim (a] epita.fr>
   22190 
   22191 	* Makefile.maint, GNUmakefile: New, from Autoconf 2.52.
   22192 	* config/prev-version.txt, config/move-if-change: New.
   22193 	* Makefile.am: Adjust.
   22194 
   22195 2001-07-08  Pascal Bart  <pascal.bart (a] epita.fr>
   22196 
   22197 	* src/bison.simple (yyparse): Suppress warning `comparaison
   22198 	between signed and unsigned'.
   22199 
   22200 2001-07-05  Pascal Bart  <pascal.bart (a] epita.fr>
   22201 
   22202 	* src/getargs.h (raw_flag): Remove.
   22203 	* src/getargs.c: Die on `-r'/`--raw'.
   22204 	* src/lex.c (parse_percent_token): Die on `%raw'.
   22205 	* src/reader.c (output_token_defines): Suppress call to `raw_flag'.
   22206 	* tests/calc.at: Suppress test with option `--raw'.
   22207 
   22208 2001-07-14  Akim Demaille  <akim (a] epita.fr>
   22209 
   22210 	* config/: New.
   22211 	* configure.in: Require Autoconf 2.50.
   22212 	Update to gettext 0.10.38.
   22213 
   22214 2001-03-16  Akim Demaille  <akim (a] epita.fr>
   22215 
   22216 	* doc/bison.texinfo: ANSIfy the examples.
   22217 
   22218 2001-03-16  Akim Demaille  <akim (a] epita.fr>
   22219 
   22220 	* getargs.c (skeleton): New variable.
   22221 	(longopts): --skeleton is a new option.
   22222 	(shortopts, getargs): -S is a new option.
   22223 	* getargs.h: Declare skeleton.
   22224 	* output.c (output_parser): Use it.
   22225 
   22226 2001-03-16  Akim Demaille  <akim (a] epita.fr>
   22227 
   22228 	* m4/strerror_r.m4: New.
   22229 	* m4/error.m4: Run AC_FUNC_STRERROR_R.
   22230 	* lib/error.h, lib/error.c: Update.
   22231 
   22232 2001-03-16  Akim Demaille  <akim (a] epita.fr>
   22233 
   22234 	* src/getargs.c (longopts): Clean up.
   22235 
   22236 2001-02-21  Akim Demaille  <akim (a] epita.fr>
   22237 
   22238 	* src/reader.c (gensym): `gensym_count' is your own.
   22239 	Use a static buf to create the symbol name, as token_buffer is no
   22240 	longer a buffer.
   22241 
   22242 2001-02-08  Akim Demaille  <akim (a] epita.fr>
   22243 
   22244 	* src/conflicts.c (conflict_report): Be sure not to append to res
   22245 	between two calls, which could happen if both first sprintf were
   22246 	skipped, but not the first cp += strlen.
   22247 
   22248 2001-02-08  Akim Demaille  <akim (a] epita.fr>
   22249 
   22250 	* lib/memchr.c, lib/stpcpy.c, lib/strndup.c, lib/strnlen.c:
   22251 	New, from fileutils 4.0.37.
   22252 	* configure.in: Require Autoconf 2.49c.  I took some time before
   22253 	making this decision.  This is the only way out for portability
   22254 	issues in Bison, it would mean way too much duplicate effort to
   22255 	import in Bison features implemented in 2.49c since 2.13.
   22256 	AC_REPLACE_FUNCS and AC_CHECK_DECLS the functions above.
   22257 
   22258 2001-02-02  Akim Demaille  <akim (a] epita.fr>
   22259 
   22260 	* lib/malloc.c, lib/realloc.c: New, from the fileutils 4.0.37.
   22261 	* lib/xalloc.h, lib/xmalloc.c: Update.
   22262 
   22263 2001-01-19  Akim Demaille  <akim (a] epita.fr>
   22264 
   22265 	Get rid of the ad hoc handling of token_buffer in the scanner: use
   22266 	the obstacks.
   22267 
   22268 	* src/lex.c (token_obstack): New.
   22269 	(init_lex): Initialize it.  No longer call...
   22270 	(grow_token_buffer): this.  Remove it.
   22271 	Adjust all the places which used it to use the obstack.
   22272 
   22273 2001-01-19  Akim Demaille  <akim (a] epita.fr>
   22274 
   22275 	* src/lex.h: Rename all the tokens:
   22276 	s/\bENDFILE\b/tok_eof/g;
   22277 	s/\bIDENTIFIER\b/tok_identifier/g;
   22278 	etc.
   22279 	Let them be enums, not #define, to ease debugging.
   22280 	Adjust all the code.
   22281 
   22282 2001-01-18  Akim Demaille  <akim (a] epita.fr>
   22283 
   22284 	* src/lex.h (MAXTOKEN, maxtoken, grow_token_buffer): Remove, private.
   22285 	* src/lex.c (maxtoken, grow_token_buffer): Static.
   22286 
   22287 2001-01-18  Akim Demaille  <akim (a] epita.fr>
   22288 
   22289 	Since we now use obstacks, more % directives can be enabled.
   22290 
   22291 	* src/lex.c (percent_table): Also accept `%yacc',
   22292 	`%fixed_output_files', `%defines', `%no_parser', `%verbose', and
   22293 	`%debug'.
   22294 	Handle the actions for `%semantic_parser' and `%pure_parser' here,
   22295 	instead of returning a token.
   22296 	* src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused.
   22297 	* src/reader.c (read_declarations): Adjust.
   22298 	* src/files.c (open_files): Don't call `compute_base_names', don't
   22299 	compute `attrsfile' since they depend upon data which might be
   22300 	*in* the input file now.
   22301 	(output_files): Do it here.
   22302 	* src/output.c (output_headers): Document the fact that this patch
   22303 	introduces a guaranteed SEGV for semantic parsers.
   22304 	* doc/bison.texinfo: Document them.
   22305 	* tests/suite.at: Exercise these %options.
   22306 
   22307 2000-12-20  Akim Demaille  <akim (a] epita.fr>
   22308 
   22309 	Also handle the output file (--verbose) with obstacks.
   22310 
   22311 	* files.c (foutput): Remove.
   22312 	(output_obstack): New.
   22313 	Adjust all dependencies.
   22314 	* src/conflicts.c: Return a string.
   22315 	* src/system.h (obstack_grow_string): Rename as...
   22316 	(obstack_sgrow): this.  Be ready to work with non literals.
   22317 	(obstack_fgrow4): New.
   22318 
   22319 2000-12-20  Akim Demaille  <akim (a] epita.fr>
   22320 
   22321 	* src/files.c (open_files): Fix the computation of short_base_name
   22322 	in the case of `-o foo.tab.c'.
   22323 
   22324 2000-12-20  Akim Demaille  <akim (a] epita.fr>
   22325 
   22326 	* src/reader.c (copy_string, copy_comment, copy_comment2, copy_at)
   22327 	(copy_dollar): Now that everything uses obstacks, get rid of the
   22328 	FILE * parameters.
   22329 
   22330 2000-12-20  Akim Demaille  <akim (a] epita.fr>
   22331 
   22332 	* src/files.c (open_files): Actually the `.output' file is based
   22333 	on the short_base_name, not base_name.
   22334 	* tests/suite.at (Checking output file names): Adjust.
   22335 
   22336 2000-12-20  Akim Demaille  <akim (a] epita.fr>
   22337 
   22338 	* src/bison.s1: Remove, we now use directly...
   22339 	* src/bison.simple: this.
   22340 	* src/Makefile.am: Use pkgdata instead of data.
   22341 
   22342 2000-12-20  Akim Demaille  <akim (a] epita.fr>
   22343 
   22344 	* src/files.c (guard_obstack): New.
   22345 	(open_files): Initialize it.
   22346 	(output_files): Dump it...
   22347 	* src/files.h: Export it.
   22348 	* src/reader.c (copy_guard): Use it.
   22349 
   22350 2000-12-19  Akim Demaille  <akim (a] epita.fr>
   22351 
   22352 	* src/files.c (outfile, defsfile, actfile): Removed as global
   22353 	vars.
   22354 	(open_files): Don't compute them.
   22355 	(output_files): Adjust.
   22356 	(base_name, short_base_name): Be global.
   22357 	Adjust dependencies.
   22358 
   22359 2000-12-19  Akim Demaille  <akim (a] epita.fr>
   22360 
   22361 	* src/files.c (strsuffix): New.
   22362 	(stringappend): Be just like strcat but allocate.
   22363 	(base_names): Eve out from open_files.
   22364 	Try to simplify the rather hairy computation of base_name and
   22365 	short_base_name.
   22366 	(open_files): Use it.
   22367 	* tests/suite.at (Checking output file names): New test.
   22368 
   22369 2000-12-19  Akim Demaille  <akim (a] epita.fr>
   22370 
   22371 	* src/system.h (obstack_grow_literal_string): Rename as...
   22372 	(obstack_grow_string): this.
   22373 	* src/output.c (output_parser): Recognize `%% actions' instead of
   22374 	`$'.
   22375 	* src/bison.s1: s/$/%% actions/.
   22376 	* src/bison.hairy: Likewise.
   22377 
   22378 2000-12-19  Akim Demaille  <akim (a] epita.fr>
   22379 
   22380 	* src/output.c (output_parser): Compute the `#line' lines when
   22381 	there are.
   22382 	* src/Makefile.am (bison.simple): Be a simple copy of bison.s1.
   22383 	Suggested by Hans Aberg.
   22384 
   22385 2000-12-19  Akim Demaille  <akim (a] epita.fr>
   22386 
   22387 	Let the handling of the skeleton files be local to the procedures
   22388 	that use it.
   22389 
   22390 	* src/files.c (xfopen, xfclose, skeleton_find, guardfile): No
   22391 	longer static.
   22392 	(fparser, open_extra_files): Remove.
   22393 	(open_files, output_files): Don't take care of fparser.
   22394 	* src/files.h: Adjust.
   22395 	* src/output.c (output_parser): Open and close the file to the
   22396 	skeleton.
   22397 	* src/reader.c (read_declarations): When %semantic_parser, open
   22398 	fguard.
   22399 
   22400 2000-12-19  Akim Demaille  <akim (a] epita.fr>
   22401 
   22402 	* src/file.h (BISON_SIMPLE, BISON_HAIRY): Move from here...
   22403 	* src/system.h (BISON_SIMPLE, BISON_HAIRY): ... to here.
   22404 
   22405 2000-12-19  Akim Demaille  <akim (a] epita.fr>
   22406 
   22407 	* src/files.c (open_files): Yipee!  We no longer need all the code
   22408 	looking for `/tmp' since we have no tmp file.
   22409 
   22410 2000-12-19  Akim Demaille  <akim (a] epita.fr>
   22411 
   22412 	* src/system.h (EXT_TAB, EXT_OUTPUT, EXT_STYPE_H, EXT_GUARD_C):
   22413 	New macros.
   22414 	* src/files.c (open_files): Less dependency on MSDOS etc.
   22415 
   22416 2000-12-14  Akim Demaille  <akim (a] epita.fr>
   22417 
   22418 	* src/bison.s1 (YYLLOC_DEFAULT): New macro.
   22419 	Provide a default definition.
   22420 	Use it when executing the default @ action.
   22421 	* src/reader.c (reader_output_yylsp): No longer include
   22422 	`timestamp' and `text' in the default YYLTYPE.
   22423 
   22424 2000-12-12  Akim Demaille  <akim (a] epita.fr>
   22425 
   22426 	* src/reader.c (copy_definition, parse_union_decl, copy_action)
   22427 	(copy_guard): Quote the file names.
   22428 	Reported by Laurent Mascherpa.
   22429 
   22430 2000-12-12  Akim Demaille  <akim (a] epita.fr>
   22431 
   22432 	* src/output.c (output_headers, output_program, output): Be sure
   22433 	to escape special characters when outputting filenames.
   22434 	(ACTSTR_PROLOGUE, ACTSTR_EPILOGUE): Remove.
   22435 	(output_headers): Don't depend on them, Use ACTSTR.
   22436 
   22437 2000-11-17  Akim Demaille  <akim (a] epita.fr>
   22438 
   22439 	* lib/obstack.h: Formatting changes.
   22440 	(obstack_grow, obstack_grow0): Don't cast WHERE at all: it
   22441 	prevents type checking.
   22442 	(obstack_ptr_grow, obstack_ptr_grow_fast): When assigning, don't
   22443 	cast the value to (void *): assigning a `foo *' to a `void *'
   22444 	variable is valid.
   22445 	(obstack_int_grow, obstack_int_grow_fast): Don't cast AINT to int.
   22446 	* src/reader.c (parse_union_decl): Typo: use obstack_1grow to
   22447 	append characters.
   22448 
   22449 2000-11-17  Akim Demaille  <akim (a] epita.fr>
   22450 
   22451 	* tests/Makefile.am (suite.m4, regression.m4, calc.m4): Rename
   22452 	as...
   22453 	(suite.m4, regression.m4, calc.m4): these.
   22454 	* tests/atgeneral.m4: Update from CVS Autoconf.
   22455 
   22456 2000-11-17  Akim Demaille  <akim (a] epita.fr>
   22457 
   22458 	* tests/regression.m4 (%union and --defines): New test,
   22459 	demonstrating a current bug in the obstack implementation.
   22460 
   22461 2000-11-17  Akim Demaille  <akim (a] epita.fr>
   22462 
   22463 	* src/bison.s1 (_YY_DECL_VARIABLES, YY_DECL_VARIABLES): New
   22464 	macros.
   22465 	Use them to declare the variables which are global or local to
   22466 	`yyparse'.
   22467 
   22468 2000-11-17  Akim Demaille  <akim (a] epita.fr>
   22469 
   22470 	* acconfig.h: Remove, no longer used.
   22471 
   22472 2000-11-07  Akim Demaille  <akim (a] epita.fr>
   22473 
   22474 	* src: s/Copyright (C)/Copyright/g.
   22475 
   22476 2000-11-07  Akim Demaille  <akim (a] epita.fr>
   22477 
   22478 	* src/reader.c (reader): #define YYLSP_NEEDED to 1 instead of just
   22479 	defining.
   22480 	* src/bison.s1: s/#ifdef YYLSP_NEEDED/#if YYLSP_NEEDED/.
   22481 
   22482 2000-11-07  Akim Demaille  <akim (a] epita.fr>
   22483 
   22484 	* src/bison.s1 (YYLEX): Use #if instead of #ifdef.
   22485 	Merge in a single CPP if/else.
   22486 
   22487 2000-11-07  Akim Demaille  <akim (a] epita.fr>
   22488 
   22489 	* src/output.c (output): Remove useless variables.
   22490 	* lib/obstack.c (obstack_grow, obstack_grow0): Rename the second
   22491 	argument `data' for consistency with the prototypes.
   22492 	Qualify it `const'.
   22493 	(obstack_copy, obstack_copy0): Rename the second argument as
   22494 	`address' for consistency.  Qualify it `const'.
   22495 	* lib/obstack.h (obstack_copy, obstack_copy0, obstack_grow)
   22496 	(obstack_grow0, obstack_ptr_grow, obstack_ptr_grow_fast): Qualify
   22497 	`const' their input argument (`data' or `address').
   22498 	Adjust the corresponding macros to include `const' in casts.
   22499 
   22500 2000-11-03  Akim Demaille  <akim (a] epita.fr>
   22501 
   22502 	* src/Makefile.am (INCLUDES): s/PFILE/BISON_SIMPLE/.
   22503 	s/PFILE1/BISON_HAIRY/.
   22504 	Adjust dependencies.
   22505 
   22506 2000-11-03  Akim Demaille  <akim (a] epita.fr>
   22507 
   22508 	For some reason, this was not applied.
   22509 
   22510 	* src/files.c [VMS]: No longer include `ssdef.h', no longer define
   22511 	`unlink': it's no longer used.
   22512 
   22513 2000-11-03  Akim Demaille  <akim (a] epita.fr>
   22514 
   22515 	* src/files.c (skeleton_find): New function, eved out of...
   22516 	(open_files, open_extra_files): here.
   22517 
   22518 2000-11-03  Akim Demaille  <akim (a] epita.fr>
   22519 
   22520 	Don't use `atexit'.
   22521 
   22522 	* src/files.c (obstack_save): New function.
   22523 	(done): Rename as...
   22524 	(output_files): this.
   22525 	Use `obstack_save'.
   22526 	* src/main.c (main): Don't use `atexit' to register `done', since
   22527 	it no longer has to remove tmp files, just call `output_files'
   22528 	when there are no errors.
   22529 
   22530 2000-11-02  Akim Demaille  <akim (a] epita.fr>
   22531 
   22532 	* src/files.c [VMS]: No longer include `ssdef.h', no longer define
   22533 	`unlink': it's no longer used.
   22534 	* src/files.h: Formatting changes.
   22535 
   22536 2000-11-02  Akim Demaille  <akim (a] epita.fr>
   22537 
   22538 	Remove the last uses of mktemp and unlink/delete.
   22539 
   22540 	* src/files.c (fdefines, ftable): Removed.
   22541 	(defines_ostack, table_obstack): New.
   22542 	Adjust dependencies of the former into uses of the latter.
   22543 	* src/output.c (output_short_or_char_table, output_short_table):
   22544 	Convert to using obstacks.
   22545 	* src/reader.c (copy_comment2): Accept one FILE * and two
   22546 	obstacks.
   22547 	(output_token_defines, reader_output_yylsp): Use obstacks.
   22548 	* src/system.h (obstack_fgrow3): New.
   22549 	* po/POTFILES.in: Adjust.
   22550 
   22551 2000-11-01  Akim Demaille  <akim (a] epita.fr>
   22552 
   22553 	Change each use of `fattrs' into a use of `attrs_obstack'.
   22554 
   22555 	* src/reader.c (copy_at): Typo: s/yylloc/yyloc/.
   22556 	* src/files.c (fattrs): Remove.
   22557 	(attrs_obstack): New.
   22558 	Adjust all dependencies.
   22559 	(done): If SEMANTIC_PARSER, dump attrs_obstack into attrsfile.
   22560 
   22561 2000-11-01  Akim Demaille  <akim (a] epita.fr>
   22562 
   22563 	Introduce obstacks.
   22564 	Change each use of `faction' into a use of `action_obstack'.
   22565 
   22566 	* lib/obstack.h, lib/obstack.c: New files.
   22567 	* src/files.c (faction): Remove.
   22568 	(action_obstack): New.
   22569 	Adjust all dependencies.
   22570 
   22571 2000-10-20  Akim Demaille  <akim (a] epita.fr>
   22572 
   22573 	* lib/quote.h (PARAMS): New macro.  Use it.
   22574 
   22575 2000-10-16  Akim Demaille  <akim (a] epita.fr>
   22576 
   22577 	* src/output.c (output_short_or_char_table): New function.
   22578 	(output_short_table, output_token_translations): Use it.
   22579 	(goto_actions): Use output_short_table.
   22580 
   22581 2000-10-16  Akim Demaille  <akim (a] epita.fr>
   22582 
   22583 	* src/symtab.c (bucket_new): New function.
   22584 	(getsym): Use it.
   22585 
   22586 	* src/output.c (output_short_table): New argument to display the
   22587 	comment associated with the table.
   22588 	Adjust dependencies.
   22589 	(output_gram): Use it.
   22590 	(output_rule_data): Nicer output layout for YYTNAME.
   22591 
   22592 2000-10-16  Akim Demaille  <akim (a] epita.fr>
   22593 
   22594 	* src/lex.c (read_typename): New function.
   22595 	(lex): Use it.
   22596 	* src/reader.c (copy_dollar): Likewise.
   22597 
   22598 2000-10-16  Akim Demaille  <akim (a] epita.fr>
   22599 
   22600 	* src/reader.c (copy_comment2): Expect the input stream to be on
   22601 	the `/' which is suspected to open a comment, instead of being
   22602 	called after `//' or `/*' was read.
   22603 	(copy_comment, copy_definition, parse_union_decl, copy_action)
   22604 	(copy_guard): Adjust.
   22605 
   22606 2000-10-16  Akim Demaille  <akim (a] epita.fr>
   22607 
   22608 	* src/reader.c (parse_expect_decl): Use `skip_white_space' and
   22609 	`read_signed_integer'.
   22610 
   22611 2000-10-16  Akim Demaille  <akim (a] epita.fr>
   22612 
   22613 	* src/reader.c (copy_dollar): New function.
   22614 	(copy_guard, copy_action): Use it.
   22615 
   22616 2000-10-16  Akim Demaille  <akim (a] epita.fr>
   22617 
   22618 	* lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c:
   22619 	* m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4:
   22620 	New files, from Fileutils 4.0.27.
   22621 	* src/main.c (printable_version): Remove.
   22622 	* src/lex.c, src/reader.c: Use `quote'.
   22623 
   22624 2000-10-04  Akim Demaille  <akim (a] epita.fr>
   22625 
   22626 	* lib/error.c, lib/error.h: New files, needed by xmalloc.c.
   22627 
   22628 2000-10-04  Akim Demaille  <akim (a] epita.fr>
   22629 
   22630 	* doc/bison.texinfo: Various typos spotted by Neil Booth.
   22631 
   22632 2000-10-04  Akim Demaille  <akim (a] epita.fr>
   22633 
   22634 	When a literal string is used to define two different tokens,
   22635 	`bison -v' segfaults.
   22636 	Reported by Piotr Gackiewicz, and fixed by Neil Booth.
   22637 
   22638 	* tests/regression.m4: New file.
   22639 	Include the core of the sample provided by Piotr Gackiewicz.
   22640 	* src/reader.c (parse_token_decl): Diagnose bad cases, and proceed
   22641 	properly.
   22642 
   22643 2000-10-04  Akim Demaille  <akim (a] epita.fr>
   22644 
   22645 	* src/reader.c (parse_expect_decl): Keep `count' within the size
   22646 	of `buffer'.
   22647 	From Neil Booth.
   22648 
   22649 2000-10-02  Paul Eggert  <eggert (a] twinsun.com>
   22650 
   22651 	* bison.s1 (yyparse): Assign the default value
   22652 	unconditionally, to avoid a GCC warning and make the parser a
   22653 	tad smaller.
   22654 
   22655 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22656 
   22657 	* src/getargs.c (getargs): Don't dump `--help' on unrecognized
   22658 	options.
   22659 
   22660 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22661 
   22662 	* src/derives.c, src/print.c, src/reduce.c: To ease the
   22663 	translation, move some `\n' out of the translated strings.
   22664 
   22665 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22666 
   22667 	The location tracking mechanism is precious for parse error
   22668 	messages.  Nevertheless, it is enabled only when `@n' is used in
   22669 	the grammar, which is a different issue (you can use it in error
   22670 	message, but not in the grammar per se).  Therefore, there should
   22671 	be another means to enable it.
   22672 
   22673 	* src/getargs.c (getargs): Support `--locations'.
   22674 	(usage): Report it.
   22675 	* src/getargs.h (locationsflag): Export it.
   22676 	* src/lex.c (percent_table): Support `%locations'.
   22677 	* src/reader.c (yylsp_needed): Remove this variable, now replaced
   22678 	with `locationsflag'.
   22679 	* doc/bison.texinfo: Document `--locations' and `%locations'.
   22680 	Sort the options.
   22681 	* tests/calc.m4: Test it.
   22682 
   22683 	For regularity of the names, replace each
   22684 	(nolineflag, toknumflag, rawtokenumflag, noparserflag): with...
   22685 	(no_lineflag, token_tableflag, rawflag, no_parserflag): this.
   22686 	In addition replace each `flag' with `_flag'.
   22687 
   22688 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22689 
   22690 	Also test parse error messages, including with YYERROR_VERBOSE.
   22691 
   22692 	* tests/calc.m4 (calc.y): Add support for `exp = exp' (non
   22693 	associative).
   22694 	Use it to check the computations.
   22695 	Use it to check `nonassoc' is honored.
   22696 	(AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed
   22697 	`--yyerror-verbose'.
   22698 	(_AT_CHECK_CALC): Adjust to this option.
   22699 	(_AT_CHECK_CALC_ERROR): New macro to check parse error messages.
   22700 
   22701 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22702 
   22703 	Test also `--verbose', `--defines' and `--name-prefix'.  Testing
   22704 	the latter demonstrates a flaw in the handling of non debugging
   22705 	parsers introduced by myself on 2000-03-16: `#define yydebug 0'
   22706 	was used in order to simplify:
   22707 
   22708 	#if YYDEBUG
   22709 	if (yydebug)
   22710 	{
   22711 	...
   22712 	}
   22713 	#endif
   22714 
   22715 	into
   22716 
   22717 	if (yydebug)
   22718 	{
   22719 	...
   22720 	}
   22721 
   22722 	unfortunately this leads to a CPP conflict when
   22723 	`--name-prefix=foo' is used since it produces `#define yydebug
   22724 	foodebug'.
   22725 
   22726 	* src/bison.s1 [!YYDEBUG]: Do not define yydebug.
   22727 	(YYDPRINTF): New macro.
   22728 	Spread its use.
   22729 	* tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from
   22730 	the bison options.
   22731 	Also test `--verbose', `--defines' and `--name-prefix'.
   22732 
   22733 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22734 
   22735 	Improve the readability of the produced parsers.
   22736 
   22737 	* src/bison.s1: Formatting changes.
   22738 	Improve the comment related to the `$' mark.
   22739 	(yydefault): Don't fall through to `yyresume': `goto' there.
   22740 	* src/output.c (output_parser): When the `$' is met, skip the end
   22741 	of its line.
   22742 	New variable, `number_of_dollar_signs', to check there's exactly
   22743 	one `$' in the parser skeleton.
   22744 
   22745 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22746 
   22747 	* lib/xstrdup.c: New file, from the fileutils.
   22748 	* src/reader.c (parse_token_decl, get_type_name, parse_type_decl)
   22749 	(parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup'
   22750 	instead of strlen + xmalloc + strcpy.
   22751 	* src/symtab.c (copys): Remove, use xstrdup instead.
   22752 
   22753 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22754 
   22755 	* src/gram.h (associativity): New enum type which replaces the
   22756 	former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with
   22757 	`right_assoc', `left_assoc' and `non_assoc'.
   22758 	Adjust all dependencies.
   22759 	* src/reader.c: Formatting changes.
   22760 	(LTYPESTR): Don't define it, use it as a literal in
   22761 	`reader_output_yylsp'.
   22762 	* src/symtab.h (symbol_class): New enum type which replaces the
   22763 	former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with
   22764 	`sunknown', `stoken and `snterm'.
   22765 
   22766 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22767 
   22768 	* src/getargs.c (fixed_outfiles): Rename as...
   22769 	(yaccflag): for consistency and accuracy.
   22770 	Adjust dependencies.
   22771 
   22772 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22773 
   22774 	Use the more standard files `xalloc.h' and `xmalloc.c' instead of
   22775 	Bison's `allocate.c' and `alloc.h'.  This patch was surprisingly
   22776 	difficult and introduced a lot of core dump.  It turns out that
   22777 	Bison used an implementation of `xmalloc' based on `calloc', and
   22778 	at various places it does depend upon the initialization to 0.  I
   22779 	have not tried to isolate the pertinent places, and all the former
   22780 	calls to Bison's `xmalloc' are now using `XCALLOC'.  Someday,
   22781 	someone should address this issue.
   22782 
   22783 	* src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove.
   22784 	* lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New
   22785 	files.
   22786 	Adjust dependencies.
   22787 	* src/warshall.h: New file.
   22788 	Propagate.
   22789 
   22790 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22791 
   22792 	Various anti-`extern in *.c' changes.
   22793 
   22794 	* src/system.h: Include `assert.h'.
   22795 
   22796 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22797 
   22798 	* src/state.h (nstates, final_state, first_state, first_shift)
   22799 	(first_reduction): Move their exportation from here...
   22800 	* src/LR0.h: to here.
   22801 	Adjust dependencies.
   22802 	* src/getargs.c (statisticsflag): New variable.
   22803 	Add support for `--statistics'.
   22804 	Adjust dependencies.
   22805 
   22806 	Remove a lot of now useless `extern' statements in most files.
   22807 
   22808 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22809 
   22810 	* src/LR0.h: New file.
   22811 	Propagate its use.
   22812 
   22813 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22814 
   22815 	* src/print.h: New file.
   22816 	Propagate its use.
   22817 	* src/print.c: Formatting and ordering changes.
   22818 	(verbose, terse): Replace with...
   22819 	(print_results): this new function.
   22820 	Adjust dependencies.
   22821 
   22822 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22823 
   22824 	* src/conflicts.c (conflict_report): New function.
   22825 	(conflict_log, verbose_conflict_log): Replace with...
   22826 	(print_conflicts): this function.
   22827 	Adjust dependencies.
   22828 	* src/conflicts.h: New file.
   22829 	Propagate its inclusion.
   22830 
   22831 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22832 
   22833 	* src/nullable.h: New file.
   22834 	Propagate its inclusion.
   22835 	* src/nullable.c: Formatting changes.
   22836 
   22837 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22838 
   22839 	* src/reduce.h: New file.
   22840 	Propagate its inclusion.
   22841 	* src/reduce.c: Topological sort and other formatting changes.
   22842 	(bool, TRUE, FALSE): Move their definition to...
   22843 	* src/system.h: here.
   22844 
   22845 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22846 
   22847 	* src/files.c: Formatting changes.
   22848 	(tryopen, tryclose, openfiles): Rename as...
   22849 	(xfopen, xfclose, open_files): this.
   22850 	(stringappend): static.
   22851 	* src/files.h: Complete the list of exported symbols.
   22852 	Propagate its use.
   22853 
   22854 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22855 
   22856 	* src/reader.h: New file.
   22857 	Propagate its use instead of tedious list of `extern' and
   22858 	prototypes.
   22859 	* src/reader.c: Formatting changes, topological sort,
   22860 	s/register//.
   22861 
   22862 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22863 
   22864 	* src/lex.h: Prototype `lex.c' exported functions.
   22865 	* src/reader.c: Adjust.
   22866 	* src/lex.c: Formatting changes.
   22867 	(safegetc): Rename as...
   22868 	(xgetc): this.
   22869 
   22870 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22871 
   22872 	* src/lalr.h: New file.
   22873 	Propagate its inclusion instead of prototypes and `extern'.
   22874 	* src/lalr.c: Formatting changes, topological sorting etc.
   22875 
   22876 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22877 
   22878 	* src/output.c (token_actions): Introduce a temporary array,
   22879 	YYDEFACT, that makes it possible for this function to use
   22880 	output_short_table.
   22881 
   22882 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22883 
   22884 	`user_toknums' is output as a `short[]' in `output.c', while it is
   22885 	defined as a `int[]' in `reader.c'.  For consistency with the
   22886 	other output tables, `user_toknums' is now defined as a table of
   22887 	shorts.
   22888 
   22889 	* src/reader.c (user_toknums): Be a short table instead of an int
   22890 	table.
   22891 	Adjust dependencies.
   22892 
   22893 	Factor the short table outputs.
   22894 
   22895 	* src/output.c (output_short_table): New function.
   22896 	* src/output.c (output_gram, output_stos, output_rule_data)
   22897 	(output_base, output_table, output_check):  Use it.
   22898 
   22899 2000-10-02  Akim Demaille  <akim (a] epita.fr>
   22900 
   22901 	* src/output.c (output): Topological sort of the functions, in
   22902 	order to get rid of the `static' prototypes.
   22903 	No longer use `register'.
   22904 	* src/output.h: New file.
   22905 	Propagate its inclusion in files explicitly prototyping functions
   22906 	from output.c.
   22907 
   22908 2000-09-21  Akim Demaille  <akim (a] epita.fr>
   22909 
   22910 	* src/atgeneral.m4: Update from Autoconf.
   22911 
   22912 2000-09-21  Akim Demaille  <akim (a] epita.fr>
   22913 
   22914 	* src/closure.h: New file.
   22915 	* src/closure.c: Formatting changes, topological sort over the
   22916 	functions, use of closure.h.
   22917 	(initialize_closure, finalize_closure):  Rename as...
   22918 	(new_closure, free_closure): these.  Adjust dependencies.
   22919 	* src/LR0.c: Formatting changes, topological sort, use of
   22920 	cloture.h.
   22921 	(initialize_states): Rename as...
   22922 	(new_states): this.
   22923 	* src/Makefile.am (noinst_HEADERS): Adjust.
   22924 
   22925 2000-09-20  Akim Demaille  <akim (a] epita.fr>
   22926 
   22927 	* src/acconfig.h: Don't protect config.h against multiple
   22928 	inclusion.
   22929 	Don't define PARAMS.
   22930 	* src/system.h: Define PARAMS.
   22931 	Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the
   22932 	purpose of config.h.  system.h must not try to fix wrong
   22933 	definitions in config.h.
   22934 
   22935 2000-09-20  Akim Demaille  <akim (a] epita.fr>
   22936 
   22937 	* src/derives.h: New file.
   22938 	* src/main.c, src/derives.h: Use it.
   22939 	Formatting changes.
   22940 	* src/Makefile.am (noinst_HEADERS): Adjust.
   22941 
   22942 2000-09-20  Akim Demaille  <akim (a] epita.fr>
   22943 
   22944 	* tests/atgeneral.m4: Update from Autoconf.
   22945 	* tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC)
   22946 	(AT_CHECK_CALC): New macros.
   22947 	Use these macros to test bison with options `', `--raw',
   22948 	`--debug', `--yacc', `--yacc --debug'.
   22949 
   22950 2000-09-19  Akim Demaille  <akim (a] epita.fr>
   22951 
   22952 	* src/output.c: Formatting changes.
   22953 	* src/machine.h: Remove, leaving its contents in...
   22954 	* src/system.h: here.
   22955 	Include stdio.h.
   22956 	Adjust all dependencies on stdio.h and machine.h.
   22957 	* src/getargs.h: New file.
   22958 	Let all `extern' declarations about getargs.c be replaced with
   22959 	inclusion of `getargs.h'.
   22960 	* src/Makefile.am (noinst_HEADERS): Adjust.
   22961 
   22962 	* tests/calc.m4 (yyin): Be initialized in main, not on the global
   22963 	scope.
   22964 	(yyerror): Returns void, not int.
   22965 	* doc/bison.texinfo: Formatting changes.
   22966 
   22967 2000-09-19  Akim Demaille  <akim (a] epita.fr>
   22968 
   22969 	* tests/calc.m4 (calc.y): Do not assign to stdin, as it's not
   22970 	portable.
   22971 
   22972 2000-09-18  Akim Demaille  <akim (a] epita.fr>
   22973 
   22974 	* configure.in: Append WARNING_CFLAGS to CFLAGS.
   22975 	* src/Makefile.am (INCLUDES): Don't.
   22976 	Be ready to fetch headers in lib/.
   22977 
   22978 2000-09-18  Akim Demaille  <akim (a] epita.fr>
   22979 
   22980 	* doc/bison.texinfo: Update the copyright.
   22981 	ANSIfy and GNUify the examples.
   22982 	Remove the old menu.
   22983 
   22984 2000-09-18  Akim Demaille  <akim (a] epita.fr>
   22985 
   22986 	First set of tests: use the `calc' example from the documentation.
   22987 
   22988 	* src/bison.s1 (yyparse): Condition the code using `yytname' which
   22989 	is defined only when YYDEBUG is.
   22990 	* m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13.
   22991 	* src/files.c (tryopen, tryclose): Formatting changes.
   22992 	Move to the top and be static.
   22993 	* src/reader.c (read_signed_integer): Likewise.
   22994 	* tests/calc.m4: New file.
   22995 	* Makefile.am, suite.m4: Adjust.
   22996 	* m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY.
   22997 
   22998 2000-09-18  Akim Demaille  <akim (a] epita.fr>
   22999 
   23000 	Add support for an Autotest test suite for Bison.
   23001 
   23002 	* m4/m4.m4, m4/atconfig.m4: New files.
   23003 	* m4/Makefile.am (EXTRA_DIST): Adjust.
   23004 	* tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New
   23005 	files.
   23006 	* src/getargs.c: Display a more standard --version message.
   23007 	* src/reader.c (reader): Formatting changes.
   23008 	No longer depend upon VERSION_STRING.
   23009 	* configure.in: No longer use `dnl'.
   23010 	Set up the test suite and the new directory `tests/.
   23011 	(VERSION_STRING): Remove.
   23012 
   23013 2000-04-14  Akim Demaille  <akim (a] epita.fr>
   23014 
   23015 	* src/reader.c (copy_comment2): New function, same as former
   23016 	`copy_comment', but outputs into two FILE *.
   23017 	(copy_comment): Use it.
   23018 	(parse_union_decl): Use it.
   23019 	(get_type, parse_start_decl): Use the same `invalid' message.
   23020 	(parse_start_decl, parse_union_decl): Use the same `multiple'
   23021 	message.
   23022 	(parse_union_decl, copy_guard, copy_action): Use the same
   23023 	`unmatched' message.
   23024 	* m4/Makefile.am (EXTRA_DIST): Add `warning.m4'.
   23025 
   23026 2000-03-31  Akim Demaille  <akim (a] epita.fr>
   23027 
   23028 	* src/files.c (tryopen, tryclose): Move to the top.
   23029 	Be static.
   23030 
   23031 2000-03-31  Akim Demaille  <akim (a] epita.fr>
   23032 
   23033 	* src/main.c (main): Don't call `done', exit does it.
   23034 
   23035 2000-03-31  Akim Demaille  <akim (a] epita.fr>
   23036 
   23037 	* allocate.c: s/return (foo)/return foo/.
   23038 	* lalr.c: Likewise.
   23039 	* LR0.c: Likewise.
   23040 	* output.c: Likewise.
   23041 	* reader.c: Likewise.
   23042 	* symtab.c: Likewise.
   23043 	* vmsgetargs.c: Likewise.
   23044 
   23045 2000-03-31  Akim Demaille  <akim (a] epita.fr>
   23046 
   23047 	Clean up the error reporting functions.
   23048 
   23049 	* src/report.c: New file.
   23050 	* src/report.h: Likewise.
   23051 	* src/Makefile.am: Adjust.
   23052 	* m4/error.m4: New file.
   23053 	* m4/Makefile.am: Adjust.
   23054 	* configure.in (jm_PREREQ_ERROR): Call it.
   23055 	* src/main.c (int_to_string, banner, fatal_banner, warn_banner):
   23056 	Remove.
   23057 	(fatal, fatals): Remove.  All callers use complain.c::fatal.
   23058 	(warn, warni, warns, warnss, warnss): Remove.  All callers use
   23059 	complain.c::complain.
   23060 	(toomany): Remove, use fatal instead.
   23061 	* src/files.c (done): No argument, use complain_message_count.
   23062 	* src/main.c (main): Register `done' to `atexit'.
   23063 
   23064 	* src/getargs.c (usage): More `fputs', less `fprintf'.
   23065 
   23066 2000-03-28  Akim Demaille  <akim (a] epita.fr>
   23067 
   23068 	* lib/: New directory.
   23069 	* Makefile.am (SUBDIRS): Adjust.
   23070 	* configure.in: Adjust.
   23071 	(LIBOBJS): Although not used yet, AC_SUBST it, otherwise it's
   23072 	useless.
   23073 	* src/alloca.c: Moved to lib/.
   23074 	* src/getopt.c: Likewise.
   23075 	* src/getopt1.c: Likewise.
   23076 	* src/getopt.h: Likewise.
   23077 	* src/ansi2knr.c: Likewise.
   23078 	* src/ansi2knr.1: Likewise.
   23079 	* src/Makefile.am: Adjust.
   23080 	* lib/Makefile.am: New file.
   23081 
   23082 2000-03-28  Akim Demaille  <akim (a] epita.fr>
   23083 
   23084 	* src/getargs.c (usage): Refresh the help message.
   23085 
   23086 2000-03-17  Akim Demaille  <akim (a] epita.fr>
   23087 
   23088 	* src/getopt1.c: Updated from textutils 2.0e
   23089 	* src/getopt.c: Likewise.
   23090 	* src/getopt.h: Likewise.
   23091 
   23092 2000-03-17  Akim Demaille  <akim (a] epita.fr>
   23093 
   23094 	* src/Makefile.am (bison.simple): Fix the awk program: quote only
   23095 	the file name, not the whole `#line LINE FILE'.
   23096 
   23097 2000-03-17  Akim Demaille  <akim (a] epita.fr>
   23098 
   23099 	On syntax errors, report the token on which we choked.
   23100 
   23101 	* src/bison.s1 (yyparse): In the label yyerrlab, when
   23102 	YYERROR_VERBOSE, add yychar in msg.
   23103 
   23104 2000-03-17  Akim Demaille  <akim (a] epita.fr>
   23105 
   23106 	* src/reader.c (copy_at): New function.
   23107 	(copy_guard): Use it.
   23108 	(copy_action): Use it.
   23109 
   23110 2000-03-17  Akim Demaille  <akim (a] epita.fr>
   23111 
   23112 	Be kind to translators, save some useless translations.
   23113 
   23114 	* src/main.c (banner): New function.
   23115 	(fatal_banner): Use it.
   23116 	(warn_banner): Use it.
   23117 
   23118 2000-03-17  Akim Demaille  <akim (a] epita.fr>
   23119 
   23120 	* src/reader.c (copy_definition): Use copy_string and
   23121 	copy_comment.  Removed now unused `match', `ended',
   23122 	`cplus_comment'.
   23123 	(copy_comment, copy_string): Moved, to be visible from
   23124 	copy_definition.
   23125 
   23126 2000-03-17  Akim Demaille  <akim (a] epita.fr>
   23127 
   23128 	* src/reader.c (copy_string): Declare `static inline'.  No
   23129 	problems with inline, since it is checked by configure.
   23130 	(copy_comment): Likewise.
   23131 
   23132 2000-03-17  Akim Demaille  <akim (a] epita.fr>
   23133 
   23134 	* src/reader.c (packsymbols): Formatting changes.
   23135 
   23136 2000-03-17  Akim Demaille  <akim (a] epita.fr>
   23137 
   23138 	* src/reader.c (copy_comment): New function, factored out from:
   23139 	(copy_action): Use it.  Removed now unused `match', `ended',
   23140 	`cplus_comment'.
   23141 	(copy_guard): Likewise.
   23142 
   23143 2000-03-17  Akim Demaille  <akim (a] epita.fr>
   23144 
   23145 	* src/reader.c (copy_string): New function, factored out from:
   23146 	(copy_action): Use it.
   23147 	(copy_guard): Likewise.
   23148 
   23149 2000-03-17  Akim Demaille  <akim (a] epita.fr>
   23150 
   23151 	Change the handling of @s so that they behave exactly like $s.
   23152 	There is now a pseudo variable @$ (readble and writable), location
   23153 	of the lhs of the rule (by default ranging from the location of
   23154 	the first symbol of the rhs, to the location of the last symbol,
   23155 	or, if the rhs is empty, YYLLOC).
   23156 
   23157 	* src/bison.s1 [YYLSP_NEEDED] (yyloc): New variable, twin of
   23158 	yyval.
   23159 	(yyparse): When providing a default semantic action, provide a
   23160 	default location action.
   23161 	(after the $): No longer change `*YYLSP', just stack YYLOC the
   23162 	same way you stack YYVAL.
   23163 	* src/reader.c (read_declarations): Use warns.
   23164 	(copy_guard, case '@'): Also recognize `@$', expanded as `YYLOC'.
   23165 	(copy_action, case '@'): Likewise.
   23166 	Use a standard error message, to save useless work from
   23167 	translators.
   23168 
   23169 2000-03-17  Akim Demaille  <akim (a] epita.fr>
   23170 
   23171 	* src/bison.s1: Formatting and cosmetics changes.
   23172 	* src/reader.c: Likewise.
   23173 	Update the Copyright notice.
   23174 
   23175 2000-03-17  Akim Demaille  <akim (a] epita.fr>
   23176 
   23177 	* src/bison.s1 (#line): All set to `#line' only, since the
   23178 	Makefile now handles them.
   23179 
   23180 2000-03-16  Akim Demaille  <akim (a] epita.fr>
   23181 
   23182 	* src/output.c (output_rule_data): Output the documentation of
   23183 	some of the tables.
   23184 	(Copyright notice): Update.
   23185 	Formatting changes.
   23186 
   23187 2000-03-16  Akim Demaille  <akim (a] epita.fr>
   23188 
   23189 	* src/bison.s1 [!YYDEBUG]: Define yydebug to 0.  This allows to
   23190 	remove most `#if YYDEBUG != 0', since `if (yydebug)' is enough.
   23191 	One `#if YYDEBUG' remains, since it uses variables which are
   23192 	defined only if `YYDEBUG != 0'.
   23193 
   23194 2000-03-16  Akim Demaille  <akim (a] epita.fr>
   23195 
   23196 	* src/bison.s1 (yyparse): Reorganize the definitions of the stacks
   23197 	and related variables so that the similarities are highlighted.
   23198 
   23199 2000-03-16  Akim Demaille  <akim (a] epita.fr>
   23200 
   23201 	* src/bison.s1: Properly indent CPP directives.
   23202 
   23203 2000-03-16  Akim Demaille  <akim (a] epita.fr>
   23204 
   23205 	* src/bison.s1: Properly indent the `alloca' CPP section.
   23206 
   23207 2000-03-16  Akim Demaille  <akim (a] epita.fr>
   23208 
   23209 	Do not hard code values of directories in `configure.in'.
   23210 	Update the `configure' tool chain.
   23211 
   23212 	* configure.in (XPFILE, XPFILE1, LOCALEDIR): Remove, handled by
   23213 	src/makefile.am.
   23214 	(VERSION_STRING): Use the third arg of AC_DEFINE_UNQUOTED.
   23215 	(AC_OUTPUT): Add m4/Makefile.
   23216 	Bump to bison 1.28a, 1.29 has never been released.
   23217 	* acconfig.h (XPFILE, XPFILE1, LOCALEDIR): Remove, since they are
   23218 	handled via src/Makefile.am.
   23219 	(VERSION_STRING, PROTOTYPES, ENABLE_NLS, HAVE_CATGETS,
   23220 	HAVE_GETTEXT, HAVE_LC_MESSAGES, HAVE_STPCPY): Remove, handled by
   23221 	autoheader.
   23222 	* Makefile.am (SUBDIRS): Add m4.
   23223 	(ACLOCAL_AM_FLAGS): New variable.
   23224 	(AUTOMAKE_OPTIONS): Add check-news.
   23225 	* src/Makefile.am (bison.simple): Use awk to replace #line lines with
   23226 	the proper line number and file name.
   23227 	(DEFS): Propagate the location of bison library files and of the
   23228 	locale files.
   23229 	(INCLUDES): Added `-I ..' so that one can compile with srcdir !=
   23230 	builddir.
   23231 	* acinclude.m4: Remove, replaced by the directory m4.
   23232 	* m4/Makefile.am (EXTRA_DIST): New variable.
   23233 	* m4/gettext.m4: New file, from the fileutils.
   23234 	* m4/lcmessage.m4: Likewise
   23235 	* m4/progtest.m4: Likewise.
   23236 	* m4/bison-decl.m4: New file, extracted from former acinclude.m4.
   23237 
   23238 2000-03-10  Akim Demaille  <akim (a] epita.fr>
   23239 
   23240 	* src/closure.c:
   23241 	Formatting changes of various comments.
   23242 	Respect the GNU coding standards at various places.
   23243 	Don't use `_()' when no translation is needed.
   23244 
   23245 1999-12-13  Jesse Thilo  <jthilo (a] gnu.org>
   23246 
   23247 	* src/files.c:
   23248 	OS/2 honors TMPDIR environment variable.
   23249 
   23250 1999-12-13  Jesse Thilo  <jthilo (a] gnu.org>
   23251 
   23252 	* doc/bison.texinfo: Tweaked spelling and grammar.
   23253 	Updated ISBN.
   23254 	Removed reference to price of printed copy.
   23255 	Mention BISON_SIMPLE and BISON_HAIRY.
   23256 
   23257 1999-12-13  Jesse Thilo  <jthilo (a] gnu.org>
   23258 
   23259 	* configure.in, NEWS:
   23260 	Bison 1.29 released.
   23261 
   23262 1999-10-27  Jesse Thilo  <jthilo (a] gnu.org>
   23263 
   23264 	* doc/.cvsignore, doc/Makefile.am, doc/refcard.tex:
   23265 	Added reference card.
   23266 
   23267 1999-07-26  Jesse Thilo  <jthilo (a] gnu.org>
   23268 
   23269 	* po/ru.po: Added Russian translation.
   23270 
   23271 1999-07-26  Jesse Thilo  <jthilo (a] gnu.org>
   23272 
   23273 	* configure.in: Added Russian translation.
   23274 
   23275 1999-07-06  Jesse Thilo  <jthilo (a] gnu.org>
   23276 
   23277 	* configure.in, NEWS, README:
   23278 	Released version 1.28.
   23279 
   23280 1999-06-14  Jesse Thilo  <jthilo (a] gnu.org>
   23281 
   23282 	* src/system.h:
   23283 	Squashed redefinition warning on some systems.
   23284 
   23285 	* src/getargs.c, src/Makefile.am, src/reader.c, src/version.c:
   23286 	Have configure build version string instead of relying on ANSI string
   23287 	concatentation.
   23288 
   23289 1999-06-14  Jesse Thilo  <jthilo (a] gnu.org>
   23290 
   23291 	* po/POTFILES.in: Got rid of version.c.
   23292 
   23293 1999-06-14  Jesse Thilo  <jthilo (a] gnu.org>
   23294 
   23295 	* acconfig.h, configure.in:
   23296 	Have configure build version string instead of relying on ANSI string
   23297 	concatentation.
   23298 
   23299 1999-06-08  Jesse Thilo  <jthilo (a] gnu.org>
   23300 
   23301 	* doc/bison.1:
   23302 	Dropped mention of `+' for long-named options.
   23303 
   23304 1999-05-30  Jesse Thilo  <jthilo (a] gnu.org>
   23305 
   23306 	* src/files.c: Added <unistd.h> for unlink().
   23307 
   23308 	* src/Makefile.am, src/system.h:
   23309 	I18n fixes.
   23310 
   23311 1999-05-30  Jesse Thilo  <jthilo (a] gnu.org>
   23312 
   23313 	* README: Added a FAQ list.
   23314 
   23315 	* configure.in, acconfig.h:
   23316 	I18n fixes.
   23317 
   23318 1999-05-30  Jesse Thilo  <jthilo (a] gnu.org>
   23319 
   23320 	* doc/FAQ, doc/Makefile.am:
   23321 	Added a FAQ list.
   23322 
   23323 1999-05-19  Jesse Thilo  <jthilo (a] gnu.org>
   23324 
   23325 	* src/alloc.h, src/symtab.h, src/version.c:
   23326 	Protected inclusion of "config.h" with HAVE_CONFIG_H.
   23327 
   23328 1999-04-18  Jesse Thilo  <jthilo (a] gnu.org>
   23329 
   23330 	* src/.cvsignore, src/Makefile.am:
   23331 	Reorganized: sources in `src', documentation in `doc'.
   23332 
   23333 	* src/lex.c (literalchar):
   23334 	fixed the code for escaping double quotes (thanks
   23335 	Jonathan Czisny.)
   23336 
   23337 1999-04-18  Jesse Thilo  <jthilo (a] gnu.org>
   23338 
   23339 	* po/de.po, po/es.po, po/fr.po, po/nl.po, po/POTFILES.in:
   23340 	Adjusted paths to reflect directory reorganization.
   23341 
   23342 1999-04-18  Jesse Thilo  <jthilo (a] gnu.org>
   23343 
   23344 	* doc/.cvsignore, doc/Makefile.am:
   23345 	Reorganized: sources in `src', documentation in `doc'.
   23346 
   23347 1999-04-18  Jesse Thilo  <jthilo (a] gnu.org>
   23348 
   23349 	* configure.in:
   23350 	Updated AC_INIT file to reflect directory reorganization.
   23351 
   23352 	* configure.in, .cvsignore, Makefile.am, POTFILES.in:
   23353 	Reorganized: sources in `src', documentation in `doc'.
   23354 
   23355 1999-04-13  Jesse Thilo  <jthilo (a] gnu.org>
   23356 
   23357 	* src/allocate.c:
   23358 	Don't declare calloc() and realloc() if not necessary.
   23359 
   23360 1999-04-13  Jesse Thilo  <jthilo (a] gnu.org>
   23361 
   23362 	* configure.in, acconfig.h, acinclude.m4:
   23363 	Don't declare calloc() and realloc() if not necessary.
   23364 
   23365 1999-03-23  Jesse Thilo  <jthilo (a] gnu.org>
   23366 
   23367 	* po/.cvsignore: Added i18n support.
   23368 
   23369 1999-03-23  Jesse Thilo  <jthilo (a] gnu.org>
   23370 
   23371 	* acconfig.h, configure.in, Makefile.am:
   23372 	Added i18n support.
   23373 
   23374 1999-03-22  Jesse Thilo  <jthilo (a] gnu.org>
   23375 
   23376 	* src/bison.s1: Fixed #line numbers.
   23377 
   23378 1999-03-15  Jesse Thilo  <jthilo (a] gnu.org>
   23379 
   23380 	* po/es.po, po/fr.po, po/nl.po, po/de.po:
   23381 	Added PO files from Translation Project.
   23382 
   23383 1999-03-03  Jesse Thilo  <jthilo (a] gnu.org>
   23384 
   23385 	* Makefile.am:
   23386 	Added support for non-ANSI compilers (ansi2knr).
   23387 
   23388 1999-02-16  Jesse Thilo  <jthilo (a] gnu.org>
   23389 
   23390 	* configure.in: Bumped version number to 1.27.
   23391 
   23392 	* Makefile.am:
   23393 	Added `bison.simple' to list of files removed by `make distclean'.
   23394 
   23395 1999-02-12  Jesse Thilo  <jthilo (a] gnu.org>
   23396 
   23397 	* src/files.c, src/files.h:
   23398 	Defined locations of parser files in config.h instead of Makefile.
   23399 
   23400 1999-02-12  Jesse Thilo  <jthilo (a] gnu.org>
   23401 
   23402 	* acconfig.h, acinclude.m4, configure.in, Makefile.am:
   23403 	Defined locations of parser files in config.h instead of Makefile.
   23404 
   23405 1999-02-09  Jesse Thilo  <jthilo (a] gnu.org>
   23406 
   23407 	* Makefile.am:
   23408 	Removed inappropriate use of $< macro.
   23409 
   23410 1999-02-05  Jesse Thilo  <jthilo (a] gnu.org>
   23411 
   23412 	* po/Makefile.in.in, po/POTFILES.in:
   23413 	Add `po' directory skeleton.
   23414 
   23415 1999-01-27  Jesse Thilo  <jthilo (a] gnu.org>
   23416 
   23417 	* README: Document help-bison list.
   23418 
   23419 	* configure.in: Add check for mkstemp().
   23420 
   23421 1999-01-20  Jesse Thilo  <jthilo (a] gnu.org>
   23422 
   23423 	* src/conflicts.c, src/LR0.c, src/output.c, src/reader.c:
   23424 	Hush a few compiler warnings.
   23425 
   23426 	* src/files.c:
   23427 	Add tryclose(), which verifies that fclose was successful.
   23428 	Hush a couple of compiler warnings.
   23429 
   23430 1999-01-20  Jesse Thilo  <jthilo (a] gnu.org>
   23431 
   23432 	* Makefile.am, OChangeLog:
   23433 	ChangeLog is now automatically generated.  Include the old version as
   23434 	OChangeLog.
   23435 
   23436 1999-01-14  Jesse Thilo  <jthilo (a] gnu.org>
   23437 
   23438 	* src/gram.h, src/lalr.c, src/lex.c, src/lex.h, src/machine.h, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/state.h, src/symtab.c, src/symtab.h, src/types.h, src/vmsgetargs.c, src/warshall.c, src/allocate.c, src/alloc.h, src/bison.s1, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/files.h, src/getargs.c, src/gram.c, src/LR0.c:
   23439 	Update FSF address.
   23440 
   23441 1999-01-14  Jesse Thilo  <jthilo (a] gnu.org>
   23442 
   23443 	* doc/bison.texinfo: Fix formatting glitch.
   23444 
   23445 	* doc/bison.texinfo: Update FSF address.
   23446 
   23447 1999-01-14  Jesse Thilo  <jthilo (a] gnu.org>
   23448 
   23449 	* acconfig.h: Update FSF address.
   23450 
   23451 1999-01-08  Jesse Thilo  <jthilo (a] gnu.org>
   23452 
   23453 	* src/system.h:
   23454 	Don't define PACKAGE here, since config.h defines it.
   23455 
   23456 1998-12-30  Jesse Thilo  <jthilo (a] gnu.org>
   23457 
   23458 	* src/reader.c: Update copyright date.
   23459 
   23460 	* src/main.c:
   23461 	Ditch sprintf to statically-sized buffers in fatal/warn functions in
   23462 	favor of output directly to stderr (avoids buffer overruns).
   23463 
   23464 	* src/reader.c: Some checks for premature EOF.
   23465 
   23466 	* src/allocate.c, src/alloc.h, src/closure.c, src/conflicts.c, src/derives.c, src/getargs.c, src/gram.c, src/lalr.c, src/lex.c, src/LR0.c, src/main.c, src/nullable.c, src/output.c, src/print.c, src/reduce.c, src/symtab.c, src/symtab.h, src/warshall.c:
   23467 	Use prototypes if the compiler understands them.
   23468 
   23469 	* src/files.c: Honor TMPDIR on Unix hosts.
   23470 	Use prototypes if the compiler understands them.
   23471 
   23472 	* src/reader.c:
   23473 	Fix a couple of buffer overrun bugs.
   23474 	Use prototypes if the compiler understands them.
   23475 
   23476 	* src/system.h: Include unistd.h and ctype.h.
   23477 	Use #ifdef instead of #if for NLS symbols.
   23478 
   23479 1998-12-30  Jesse Thilo  <jthilo (a] gnu.org>
   23480 
   23481 	* doc/bison.texinfo:
   23482 	Delete comment "consider using @set for edition number, etc..." since
   23483 	we now are doing so.
   23484 
   23485 1998-12-30  Jesse Thilo  <jthilo (a] gnu.org>
   23486 
   23487 	* configure.in:
   23488 	Use prototypes if the compiler understands them.
   23489 
   23490 	* NEWS: Document 1.26 highlights.
   23491 
   23492 	* Makefile.am: Require Automake 1.3 or later.
   23493 
   23494 	* acconfig.h:
   23495 	Use prototypes if the compiler understands them.
   23496 
   23497 1998-12-29  Jesse Thilo  <jthilo (a] gnu.org>
   23498 
   23499 	* src/version.c:
   23500 	Use VERSION symbol from automake for version number.
   23501 
   23502 1998-12-29  Jesse Thilo  <jthilo (a] gnu.org>
   23503 
   23504 	* acconfig.h, configure.in, version.cin:
   23505 	Use VERSION symbol from automake for version number.
   23506 
   23507 1998-11-28  Jesse Thilo  <jthilo (a] gnu.org>
   23508 
   23509 	* Makefile.am:
   23510 	Distribute original version of simple parser (bison.s1), not built
   23511 	version (bison.simple).
   23512 
   23513 1998-11-28  Jesse Thilo  <jthilo (a] gnu.org>
   23514 
   23515 	* doc/bison.texinfo: Add info dir entry.
   23516 
   23517 	* doc/bison.texinfo:
   23518 	Let automake put version number into documentation.
   23519 
   23520 1998-11-26  Jesse Thilo  <jthilo (a] gnu.org>
   23521 
   23522 	* src/bison.cld, src/build.com, src/vmshlp.mar:
   23523 	Add non-RCS files from /gd/gnu/bison.
   23524 
   23525 1998-11-26  Jesse Thilo  <jthilo (a] gnu.org>
   23526 
   23527 	* doc/bison.1:
   23528 	Document the BISON_HAIRY and BISON_SIMPLE variables.
   23529 
   23530 1998-11-25  Jesse Thilo  <jthilo (a] gnu.org>
   23531 
   23532 	* src/version.c: Build version.c automatically.
   23533 
   23534 	* src/reader.c:
   23535 	Fix token numbering (used to start at 258, not 257).
   23536 
   23537 	* src/system.h: Include config.h.
   23538 
   23539 	* src/getargs.c: Update bug report address.
   23540 
   23541 	* src/alloca.c, src/getopt1.c, src/getopt.c, src/getopt.h:
   23542 	Get latest copies of alloca.c, getopt.c, getopt.h, getopt1.c from gnu.org.
   23543 
   23544 1998-11-25  Jesse Thilo  <jthilo (a] gnu.org>
   23545 
   23546 	* Makefile.am:
   23547 	Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
   23548 
   23549 	* configure.in, version.cin:
   23550 	Build version.c automatically.
   23551 
   23552 	* AUTHORS: Add AUTHORS file.
   23553 
   23554 	* README: Update bug report address.
   23555 
   23556 	* bison.simple:
   23557 	Rename bison.simple to bison.s1 (bison.simple is then built from bison.s1).
   23558 
   23559 	* configure.in, Makefile.am, Makefile.in, stamp-h.in:
   23560 	Add automake stuff.
   23561 
   23562 1998-11-25  Jesse Thilo  <jthilo (a] gnu.org>
   23563 
   23564 	* doc/bison.texinfo: Clean up some formatting.
   23565 
   23566 1998-05-05  Richard Stallman  <rms (a] gnu.org>
   23567 
   23568 	* doc/bison.texinfo:
   23569 	Explain better why to make a pure parser.
   23570 
   23571 1998-01-05  Richard Stallman  <rms (a] gnu.org>
   23572 
   23573 	* src/files.c (openfiles):
   23574 	[_WIN32 && !__CYGWIN32__] Use TEMP or Temp to
   23575 	find a temporary directory, if possible.  Do not unlink files while
   23576 	they are open.
   23577 
   23578 1997-08-25  Richard Stallman  <rms (a] gnu.org>
   23579 
   23580 	* src/reader.c (stack_offset;):
   23581 	Change some warni to warns.
   23582 
   23583 	* src/lex.c (literalchar): Use warns, not warni.
   23584 
   23585 1997-06-28  Richard Stallman  <rms (a] gnu.org>
   23586 
   23587 	* src/bison.s1: Add a Bison version comment.
   23588 
   23589 	* src/main.c (fatal, warn, berror):
   23590 	Use program_name.
   23591 
   23592 1997-06-28  Richard Stallman  <rms (a] gnu.org>
   23593 
   23594 	* Makefile.in (bison_version): New variable.
   23595 	(dist): Use that variable.
   23596 	(bison.s1): Substitute the Bison version into bison.simple.
   23597 
   23598 	* bison.simple: Add a Bison version comment.
   23599 
   23600 1997-06-18  Richard Stallman  <rms (a] gnu.org>
   23601 
   23602 	* src/main.c (fatal, warn, berror):
   23603 	Make error messages standard.
   23604 	(toomany): Improve error message text.
   23605 
   23606 	* src/LR0.c, src/closure.c, src/conflicts.c, src/derives.c, src/files.c, src/lalr.c, src/lex.c, src/nullable.c, src/output.c, src/print.c, src/reader.c, src/reduce.c, src/symtab.c:
   23607 	new.h renamed to alloc.h.
   23608 
   23609 1997-06-18  Richard Stallman  <rms (a] gnu.org>
   23610 
   23611 	* Makefile.in: new.h renamed to alloc.h.
   23612 
   23613 1997-05-24  Richard Stallman  <rms (a] gnu.org>
   23614 
   23615 	* src/lex.c (literalchar):
   23616 	Fix the code for escaping \, " and '.
   23617 
   23618 	(lex): Avoid trouble when there are many chars
   23619 	to discard in a char literal with just several chars in it.
   23620 
   23621 1997-05-17  Richard Stallman  <rms (a] gnu.org>
   23622 
   23623 	* src/bison.s1:
   23624 	Use malloc, if using alloca is troublesome.
   23625 	(YYSTACK_USE_ALLOCA): New flag macro.
   23626 	Define it for some systems and compilers.
   23627 	(YYSTACK_ALLOC): New macro.
   23628 	(yyparse): Use YYSTACK_ALLOC to allocate stack.
   23629 	If it was malloc'd, free it.
   23630 
   23631 1997-05-17  Richard Stallman  <rms (a] gnu.org>
   23632 
   23633 	* bison.simple:
   23634 	Use malloc, if using alloca is troublesome.
   23635 	(YYSTACK_USE_ALLOCA): New flag macro.
   23636 	Define it for some systems and compilers.
   23637 	(YYSTACK_ALLOC): New macro.
   23638 	(yyparse): Use YYSTACK_ALLOC to allocate stack.
   23639 	If it was malloc'd, free it.
   23640 
   23641 1997-04-23  Richard Stallman  <rms (a] gnu.org>
   23642 
   23643 	* src/bison.s1:
   23644 	(alloca) [__hpux]: Always define as __builtin_alloca.
   23645 
   23646 1997-04-23  Richard Stallman  <rms (a] gnu.org>
   23647 
   23648 	* bison.simple:
   23649 	(alloca) [__hpux]: Always define as __builtin_alloca.
   23650 
   23651 1997-04-22  Richard Stallman  <rms (a] gnu.org>
   23652 
   23653 	* src/bison.s1:
   23654 	[__hpux]: Include alloca.h (right for HPUX 10)
   23655 	instead of declaring alloca (right for HPUX 9).
   23656 
   23657 	* src/bison.s1 (__yy_memcpy):
   23658 	Declare arg `count' as unsigned int.
   23659 	(yyparse): Cast third arg to __yy_memcpy to unsigned int.
   23660 
   23661 1997-04-22  Richard Stallman  <rms (a] gnu.org>
   23662 
   23663 	* bison.simple:
   23664 	[__hpux]: Include alloca.h (right for HPUX 10)
   23665 	instead of declaring alloca (right for HPUX 9).
   23666 
   23667 	* bison.simple (__yy_memcpy):
   23668 	Declare arg `count' as unsigned int.
   23669 	(yyparse): Cast third arg to __yy_memcpy to unsigned int.
   23670 
   23671 1997-01-03  Richard Stallman  <rms (a] gnu.org>
   23672 
   23673 	* src/allocate.c: [__STDC__ or _MSC_VER]:
   23674 	Declare calloc and realloc to return void *.
   23675 
   23676 1997-01-02  Richard Stallman  <rms (a] gnu.org>
   23677 
   23678 	* src/system.h:
   23679 	[_MSC_VER]: Include stdlib.h and process.h.
   23680 	[_MSC_VER] (getpid): Define as macro--translate it to _getpid.
   23681 
   23682 	* src/main.c (main): Return FAILURE as a value.
   23683 	(printable_version): Declare arg as int, not char.
   23684 
   23685 1997-01-02  Richard Stallman  <rms (a] gnu.org>
   23686 
   23687 	* Makefile.in (dist):
   23688 	Explicitly check for symlinks, and copy them.
   23689 
   23690 1996-12-19  Richard Stallman  <rms (a] gnu.org>
   23691 
   23692 	* src/files.c:
   23693 	[_MSC_VER] (XPFILE, XPFILE1): Define, if not already defined.
   23694 
   23695 1996-12-18  Paul Eggert  <eggert (a] gnu.org>
   23696 
   23697 	* src/bison.s1 (yyparse):
   23698 	If __GNUC__ and YYPARSE_PARAM are both defined,
   23699 	declare yyparse to have a void * argument.
   23700 
   23701 1996-12-18  Paul Eggert  <eggert (a] gnu.org>
   23702 
   23703 	* bison.simple (yyparse):
   23704 	If __GNUC__ and YYPARSE_PARAM are both defined,
   23705 	declare yyparse to have a void * argument.
   23706 
   23707 1996-12-17  Richard Stallman  <rms (a] gnu.org>
   23708 
   23709 	* src/reduce.c (nbits): Add some casts.
   23710 
   23711 1996-08-12  Richard Stallman  <rms (a] gnu.org>
   23712 
   23713 	* src/bison.s1: Test _MSDOS as well as _MSDOS_.
   23714 
   23715 1996-08-12  Richard Stallman  <rms (a] gnu.org>
   23716 
   23717 	* bison.simple: Test _MSDOS as well as _MSDOS_.
   23718 
   23719 1996-07-31  Richard Stallman  <rms (a] gnu.org>
   23720 
   23721 	* src/bison.s1:
   23722 	[__sun && __i386]: Include alloca.h.
   23723 
   23724 1996-07-31  Richard Stallman  <rms (a] gnu.org>
   23725 
   23726 	* bison.simple:
   23727 	[__sun && __i386]: Include alloca.h.
   23728 
   23729 1996-07-30  Richard Stallman  <rms (a] gnu.org>
   23730 
   23731 	* src/bison.s1: Comment change.
   23732 
   23733 	* src/bison.s1: Test _MSDOS_, not MSDOS.
   23734 
   23735 1996-07-30  Richard Stallman  <rms (a] gnu.org>
   23736 
   23737 	* bison.simple: Comment change.
   23738 
   23739 	* bison.simple: Test _MSDOS_, not MSDOS.
   23740 
   23741 1996-06-01  Richard Stallman  <rms (a] gnu.org>
   23742 
   23743 	* src/reduce.c, src/reader.c, src/print.c, src/output.c, src/nullable.c, src/lex.c, src/lalr.c, src/getargs.c, src/derives.c, src/conflicts.c, src/closure.c, src/allocate.c:
   23744 	Insert `_' macro around many string constants.
   23745 
   23746 	* src/main.c:
   23747 	Insert `_' macro around many string constants.
   23748 
   23749 	(main): Call setlocale, bindtextdomain and textdomain.
   23750 
   23751 	* src/system.h: [HAVE_LOCALE_H]: Include locale.h.
   23752 	[! HAVE_LOCALE_H] (setlocale): Define as no-op.
   23753 	[ENABLE_NLS]: Include libintl.h.
   23754 	[ENABLE_NLS] (gettext): Define.
   23755 	[! ENABLE_NLS] (bintextdomain, textdomain, _): Consolation definitions.
   23756 	(N_, PACKAGE, LOCALEDIR): New macros.
   23757 
   23758 1996-06-01  Richard Stallman  <rms (a] gnu.org>
   23759 
   23760 	* POTFILES.in: New file.
   23761 
   23762 	* Makefile.in (allocate.o):
   23763 	Define target explicitly.
   23764 
   23765 	* Makefile.in (CFLAGS): Set to @CFLAGS@.
   23766 	(LDFLAGS): Set to @LDFLAGS@.
   23767 	(configure): Run autoconf only if preceding `cd' succeeds.
   23768 	(bison.s1): Redirect output to temporary file then move the
   23769 	temporary to the target, rather than redirecting directly to bison.s1.
   23770 	(clean): Remove config.status and config.log.
   23771 	(distclean): Don't remove config.status here.
   23772 
   23773 1996-05-12  Richard Stallman  <rms (a] gnu.org>
   23774 
   23775 	* src/bison.s1:
   23776 	(__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
   23777 
   23778 1996-05-12  Richard Stallman  <rms (a] gnu.org>
   23779 
   23780 	* bison.simple:
   23781 	(__yy_memcpy) [__cplusplus]: Reorder declarations of variables f and t.
   23782 
   23783 1996-05-11  Richard Stallman  <rms (a] gnu.org>
   23784 
   23785 	* src/bison.s1 (__yy_memcpy):
   23786 	Really reorder the args, as was supposedly done on Feb 14 1995.
   23787 	(yyparse): Calls changed accordingly.
   23788 
   23789 1996-05-11  Richard Stallman  <rms (a] gnu.org>
   23790 
   23791 	* Makefile.in (dist): Don't use $(srcdir).
   23792 
   23793 	* bison.simple (__yy_memcpy):
   23794 	Really reorder the args, as was supposedly done on Feb 14 1995.
   23795 	(yyparse): Calls changed accordingly.
   23796 
   23797 1996-01-27  Richard Stallman  <rms (a] gnu.org>
   23798 
   23799 	* src/output.c (output_rule_data):
   23800 	Test YYERROR_VERBOSE in the conditional
   23801 	around the definition of ttyname.
   23802 
   23803 1995-12-29  Richard Stallman  <rms (a] gnu.org>
   23804 
   23805 	* src/bison.s1:
   23806 	Fix line numbers in #line commands.
   23807 
   23808 1995-12-29  Richard Stallman  <rms (a] gnu.org>
   23809 
   23810 	* bison.simple:
   23811 	Fix line numbers in #line commands.
   23812 
   23813 1995-12-27  Richard Stallman  <rms (a] gnu.org>
   23814 
   23815 	* src/bison.s1 (YYPARSE_PARAM_DECL):
   23816 	In C++, make it always null.
   23817 	(YYPARSE_PARAM_ARG): New macro.
   23818 	(yyparse): Use YYPARSE_PARAM_ARG.
   23819 
   23820 1995-12-27  Richard Stallman  <rms (a] gnu.org>
   23821 
   23822 	* bison.simple (YYPARSE_PARAM_DECL):
   23823 	In C++, make it always null.
   23824 	(YYPARSE_PARAM_ARG): New macro.
   23825 	(yyparse): Use YYPARSE_PARAM_ARG.
   23826 
   23827 1995-11-29  Richard Stallman  <rms (a] gnu.org>
   23828 
   23829 	* doc/bison.texinfo:
   23830 	Describe literal string tokens, %raw, %no_lines, %token_table.
   23831 
   23832 1995-11-29  Daniel Hagerty  <hag (a] gnu.org>
   23833 
   23834 	* doc/bison.texinfo: Fixed update date
   23835 
   23836 1995-10-16  Richard Stallman  <rms (a] gnu.org>
   23837 
   23838 	* src/version.c: Version 1.25.
   23839 
   23840 1995-10-16  Richard Stallman  <rms (a] gnu.org>
   23841 
   23842 	* NEWS: *** empty log message ***
   23843 
   23844 1995-10-16  Richard Stallman  <rms (a] gnu.org>
   23845 
   23846 	* doc/bison.1, doc/bison.rnh:
   23847 	Add new options.
   23848 
   23849 1995-10-15  Richard Stallman  <rms (a] gnu.org>
   23850 
   23851 	* src/vmsgetargs.c, src/getargs.c:
   23852 	Added -n, -k, and -raw switches.
   23853 	(noparserflag, toknumflag, rawtoknumflag): New variables.
   23854 
   23855 	* src/symtab.h (SALIAS):
   23856 	New #define for adding aliases to %token.
   23857 	(struct bucket): Added `alias' field.
   23858 
   23859 	* src/reduce.c (reduce_grammar):
   23860 	Revise error message.
   23861 	(print_notices): Remove final `.' from error message.
   23862 
   23863 	* src/reader.c (reader_output_yylsp):
   23864 	New function.
   23865 	(readgram): Use `#if 0' around code that accepted %command
   23866 	inside grammar rules:  The documentation doesn't allow it,
   23867 	and it will fail since the %command processors scan for the next %.
   23868 	(parse_token_decl):  Extended the %token
   23869 	declaration to allow a multi-character symbol as an alias.
   23870 	(parse_thong_decl): New function.
   23871 	(read_declarations): Added %thong declarations.
   23872 	(read_declarations): Handle NOOP to deal with allowing
   23873 	% declarations as another means to specify the flags.
   23874 	(readgram): Allow %prec prior to semantics embedded in a rule.
   23875 	(skip_to_char, read_declarations, copy_definition)
   23876 	(parse_token_decl, parse_start_decl, parse_type_decl)
   23877 	(parse_assoc_decl, parse_union_decl, parse_expect_decl)
   23878 	(get_type_name, copy_guard, copy_action, readgram)
   23879 	(get_type, packsymbols):  Revised most error messages.
   23880 	Changed `fatal' to `warnxxx' to avoid aborting for error.
   23881 	Revised and use multiple warnxxx functions to avoid using VARARGS1.
   23882 	(read_declarations): Improve the error message for
   23883 	an invalid character.  Do not abort.
   23884 	(read_declarations, copy_guard, copy_action): Use
   23885 	printable_version to avoid unprintable characters in printed output.
   23886 	(parse_expect_decl): Error if argument to %expect exceeds 10 digits.
   23887 	(parse_token_decl, parse_assoc_decl, parse_type_decl, get_type):
   23888 	Allow the type of a non-terminal can be given
   23889 	more than once, as long as all specifications give the same type.
   23890 
   23891 	* src/output.c:
   23892 	(output_headers, output_trailers, output, output_gram)
   23893 	(output_rule_data): Implement noparserflag variable.
   23894 	Implement toknumflag variable.
   23895 	(output): Call reader_output_yylsp to output LTYPESTR.
   23896 
   23897 	* src/main.c (main):
   23898 	 If reader sees an error, don't process the grammar.
   23899 	(fatals): Updated to not use VARARGS1.
   23900 	(printable_version, int_to_string, warn, warni, warns, warnss)
   23901 	(warnsss): New error reporting functions.  Avoid abort for error.
   23902 
   23903 	* src/lex.h:
   23904 	Added THONG and NOOP for alias processing.
   23905 	Added SETOPT for the new code that allows setting options with %flags.
   23906 
   23907 	* src/lex.c:
   23908 	Include getopt.h.  Add some extern decls.
   23909 	(safegetc): New function to deal with EOF gracefully.
   23910 	(literalchar); new function to deal with reading \ escapes.
   23911 	(lex): Use literalchar.
   23912 	(lex): Implemented "..." tokens.
   23913 	(literalchar, lex, parse_percent_token): Made tokenbuffer
   23914 	always contain the token.  This includes growing the token
   23915 	buffer while reading an integer.
   23916 	(parse_percent_token): Replaced if-else statement with percent_table.
   23917 	(parse_percent_token): Added % declarations as another
   23918 	way to specify the flags -n, -l, and -r.  Also added hooks for
   23919 	-d, -k, -y, -v, -t, -p, -b, -o, but implementation requires
   23920 	major changes to files.c.
   23921 	(lex) Retain in the incoming stream a character following
   23922 	an incorrect '/'.
   23923 	(skip_white_space, lex):  Revised most error messages
   23924 	and changed fatal to warn to avoid aborting.
   23925 	(percent_table):  Added %thong declarations.
   23926 
   23927 	* src/gram.h: Comment changes.
   23928 
   23929 	* src/files.c (openfiles, open_extra_files, done):
   23930 	 Add faction flag
   23931 	and actfile file.  Handle noparserflag.  Both for -n switch.
   23932 
   23933 	* src/conflicts.c (resolve_sr_conflict):
   23934 	Remove use of alloca.
   23935 
   23936 1995-06-01  Jim Meyering  <meyering (a] gnu.org>
   23937 
   23938 	* doc/bison.texinfo: *** empty log message ***
   23939 
   23940 1995-05-06  Richard Stallman  <rms (a] gnu.org>
   23941 
   23942 	* src/bison.s1: Comment change.
   23943 
   23944 1995-05-06  Richard Stallman  <rms (a] gnu.org>
   23945 
   23946 	* bison.simple: Comment change.
   23947 
   23948 1995-05-03  Richard Stallman  <rms (a] gnu.org>
   23949 
   23950 	* src/version.c: Version now 1.24.
   23951 
   23952 	* src/bison.s1: Change distribution terms.
   23953 
   23954 	* src/version.c: Version now 1.23.
   23955 
   23956 1995-05-03  Richard Stallman  <rms (a] gnu.org>
   23957 
   23958 	* doc/bison.texinfo:
   23959 	Rewrite "Conditions for Using Bison".
   23960 	Update version to 1.24.
   23961 
   23962 1995-05-03  Richard Stallman  <rms (a] gnu.org>
   23963 
   23964 	* bison.simple: Change distribution terms.
   23965 
   23966 1995-02-23  Richard Stallman  <rms (a] gnu.org>
   23967 
   23968 	* src/files.c: Test __VMS_POSIX as well as VMS.
   23969 
   23970 1995-02-14  Jim Meyering  <meyering (a] gnu.org>
   23971 
   23972 	* src/bison.s1 (__yy_memcpy):
   23973 	Renamed from __yy_bcopy to avoid
   23974 	confusion.  Reverse FROM and TO arguments to be consistent with
   23975 	those of memcpy.
   23976 
   23977 1995-02-14  Jim Meyering  <meyering (a] gnu.org>
   23978 
   23979 	* bison.simple (__yy_memcpy):
   23980 	Renamed from __yy_bcopy to avoid
   23981 	confusion.  Reverse FROM and TO arguments to be consistent with
   23982 	those of memcpy.
   23983 
   23984 1994-11-10  David J. MacKenzie  <djm (a] gnu.org>
   23985 
   23986 	* NEWS: reformat
   23987 
   23988 	* NEWS: New file.
   23989 
   23990 	* Makefile.in (DISTFILES): Include NEWS.
   23991 
   23992 	* Makefile.in (DISTFILES):
   23993 	Include install-sh, not install.sh.
   23994 
   23995 	* configure.in: Update to Autoconf v2 macro names.
   23996 
   23997 1994-10-05  David J. MacKenzie  <djm (a] gnu.org>
   23998 
   23999 	* Makefile.in: fix typo
   24000 
   24001 	* Makefile.in (prefix, exec_prefix):
   24002 	Let configure set them.
   24003 
   24004 1994-09-28  David J. MacKenzie  <djm (a] gnu.org>
   24005 
   24006 	* Makefile.in: Set datadir to $(prefix)/share.
   24007 
   24008 1994-09-15  Richard Stallman  <rms (a] gnu.org>
   24009 
   24010 	* src/bison.s1:
   24011 	Update copyright notice and GPL version.
   24012 
   24013 1994-09-15  Richard Stallman  <rms (a] gnu.org>
   24014 
   24015 	* bison.simple:
   24016 	Update copyright notice and GPL version.
   24017 
   24018 1994-07-12  Richard Stallman  <rms (a] gnu.org>
   24019 
   24020 	* src/reduce.c, src/reader.c:
   24021 	entered into RCS
   24022 
   24023 1994-05-05  David J. MacKenzie  <djm (a] gnu.org>
   24024 
   24025 	* Makefile.in: entered into RCS
   24026 
   24027 1994-03-26  Richard Stallman  <rms (a] gnu.org>
   24028 
   24029 	* src/bison.s1: entered into RCS
   24030 
   24031 1994-03-26  Richard Stallman  <rms (a] gnu.org>
   24032 
   24033 	* bison.simple: entered into RCS
   24034 
   24035 1994-03-25  Richard Stallman  <rms (a] gnu.org>
   24036 
   24037 	* src/main.c: entered into RCS
   24038 
   24039 1994-03-24  Richard Stallman  <rms (a] gnu.org>
   24040 
   24041 	* src/conflicts.c: entered into RCS
   24042 
   24043 1994-01-02  Richard Stallman  <rms (a] gnu.org>
   24044 
   24045 	* Makefile.in: *** empty log message ***
   24046 
   24047 1993-11-21  Richard Stallman  <rms (a] gnu.org>
   24048 
   24049 	* src/bison.s1: *** empty log message ***
   24050 
   24051 1993-11-21  Richard Stallman  <rms (a] gnu.org>
   24052 
   24053 	* doc/bison.texinfo: entered into RCS
   24054 
   24055 	* doc/bison.texinfo: *** empty log message ***
   24056 
   24057 1993-11-21  Richard Stallman  <rms (a] gnu.org>
   24058 
   24059 	* bison.simple: *** empty log message ***
   24060 
   24061 1993-10-25  David J. MacKenzie  <djm (a] gnu.org>
   24062 
   24063 	* doc/bison.texinfo: *** empty log message ***
   24064 
   24065 1993-10-19  Richard Stallman  <rms (a] gnu.org>
   24066 
   24067 	* src/bison.s1: *** empty log message ***
   24068 
   24069 1993-10-19  Richard Stallman  <rms (a] gnu.org>
   24070 
   24071 	* bison.simple: *** empty log message ***
   24072 
   24073 1993-10-14  Richard Stallman  <rms (a] gnu.org>
   24074 
   24075 	* src/bison.s1: *** empty log message ***
   24076 
   24077 1993-10-14  Richard Stallman  <rms (a] gnu.org>
   24078 
   24079 	* bison.simple: *** empty log message ***
   24080 
   24081 1993-09-14  David J. MacKenzie  <djm (a] gnu.org>
   24082 
   24083 	* doc/bison.texinfo: *** empty log message ***
   24084 
   24085 1993-09-13  Noah Friedman  <friedman (a] gnu.org>
   24086 
   24087 	* Makefile.in: *** empty log message ***
   24088 
   24089 1993-09-10  Richard Stallman  <rms (a] gnu.org>
   24090 
   24091 	* src/conflicts.c: *** empty log message ***
   24092 
   24093 	* src/system.h: entered into RCS
   24094 
   24095 1993-09-10  Richard Stallman  <rms (a] gnu.org>
   24096 
   24097 	* doc/bison.1: entered into RCS
   24098 
   24099 1993-09-06  Noah Friedman  <friedman (a] gnu.org>
   24100 
   24101 	* src/version.c: entered into RCS
   24102 
   24103 1993-09-06  Noah Friedman  <friedman (a] gnu.org>
   24104 
   24105 	* Makefile.in: *** empty log message ***
   24106 
   24107 1993-07-30  David J. MacKenzie  <djm (a] gnu.org>
   24108 
   24109 	* Makefile.in: *** empty log message ***
   24110 
   24111 1993-07-24  Richard Stallman  <rms (a] gnu.org>
   24112 
   24113 	* src/bison.s1: *** empty log message ***
   24114 
   24115 1993-07-24  Richard Stallman  <rms (a] gnu.org>
   24116 
   24117 	* bison.simple: *** empty log message ***
   24118 
   24119 1993-07-08  David J. MacKenzie  <djm (a] gnu.org>
   24120 
   24121 	* Makefile.in: *** empty log message ***
   24122 
   24123 1993-07-04  Richard Stallman  <rms (a] gnu.org>
   24124 
   24125 	* src/bison.s1: *** empty log message ***
   24126 
   24127 1993-07-04  Richard Stallman  <rms (a] gnu.org>
   24128 
   24129 	* bison.simple: *** empty log message ***
   24130 
   24131 1993-06-26  David J. MacKenzie  <djm (a] gnu.org>
   24132 
   24133 	* src/getargs.c: entered into RCS
   24134 
   24135 1993-06-26  David J. MacKenzie  <djm (a] gnu.org>
   24136 
   24137 	* doc/bison.texinfo: *** empty log message ***
   24138 
   24139 	* doc/bison.1: New file.
   24140 
   24141 1993-06-25  Richard Stallman  <rms (a] gnu.org>
   24142 
   24143 	* src/getargs.c: New file.
   24144 
   24145 1993-06-16  Richard Stallman  <rms (a] gnu.org>
   24146 
   24147 	* src/bison.s1: *** empty log message ***
   24148 
   24149 1993-06-16  Richard Stallman  <rms (a] gnu.org>
   24150 
   24151 	* bison.simple: *** empty log message ***
   24152 
   24153 1993-06-03  Richard Stallman  <rms (a] gnu.org>
   24154 
   24155 	* src/bison.s1: New file.
   24156 
   24157 1993-06-03  Richard Stallman  <rms (a] gnu.org>
   24158 
   24159 	* doc/bison.texinfo: *** empty log message ***
   24160 
   24161 1993-06-03  Richard Stallman  <rms (a] gnu.org>
   24162 
   24163 	* bison.simple: New file.
   24164 
   24165 1993-05-19  Richard Stallman  <rms (a] gnu.org>
   24166 
   24167 	* doc/bison.texinfo: New file.
   24168 
   24169 1993-05-07  Noah Friedman  <friedman (a] gnu.org>
   24170 
   24171 	* Makefile.in: *** empty log message ***
   24172 
   24173 1993-04-28  Noah Friedman  <friedman (a] gnu.org>
   24174 
   24175 	* src/reader.c: *** empty log message ***
   24176 
   24177 1993-04-23  Noah Friedman  <friedman (a] gnu.org>
   24178 
   24179 	* src/alloc.h: entered into RCS
   24180 
   24181 1993-04-20  David J. MacKenzie  <djm (a] gnu.org>
   24182 
   24183 	* src/version.c: *** empty log message ***
   24184 
   24185 	* src/files.c, src/allocate.c:
   24186 	entered into RCS
   24187 
   24188 	* src/reader.c: *** empty log message ***
   24189 
   24190 	* src/lex.c: entered into RCS
   24191 
   24192 	* src/conflicts.c: New file.
   24193 
   24194 	* src/symtab.c: entered into RCS
   24195 
   24196 	* src/alloc.h: New file.
   24197 
   24198 	* src/LR0.c: entered into RCS
   24199 
   24200 1993-04-18  Noah Friedman  <friedman (a] gnu.org>
   24201 
   24202 	* src/reader.c: New file.
   24203 
   24204 	* src/version.c: *** empty log message ***
   24205 
   24206 1993-04-18  Noah Friedman  <friedman (a] gnu.org>
   24207 
   24208 	* Makefile.in: *** empty log message ***
   24209 
   24210 1993-04-17  Noah Friedman  <friedman (a] gnu.org>
   24211 
   24212 	* Makefile.in: *** empty log message ***
   24213 
   24214 1993-04-15  Richard Stallman  <rms (a] gnu.org>
   24215 
   24216 	* src/main.c, src/files.c:
   24217 	New file.
   24218 
   24219 1993-04-15  Noah Friedman  <friedman (a] gnu.org>
   24220 
   24221 	* configure.in: entered into RCS
   24222 
   24223 	* configure.in: *** empty log message ***
   24224 
   24225 	* configure.in: New file.
   24226 
   24227 1993-04-14  Richard Stallman  <rms (a] gnu.org>
   24228 
   24229 	* Makefile.in: New file.
   24230 
   24231 1993-04-13  Richard Stallman  <rms (a] gnu.org>
   24232 
   24233 	* src/version.c: New file.
   24234 
   24235 1993-03-25  Richard Stallman  <rms (a] gnu.org>
   24236 
   24237 	* src/output.c: entered into RCS
   24238 
   24239 1992-09-25  Richard Stallman  <rms (a] gnu.org>
   24240 
   24241 	* configure.bat: entered into RCS
   24242 
   24243 1992-06-22  Richard Stallman  <rms (a] gnu.org>
   24244 
   24245 	* src/vmsgetargs.c: entered into RCS
   24246 
   24247 1992-06-22  Richard Stallman  <rms (a] gnu.org>
   24248 
   24249 	* doc/bison.rnh: entered into RCS
   24250 
   24251 1992-04-20  David J. MacKenzie  <djm (a] gnu.org>
   24252 
   24253 	* README: entered into RCS
   24254 
   24255 1992-01-22  Richard Stallman  <rms (a] gnu.org>
   24256 
   24257 	* src/machine.h: entered into RCS
   24258 
   24259 1991-12-21  Richard Stallman  <rms (a] gnu.org>
   24260 
   24261 	* src/lalr.c, src/closure.c:
   24262 	entered into RCS
   24263 
   24264 1991-12-20  Richard Stallman  <rms (a] gnu.org>
   24265 
   24266 	* src/state.h: entered into RCS
   24267 
   24268 1991-12-18  Richard Stallman  <rms (a] gnu.org>
   24269 
   24270 	* src/print.c, src/nullable.c, src/derives.c:
   24271 	entered into RCS
   24272 
   24273 1991-11-03  David J. MacKenzie  <djm (a] gnu.org>
   24274 
   24275 	* src/warshall.c, src/types.h, src/symtab.h, src/lex.h, src/gram.c, src/gram.h, src/files.h:
   24276 	entered into RCS
   24277 
   24278 1988-09-09  Richard Stallman  <rms (a] gnu.org>
   24279 
   24280 	* src/bison.hairy: entered into RCS
   24281 
   24282 1987-12-16  Richard Stallman  <rms (a] gnu.org>
   24283 
   24284 	* REFERENCES: entered into RCS
   24285 
   24286 
   24287 	-----
   24288 
   24289 	Copyright (C) 1987-1988, 1991-2012 Free Software Foundation,
   24290 	Inc.
   24291 
   24292 	Copying and distribution of this file, with or without
   24293 	modification, are permitted provided the copyright notice and this
   24294 	notice are preserved.
   24295