]> git.saurik.com Git - bison.git/log
bison.git
12 years agomaint: regen.
Akim Demaille [Sat, 18 Feb 2012 18:25:26 +0000 (19:25 +0100)] 
maint: regen.

* src/parse-gram.c, src/parse-gram.h: regen.

12 years agomaint: avoid "magic number exit".
Akim Demaille [Sat, 18 Feb 2012 18:19:26 +0000 (19:19 +0100)] 
maint: avoid "magic number exit".

* cfg.mk (local-checks-to-skip): No longer skip it.
* bootstrap.conf (gnulib_modules): Add sysexits.
* doc/bison.texinfo, etc/bench.pl.in, src/parse-gram.y,
* src/system.h, tests/calc.at, tests/named-refs.at: Use assert
where appropriate instead of "if (...) exit".
Use symbolic exit status elsewhere.

12 years agomaint: fix some syntax-check issues.
Akim Demaille [Sat, 18 Feb 2012 17:48:33 +0000 (18:48 +0100)] 
maint: fix some syntax-check issues.

* cfg.mk (local-checks-to-skip): Remove
sc_prohibit_quotearg_without_use, sc_prohibit_strcmp,
sc_unmarked_diagnostics, sc_useless_cpp_parens.
(sc_unmarked_diagnostics): Skip DJGPP.
* data/yacc.c, src/LR0.c, src/closure.c,
* src/flex-scanner.h, src/gram.c, src/lalr.c,
* src/print-xml.c, src/print.c, src/print_graph.c,
* src/reader.c, src/reduce.c, src/tables.c:
Don't use parens with cpp's defined.
Remove useless includes.

12 years agomaint: address a couple of syntax-check errors.
Akim Demaille [Sat, 18 Feb 2012 14:41:50 +0000 (15:41 +0100)] 
maint: address a couple of syntax-check errors.

* cfg.mk (local-checks-to-skip): Remove sc_error_message_period
and sc_error_message_uppercase.
Address the uncovered issues.
* po/POTFILES.in: Add missing files.
* src/symtab.c: Remove useless includes.
* lib/bitset_stats.c, src/files.c, tests/glr-regression.at: Use
conformant error messages.

12 years agomaint: gnulib: upgrade.
Akim Demaille [Sat, 18 Feb 2012 14:25:31 +0000 (15:25 +0100)] 
maint: gnulib: upgrade.

12 years agodoc: mfcalc: fix includes.
Akim Demaille [Fri, 17 Feb 2012 14:49:03 +0000 (15:49 +0100)] 
doc: mfcalc: fix includes.

* doc/bison.texinfo: math.h is needed early.

12 years agoexamples: factor the test suite.
Akim Demaille [Fri, 17 Feb 2012 13:59:23 +0000 (14:59 +0100)] 
examples: factor the test suite.

* examples/mfcalc/test, examples/calc++/test: Extract the
common bits into...
* examples/test: here.
(cwd): New.
Use it to avoid a race on the temporary directory.
Reported by Jim Meyering.
* examples/mfcalc/test, examples/calc++/test: Rename into...
* examples/mfcalc/mfcalc.test, examples/calc++/calc++.test: these.
* examples/calc++/local.mk, examples/mfcalc/local.mk,
* examples/local.mk: Adjust.

12 years agoexamples: fix the test suites.
Akim Demaille [Fri, 17 Feb 2012 09:12:06 +0000 (10:12 +0100)] 
examples: fix the test suites.

* examples/calc++/test, examples/mfcalc/test (me): Be more
meaningfull: include the example name.
(prog): Factor.
(run): Avoid printf, use echo.
Add missing parens.
(cleanup): New.
Call it on trap.
Remove the previous "rm" that did the cleanup.
Move into a private directory to avoid concurrency issues.
Reported by Jim Meyering.

12 years agoexamples: link mfcalc with -lm for uses of pow, cos, atan, etc.
Jim Meyering [Fri, 17 Feb 2012 07:36:57 +0000 (08:36 +0100)] 
examples: link mfcalc with -lm for uses of pow, cos, atan, etc.

* examples/mfcalc/local.mk (examples_mfcalc_mfcalc_LDADD): Define.

12 years agomfcalc: extract and exercise.
Akim Demaille [Thu, 16 Feb 2012 14:44:43 +0000 (15:44 +0100)] 
mfcalc: extract and exercise.

* examples/mfcalc/local.mk, examples/mfcalc/test: New,
based on calc++'s ones.
* examples/local.mk: Include mfcalc/local.mk.

12 years agocalc++: factor for other extracted tests.
Akim Demaille [Thu, 16 Feb 2012 14:27:03 +0000 (15:27 +0100)] 
calc++: factor for other extracted tests.

* Makefile.am (TESTS, check_PROGRAMS): Initialize here.
* examples/local.mk (doc, extexi): Define here.
* examples/calc++/local.mk: Adjust accordingly.
* configure.ac: Ask for parallel-tests (for the way the logs
are handled).
* examples/calc++/test: As a consequence, always be verbose.
($prog): New.
(run): Use it.
Sort the tests in a more natural order (simplest first).

12 years agodoc: mfcalc: send errors to stderr.
Akim Demaille [Thu, 16 Feb 2012 14:11:13 +0000 (15:11 +0100)] 
doc: mfcalc: send errors to stderr.

* doc/bison.texinfo (Mfcalc Lexer): New.
(Mfcalc Main): Move the definition of main and yyerror here, for
clarity.
Let yyerror report on stderr.

12 years agodoc: fix mfcalc code.
Akim Demaille [Thu, 16 Feb 2012 14:07:23 +0000 (15:07 +0100)] 
doc: fix mfcalc code.

* doc/bison.texinfo (Multi-function Calc): Add missing includes.
Fix the rendering of the result: use @result and remove the
initial tabulation in the actual code.
Fix stylistic issues: avoid the , operator.
Add extexi mark-up.
* examples/extexi: Also support @smallexample.

12 years agotests: c++: stylistic changes.
Akim Demaille [Thu, 16 Feb 2012 14:51:35 +0000 (15:51 +0100)] 
tests: c++: stylistic changes.

* tests/c++.at: Don't use void for incoming arguments.
Prefer cstdlib to stdlib.h.

12 years agotests: avoid c++ failure due to lack of getenv decl
Jim Meyering [Thu, 16 Feb 2012 10:03:31 +0000 (11:03 +0100)] 
tests: avoid c++ failure due to lack of getenv decl

* tests/c++.at (Syntax error as exception): Avoid spurious failure
at least when compiling with g++-4.7.x due to lack of declaration
of getenv.  Include <stdlib.h>.

12 years agomaint: trust Automake for parser headers.
Akim Demaille [Wed, 15 Feb 2012 12:32:07 +0000 (13:32 +0100)] 
maint: trust Automake for parser headers.

* examples/calc++/local.mk, src/local.mk: Now that automake
can see `-d' in AM_YFLAGS, we can rely on it to compile
and ship the parser header files.

12 years agomaint: help Automake reading Yacc flags.
Akim Demaille [Wed, 15 Feb 2012 11:53:34 +0000 (12:53 +0100)] 
maint: help Automake reading Yacc flags.

* Makefile.am (AM_YFLAGS): Automake looks for "-d" alone.

12 years agocalc++: rely on Automake.
Akim Demaille [Tue, 14 Feb 2012 16:32:51 +0000 (17:32 +0100)] 
calc++: rely on Automake.

Rely on $(YACC) being the bison being built, and let Automake do the
rest.  It turned out to be much more difficult than anticipated, for
various reasons, including some bad behavior from Automake 1.11.2
which (i) generates calc++-parser.h instead of calc++-parser.hh, and
(ii) leaves an #include "y.tab.h" in the generated parser instead
of #include "calc++-parser.h".

The authors of Automake appear to be aware of the problem,
http://lists.gnu.org/archive/html/automake/2011-05/msg00008.html
so a simple work around will suffice for the time being.

* examples/calc++/y.tab.h, examples/calc++/calc++-parser.hh: New.
To work around Automake 1.11.2 issues.
* examples/calc++/local.mk: Remove all the rules for compilation
with bison, leave them to Automake.
So provide it with "calc++-parse.yy" as a source file.
(calc_sources_generated, calc_sources_extracted): Rename as.
(calc_generated, calc_extracted): these.
(calc_sources): New.
Fix them.

12 years agomaint: tidy the Makefile a bit.
Akim Demaille [Tue, 14 Feb 2012 16:27:15 +0000 (17:27 +0100)] 
maint: tidy the Makefile a bit.

* src/local.mk: Put yacc related variables together.
(AUTOMAKE_OPTIONS): Move to...
* Makefile.am: here.
Remove an old Emacs mode request which disables Automake support.
* src/local.mk (YACC, AM_YFLAGS): Move to...
* Makefile.am: here, as they will be used by other local.mks.

12 years agomaint: de-recurse the handling of examples
Akim Demaille [Mon, 13 Feb 2012 17:23:45 +0000 (18:23 +0100)] 
maint: de-recurse the handling of examples

The directory was still using a local Makefile.am because it provides
"scoped" Make variables: these examples are not meant to use the same
CPPFLAGS etc.  If we were to use the same -I set, we'd pick up
gnulib's stdio.h for instance, which we do not want for these simple
examples.

Yet, as a result, the dependencies are less accurate, there is code
duplication, etc.  This is especially perceptible when trying to
extract more examples from the documentation, as will be done in
forthcoming changes.

In order to make the tuning of CPPFLAGS easier, discard the predefined
-I from Automake.

* examples/calc++/Makefile.am: Rename as...
* examples/calc++/local.mk: this.
Adjust the paths which are now rooted in top_srcdir/top_builddir.
Handle BISON_CXX_WORKS here, instead of the too crude previous
approach that completely discarded the whole directory.
($(BISON)): Remove now useless bouncing recipe.
(calc___CPPFLAGS): New.
Stay away from -Ilib.
* Makefile.am, configure.ac, examples/local.mk,
* examples/calc++/test: Adjust.

* configure.ac: Pass nostdinc to Automake.
* src/local.mk, lib/local.mk (AM_CPPFLAGS): Move to...
* Makefile.am: here.

* src/local.mk, examples/calc++/Makefile.am (BISON, BISON_IN): Factor
to...
* Makefile.am: here.
* tests/local.mk: Use it.

12 years agovariant: fix the example.
Akim Demaille [Tue, 14 Feb 2012 11:05:26 +0000 (12:05 +0100)] 
variant: fix the example.

* examples/variant.yy: Adjust to "assert" being now
"parse.assert".

12 years agomaint: more authors.
Akim Demaille [Mon, 13 Feb 2012 12:45:50 +0000 (13:45 +0100)] 
maint: more authors.

* AUTHORS: here.
Suggested by Tys Lefering.

12 years agomaint: add license headers.
Akim Demaille [Mon, 13 Feb 2012 12:39:23 +0000 (13:39 +0100)] 
maint: add license headers.

* examples/calc++/test, examples/variant.yy, AUTHORS, THANKS,
* tests/atlocal.in, tests/bison.in: Add license headers.
Reported by Tys Lefering.

12 years agomaint: remove obsolete file.
Akim Demaille [Sat, 11 Feb 2012 13:50:54 +0000 (14:50 +0100)] 
maint: remove obsolete file.

* etc/make-ChangeLogs: Remove (used for rcs to cvs migration!).
Reported by Tys Lefering.

12 years agolalr1.cc: also handle syntax_error when calling yylex.
Akim Demaille [Thu, 30 Jun 2011 12:10:21 +0000 (14:10 +0200)] 
lalr1.cc: also handle syntax_error when calling yylex.

* data/lalr1.cc (parse): Catch syntax_error around yylex and
forward them to errlab1.
* tests/c++.at (Syntax error as exception): Check support for
syntax exceptions raised by the scanner.
* NEWS, doc/bison.texinfo: Document it.

12 years agotests: lalr1.cc: check syntax_error.
Akim Demaille [Thu, 9 Feb 2012 09:34:00 +0000 (10:34 +0100)] 
tests: lalr1.cc: check syntax_error.

* tests/c++.at (Syntax error as exception): New.

12 years agotests: don't require locations uselessly.
Akim Demaille [Thu, 9 Feb 2012 09:04:32 +0000 (10:04 +0100)] 
tests: don't require locations uselessly.

* tests/c++.at (Syntax error discarding no lookahead): Contrary to
2.5, C++ parsers can work without locations.

12 years agomaint: more silent rules.
Akim Demaille [Thu, 9 Feb 2012 13:09:23 +0000 (14:09 +0100)] 
maint: more silent rules.

* tests/local.mk (TESTSUITE_AT): Include plackage.m4.
Adjust dependencies.
Make testsuite.at its first argument.
(package.m4): Be silent.
(testsuite): Be silent.
Use $<.

12 years agoskeletons: simplify the protections against "unused" warnings.
Akim Demaille [Thu, 9 Feb 2012 13:02:22 +0000 (14:02 +0100)] 
skeletons: simplify the protections against "unused" warnings.

* data/c.m4 (b4_parse_param_use): Also accept optional arguments
to "use".
Simplify callers.
* data/glr.c (yyuserAction): Simplify use of b4_parse_param_use.
(yy_reduce_print): Don't use b4_parse_param_use, as all the arguments
_are_ used.
* data/lalr1.cc (YY_SYMBOL_PRINT): Even when disabled, "use" the
symbol argument.
This neutralizes a warning in yypush_ when there are no symbols
with a semantic values.
(yy_destroy_): Remove useless "use" of yymsg.

12 years agoglr: formatting changes.
Akim Demaille [Thu, 9 Feb 2012 12:30:37 +0000 (13:30 +0100)] 
glr: formatting changes.

* data/glr.c: Split long strings.

12 years agouse a more consistent quoting style.
Akim Demaille [Wed, 8 Feb 2012 09:28:58 +0000 (10:28 +0100)] 
use a more consistent quoting style.

See <http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00120.html>.
Use quotearg as often as possible instead of leaving the choice of
the quotes to the translators.  Use shorter messages.  Factor similar
messages to a single format, to make localization easier.

* src/files.c, src/getargs.c, src/muscle-tab.c, src/reader.c
* src/scan-code.l, src/scan-gram.l, src/symtab.c:
Use quote() or quotearg_colon() on printf arguments instead of
quotes in the format string.
* data/bison.m4: Keep sync with the changes in muscle-tab.c.

* tests/skeletons.at, tests/input.at, tests/regression.at: Adjust
expected messages.

12 years agomaint: reenable sc_m4_quote_check
Jim Meyering [Sun, 29 Jan 2012 20:26:43 +0000 (21:26 +0100)] 
maint: reenable sc_m4_quote_check

* cfg.mk (local-checks-to-skip): Reenable sc_m4_quote_check.
* m4/dmalloc.m4: Add quotes.

12 years agomaint: force "make syntax-check" to pass by skipping failing tests
Jim Meyering [Sat, 28 Jan 2012 16:11:43 +0000 (17:11 +0100)] 
maint: force "make syntax-check" to pass by skipping failing tests

* cfg.mk (local-checks-to-skip): Skip all currently-failing tests.
Remove changelog-check; it's long gone.

12 years agomaint: more silent-rules.
Akim Demaille [Mon, 30 Jan 2012 15:21:13 +0000 (16:21 +0100)] 
maint: more silent-rules.

* doc/local.mk, src/local.mk, examples/calc++/Makefile.am: Use
$(AM_V_GEN) and $(AM_V_at) where appropriate.

12 years agodo not ignore errors like ENOSPC,EIO when writing to stdout
Jim Meyering [Sun, 29 Jan 2012 11:50:32 +0000 (12:50 +0100)] 
do not ignore errors like ENOSPC,EIO when writing to stdout

Standard output was never explicitly closed, so we could not
detect failure.  Thus, bison would ignore the errors of writing
to a full file system and getting an I/O error on write, but only
for standard output, e.g., for --print-localedir, --print-datadir,
--help and some verbose output.
Now, "bison --print-datadir > /dev/full" reports the write failure:
bison: write error: No space left on device
Before, it would exit 0 with no diagnostic, implying success.
This is not an issue for "--output=-" or the other FILE-accepting
command-line options, because unlike most other GNU programs,
an output file argument of "-" is treated as the literal "./-",
rather than standard output.
* bootstrap.conf (gnulib_modules): Add closeout.
* src/main.c: Include "closeout.h".
Use atexit to ensure we close stdout.
* .gitignore: Ignore new files pulled in via gnulib-tool.

12 years agotests: fix expected output.
Akim Demaille [Thu, 26 Jan 2012 20:52:44 +0000 (21:52 +0100)] 
tests: fix expected output.

* tests/actions.at (YYBACKUP): here.

12 years agomaint: fix configure.ac
Akim Demaille [Thu, 26 Jan 2012 20:37:15 +0000 (21:37 +0100)] 
maint: fix configure.ac

Fix commit 1890a2a816dab86c23cc1d0af8fac3986335deb7.

* configure.ac: Fix variable assignment.

12 years agoyacc: fix YYBACKUP.
Akim Demaille [Wed, 25 Jan 2012 15:57:58 +0000 (16:57 +0100)] 
yacc: fix YYBACKUP.

Reported by David Kastrup:
https://lists.gnu.org/archive/html/bug-bison/2011-10/msg00002.html.

* data/yacc.c (YYBACKUP): Accept rhs size.
Restore the proper state value.
* TODO (YYBACKUP): Make it...
* tests/actions.at: a new test case.
* NEWS, THANKS: Update.

12 years agomaint: update TODO.
Akim Demaille [Wed, 25 Jan 2012 15:36:03 +0000 (16:36 +0100)] 
maint: update TODO.

* TODO (Labeling the symbols): Remove, it's done ("Name references").

12 years agomaint: update THANKS.
Akim Demaille [Wed, 25 Jan 2012 12:25:22 +0000 (13:25 +0100)] 
maint: update THANKS.

* THANKS: Update Tys's address, on his request.

12 years agomaint: fix --gcc-warnings support.
Akim Demaille [Wed, 25 Jan 2012 12:04:43 +0000 (13:04 +0100)] 
maint: fix --gcc-warnings support.

* configure.ac: Use enable_gcc_warnings instead of enableval,
which is valid only with AC_ARG_ENABLE.

12 years agomaint: silent-rules.
Akim Demaille [Wed, 25 Jan 2012 11:59:02 +0000 (12:59 +0100)] 
maint: silent-rules.

* configure.ac: Ask for silent-rules support.
Enable it by default.

12 years agotests: port to Solaris 10 'diff -u'
Paul Eggert [Tue, 24 Jan 2012 21:54:12 +0000 (13:54 -0800)] 
tests: port to Solaris 10 'diff -u'

* tests/regression.at (parse-gram.y: LALR = IELR): Port to Solaris 10,
where "diff -u X X" outputs "No differences encountered"
instead of outputting nothing.  Reported by Tomohiro Suzuki in
<http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00101.html>.

12 years agobuild: avoid possibly-replaced fprintf in liby-source, yyerror.c
Jim Meyering [Mon, 23 Jan 2012 10:47:46 +0000 (11:47 +0100)] 
build: avoid possibly-replaced fprintf in liby-source, yyerror.c

* lib/yyerror.c (yyerror): Use fputs and fputc rather than fprintf
with a mere "%s\n" format.  Always return 0 now, on the assumption
that the return value was never used anyway.
Don't include <config.h> after all.  This avoids a problem
reported by Thiru Ramakrishnan in
http://lists.gnu.org/archive/html/help-bison/2011-11/msg00000.html
* cfg.mk: Exempt lib/yyerror.c from the sc_require_config_h_first test.
* THANKS: Update.

12 years agobuild: generalize etc/prefix-gnulib-mk
Jim Meyering [Sat, 21 Jan 2012 21:43:09 +0000 (22:43 +0100)] 
build: generalize etc/prefix-gnulib-mk

This script hard-coded "libbison" and lib/gnulib.mk.
Adjust the script to require a --lib-name=$gnulib_name option
and a FILE argument like lib/$gnulib_mk.
Also add support for --help and --version.
* etc/prefix-gnulib-mk: Generalize.
* bootstrap.conf (bootstrap_post_import_hook): Update its invocation.

12 years agomaint: be more robust to gnulib's FOO_H variables.
Akim Demaille [Fri, 20 Jan 2012 12:47:11 +0000 (13:47 +0100)] 
maint: be more robust to gnulib's FOO_H variables.

* configure.ac: Instead of listing gnulib's variables, look for
them among AC_SUBST variables.

12 years agomaint: generate ChangeLog from git log
Jim Meyering [Thu, 19 Jan 2012 08:07:02 +0000 (09:07 +0100)] 
maint: generate ChangeLog from git log

* Makefile.am (gen-ChangeLog): New rule.
(dist-hook): Depend on it.
(EXTRA_DIST): Distribute the two ChangeLog-* files.
* bootstrap.conf (gnulib_modules): Add gitlog-to-changelog.
(bootstrap_post_import_hook): Ensure that ChangeLog exists.
* build-aux/git-log-fix: New file.
* ChangeLog-2012: Renamed ...
* ChangeLog: ... from this.
* ChangeLog-1998: Renamed ...
* OChangeLog: ...from this
* .gitignore: Add ChangeLog.

12 years agochange more quotes in source, and adjust tests to match
Jim Meyering [Mon, 16 Jan 2012 18:36:41 +0000 (19:36 +0100)] 
change more quotes in source, and adjust tests to match

Run this command to change each `%s' to '%s' in source directories:
  git grep -l '`%s'\' src djgpp data \
    |xargs perl -pi -e '$q="'\''";s/`%s$q/$q%s$q/g'
* data/bison.m4: Affected per the above.
* djgpp/subpipe.c: Likewise.
* src/files.c: Likewise.
* src/getargs.c: Likewise.
* src/muscle-tab.c: Likewise.
* src/reader.c: Likewise.
* tests/glr-regression.at: Adjust to match.
* tests/input.at: Likewise.
* tests/push.at: Likewise.
* tests/skeletons.at: Likewise.

12 years agoquote consistently and make tests pass with new quoting from gnulib
Jim Meyering [Mon, 16 Jan 2012 18:20:50 +0000 (19:20 +0100)] 
quote consistently and make tests pass with new quoting from gnulib

Updating to gnulib pulled in new quote and quotarg modules,
by which quoting is now done like 'this' rather than `this'.
That change induces many "make check" test failures.  This change
adapts code and tests so that "make check" passes once again.
* src/scan-code.l: Quote like 'this', not like `this'.
* src/scan-gram.l: Likewise.
* src/symtab.c: Likewise.
* tests/actions.at: Adjust tests to match.
* tests/input.at: Likewise.
* tests/named-refs.at: Likewise.
* tests/output.at: Likewise.
* tests/regression.at: Likewise.
* lib/.gitignore: Regenerate.
* m4/.gitignore: Likewise.

12 years agobuild: update gnulib and autoconf submodules to latest
Jim Meyering [Mon, 16 Jan 2012 16:28:06 +0000 (17:28 +0100)] 
build: update gnulib and autoconf submodules to latest

12 years agobuild: manually update bootstrap from gnulib, and adapt
Jim Meyering [Mon, 16 Jan 2012 11:29:19 +0000 (12:29 +0100)] 
build: manually update bootstrap from gnulib, and adapt

Updating to the latest bootstrap from gnulib involves more of a
change than usual, and updating to the latest gnulib would involve
its own set of challenges with the upcoming quoting changes, so
we update bootstrap manually and separately.
* bootstrap: Update from gnulib.
* Makefile.am: Initialize more variables to empty, so that gnulib.mk
can append to them with "+=".
* bootstrap.conf (gnulib_mk_hook): Remove.  No longer honored.
(bootstrap_post_import_hook): Instead, run the same command,
etc/prefix-gnulib-mk lib/$gnulib_mk, via slightly different API.
Temporarily disable "bootstrap_sync=true".
* etc/prefix-gnulib-mk: Don't prepend "lib/" to tokens like -I$(...
or "\".

12 years agomaint: include <config.h> first
Jim Meyering [Mon, 16 Jan 2012 11:18:46 +0000 (12:18 +0100)] 
maint: include <config.h> first

* cfg.mk (exclude_file_name_regexp--sc_require_config_h_first):
Exempt data/glr.c and data/yacc.c from the include-config.h-first
requirement.

12 years agobuild: include <config.h> from lib/yyerror.c
Jim Meyering [Mon, 16 Jan 2012 11:16:24 +0000 (12:16 +0100)] 
build: include <config.h> from lib/yyerror.c

* lib/yyerror.c: Include <config.h>.

12 years agomaint: list djgpp/subpipe.c in po/POTFILES.in
Jim Meyering [Mon, 16 Jan 2012 11:14:12 +0000 (12:14 +0100)] 
maint: list djgpp/subpipe.c in po/POTFILES.in

* po/POTFILES.in: Add djgpp/subpipe.c.

12 years agomaint: placate the space-TAB syntax-check
Jim Meyering [Mon, 16 Jan 2012 10:58:41 +0000 (11:58 +0100)] 
maint: placate the space-TAB syntax-check

* cfg.mk (exclude_file_name_regexp--sc_space_tab): Exempt
tests/input.at and tests/c++.at, since they appear to use
SP-TAB sequences deliberately.
* OChangeLog: Remove space-before-TAB.

12 years agomaint: remove final trailing space
Jim Meyering [Mon, 16 Jan 2012 10:48:19 +0000 (11:48 +0100)] 
maint: remove final trailing space

* src/scan-gram.l (%): Remove single space at end of line.

12 years agomaint: get gpl-3.0 from gnulib
Jim Meyering [Mon, 16 Jan 2012 10:47:05 +0000 (11:47 +0100)] 
maint: get gpl-3.0 from gnulib

* bootstrap.conf (gnulib_modules): Add gpl-3.0.
* doc/gpl-3.0.texi: Remove from version control, now that
we get it via gnulib.
* doc/.gitignore: Ignore it.

12 years agodoc: correct typo: s/can not/cannot/
Jim Meyering [Mon, 16 Jan 2012 10:42:55 +0000 (11:42 +0100)] 
doc: correct typo: s/can not/cannot/

* doc/bison.texinfo (Bug Reports): s/can not/cannot/
And remove trailing blanks.

12 years agojava: fix reduction traces.
Akim Demaille [Sun, 15 Jan 2012 13:23:15 +0000 (14:23 +0100)] 
java: fix reduction traces.

* data/lalr1.java (yy_reduce_print): Fix state index.
Reported by Tim Landscheidt.

12 years agobuild: avoid warning from coverity about lbitset_elt_find
Jim Meyering [Thu, 12 Jan 2012 13:52:26 +0000 (14:52 +0100)] 
build: avoid warning from coverity about lbitset_elt_find

* lib/lbitset.c (lbitset_elt_find): Remove unnecessary test of "elt",
at a point where we know it is non-NULL, due to prior dereference.

Copyright (C) 1987-1988, 1991-2012 Free Software Foundation,

12 years agomaint: get fdl.texi from gnulib
Jim Meyering [Fri, 13 Jan 2012 09:39:45 +0000 (10:39 +0100)] 
maint: get fdl.texi from gnulib

* bootstrap.conf (gnulib_modules): Add fdl.
* doc/fdl.texi: Remove file.

12 years agomaint: spell "file system" as two separate words
Jim Meyering [Fri, 13 Jan 2012 09:22:48 +0000 (10:22 +0100)] 
maint: spell "file system" as two separate words

* doc/Doxyfile.in: Spell it "file system", to avoid a
"make syntax-check" failure.

12 years agomaint: avoid "the the"
Jim Meyering [Fri, 13 Jan 2012 09:18:26 +0000 (10:18 +0100)] 
maint: avoid "the the"

* djgpp/README.in: s/the the/the/
* src/parse-gram.c (lloc_default): Likewise.
* src/parse-gram.y (lloc_default): Likewise, and remove a
trailing space.

12 years agomaint: factor copyright year.
Akim Demaille [Fri, 13 Jan 2012 11:02:36 +0000 (12:02 +0100)] 
maint: factor copyright year.

* configure.ac: Use $PACKAGE_COPYRIGHT_YEAR instead of repeating it.

12 years agomaint: catch missing gnulib macros.
Akim Demaille [Fri, 13 Jan 2012 11:00:12 +0000 (12:00 +0100)] 
maint: catch missing gnulib macros.

* configure.ac: Add m4_pattern_forbid.

12 years agomaint: run "make update-copyright".
Jim Meyering [Fri, 13 Jan 2012 09:09:44 +0000 (10:09 +0100)] 
maint: run "make update-copyright".

12 years agojava: remove used variable
Tim Landscheidt [Sun, 8 Jan 2012 01:27:33 +0000 (01:27 +0000)] 
java: remove used variable

* data/lalr1.java (yyresult): remove, unused.

12 years agoscanner: fix typo.
Akim Demaille [Wed, 11 Jan 2012 15:46:36 +0000 (16:46 +0100)] 
scanner: fix typo.

* src/scan-skel.l (@`): s/emtpy/empty/.
Reported by Tim Landscheidt.

Conflicts:

src/scan-skel.l

12 years agobuild: avoid warnings about set-but-not-used variables
Jim Meyering [Fri, 6 Jan 2012 12:55:11 +0000 (13:55 +0100)] 
build: avoid warnings about set-but-not-used variables

* lib/bitset_stats.c (bitset_stats_list): Remove declaration
and set of unused local, "type".
* lib/ebitset.c (ebitset_init): Likewise, for "size".
* lib/lbitset.c (lbitset_not): Likewise, for "elt".

13 years agolalr1.cc: remove trailing comma from enumerator list.
Joel E. Denny [Sun, 21 Aug 2011 21:35:26 +0000 (17:35 -0400)] 
lalr1.cc: remove trailing comma from enumerator list.

* data/lalr1.cc (yy::parser): Here.  This suppresses a -pedantic
warning.

13 years agotests: add -pedantic for --enable-gcc-warnings.
Joel E. Denny [Sun, 21 Aug 2011 17:07:16 +0000 (13:07 -0400)] 
tests: add -pedantic for --enable-gcc-warnings.

This should help to avoid some portability problems.  For example,
it would have revealed the empty unions fixed by the last patch
* configure.ac (WARN_CFLAGS_TESTS, WARN_CXXFLAGS_TEST): Implement.
* tests/synclines.at (AT_TEST_SYNCLINE): Avoid -pedantic warning
about an empty translation unit.
(cherry picked from commit 5422d56a718805a2470558808355e04182a12d65)

13 years agotests: fix empty unions.
Joel E. Denny [Sun, 21 Aug 2011 18:45:03 +0000 (14:45 -0400)] 
tests: fix empty unions.

Empty unions are not accepted by the ISO C99 grammar or by at
least some versions of Sun Studio.  Reported by Wolfgang S. Kechel
at
<http://lists.gnu.org/archive/html/bug-bison/2011-08/msg00003.html>.
* NEWS (2.5.1): Document fix.
* THANKS (Wolfgang S. Kechel): Add.
* tests/existing.at (GNU Cim Grammar)
(GNU pic (Groff 1.18.1) Grammar.): Remove empty %union.
(cherry picked from commit 7451638148706f6317975db418cc78e488f420aa)

13 years agoglobal: remove unnecessary horizontal tabs.
Joel E. Denny [Sun, 24 Jul 2011 21:50:37 +0000 (17:50 -0400)] 
global: remove unnecessary horizontal tabs.

This change was made by applying emacs' untabify function to
nearly all files in Bison's repository.  Required tabs in make
files, ChangeLog, regexps, and test code were manually skipped.
Other notable exceptions and changes are listed below.
* bootstrap: Skip because we sync this with gnulib.
* data/m4sugar/foreach.m4
* data/m4sugar/m4sugar.m4: Skip because we sync these with
Autoconf.
* djgpp: Skip because I don't know how to test djgpp properly, and
this code appears to be unmaintained anyway.
* README-hacking (Hacking): Specify that tabs should be avoided
where not required.

13 years agobuild: avoid YACC typo inherited from Autoconf.
Joel E. Denny [Sun, 10 Jul 2011 17:42:12 +0000 (13:42 -0400)] 
build: avoid YACC typo inherited from Autoconf.

The typo shows up in the `configure --help' output.  Reported by
W.C.A. Wijngaards and Paul Eggert at
<http://lists.gnu.org/archive/html/bug-bison/2011-07/msg00000.html>.
* README-hacking (Release Procedure): Remind about updating
maintainer tools before a release.
* THANKS (W.C.A. Wijngaards): Add.
* configure.ac (AC_PREREQ): Set to 2.68, which fixes the YACC
typo.
(cherry picked from commit 845346b3bb526d0f18878f15d906f05205b5c618)

13 years agobuild: create xz instead of bzip2 tarballs.
Joel E. Denny [Sun, 10 Jul 2011 16:38:24 +0000 (12:38 -0400)] 
build: create xz instead of bzip2 tarballs.

Suggested by Jim Meyering at
<http://lists.gnu.org/archive/html/bug-bison/2011-06/msg00012.html>.
* README-hacking (Release Procedure): Update example.
* configure.ac (AM_INIT_AUTOMAKE): Replace dist-bzip2 with
dist-xz.
(cherry picked from commit abd189e8dc6ca848f038da12e4110d6192374b82)

13 years agodoc: clean up references to `Locations Overview'.
Joel E. Denny [Mon, 30 May 2011 02:30:55 +0000 (22:30 -0400)] 
doc: clean up references to `Locations Overview'.

* doc/bison.texinfo (Locations Overview): Rename node to...
(Locations): ... this, which is its section name.  Update menus to
match that and not to use the title `Tracking Locations', which is
a different section.
(cherry picked from commit 8348436580ae3db8091f564e8b24d552a9d23590)

13 years agodoc: clean up references to `Tracking Locations'.
Joel E. Denny [Mon, 30 May 2011 02:18:27 +0000 (22:18 -0400)] 
doc: clean up references to `Tracking Locations'.

* doc/bison.texinfo (Locations): Rename node to...
(Tracking Locations): ... this, which is its section name, and
update all cross references.  The trouble is that there is another
node about locations.  Its section name is `Locations', which was
easily confused with the node name of this node.  Moreover, its
node name is `Locations Overview', which was mistakenly used to
label some cross references to this node.
(cherry picked from commit 7404cdf3a1235c4f7304c29b942ac72029600f19)

Conflicts:

doc/bison.texinfo

13 years agodoc: clean up `Named References' a little.
Joel E. Denny [Mon, 30 May 2011 00:28:09 +0000 (20:28 -0400)] 
doc: clean up `Named References' a little.

* doc/bison.texinfo (Named References): Rename section to match
the node name, and update all cross references.  Don't use the
acronyms RHS and LHS given that we don't expand them anywhere in
the manual.  Try to use @samp and @code properly.  Mention that
named references are experimental as we've already stated in NEWS.
(Destructor Decl): Expand the only remaining use of RHS or LHS.
(cherry picked from commit ce24f7f59b9ececb3137a53a881e25fa28e19466)

13 years agodoc: motivate named references.
Joel E. Denny [Mon, 30 May 2011 00:06:22 +0000 (20:06 -0400)] 
doc: motivate named references.

Suggested by Hans Aberg at
<http://lists.gnu.org/archive/html/bug-bison/2011-05/msg00008.html>.
* doc/bison.texinfo (Named References): Explain briefly how
they're better than the traditional positional references.
(cherry picked from commit 7d31f0928907ccdd647479075d385b5a36c62611)

13 years agodoc: discuss named references after locations.
Joel E. Denny [Sun, 29 May 2011 23:59:44 +0000 (19:59 -0400)] 
doc: discuss named references after locations.

Reported by Hans Aberg at
<http://lists.gnu.org/archive/html/bug-bison/2011-05/msg00008.html>.
* NEWS (2.5.1): Document.
* doc/bison.texinfo (Named References): Because it discusses
locations in addition to semantic values, move this subsection out
of the section `Defining Language Semantics', where locations have
not yet been introduced, to be a new section after the following
section, `Tracking Locations'.
(cherry picked from commit 908c8647de654d4ab0944ecef7811af1d736742b)

13 years agoPrepare for the possibility of a 2.5.1 release.
Joel E. Denny [Mon, 30 May 2011 00:49:16 +0000 (20:49 -0400)] 
Prepare for the possibility of a 2.5.1 release.

* NEWS (2.5.1): New heading.
(cherry picked from commit 90dcd4156ccab3d704d9ff2771b9ce7791e3ffc4)

Conflicts:

NEWS

13 years agoVersion 2.5.
Joel E. Denny [Sat, 14 May 2011 22:14:52 +0000 (18:14 -0400)] 
Version 2.5.

* NEWS (2.5): Set date.
(cherry picked from commit b2bc8a1ba001669ad12b15d39ec425e81b41e778)

Conflicts:

NEWS

13 years agoDon't use IF_LINT in Bison sources.
Joel E. Denny [Sat, 14 May 2011 20:16:26 +0000 (16:16 -0400)] 
Don't use IF_LINT in Bison sources.

It creates unnecessary differences between the sources that Bison
maintainers build and test (given that maintainers normally
configure with --enable-gcc-warnings) and the sources that Bison
users build.  Instead, use PACIFY_CC, which doesn't.  This change
fixes compiler warnings reported by Tys Lefering at
<http://lists.gnu.org/archive/html/bison-patches/2011-05/msg00004.html>.
* configure.ac: Don't AC_DEFINE lint regardless of the configure
options.  This change affects imported gnulib sources, where
IF_LINT still appears and depends on lint.
* src/scan-gram.l, src/scan-skel.l: Replace uses of IF_LINT with
PACIFY_CC.
* src/system.h (IF_LINT): Remove cpp macro.
(PACIFY_CC): New cpp macro.
(cherry picked from commit 77bb73e7af76ef5180b22c3b8355aaff1f498f68)

Conflicts:

src/scan-gram.l

13 years agoFix precedence for end token.
Joel E. Denny [Mon, 2 May 2011 01:53:35 +0000 (21:53 -0400)] 
Fix precedence for end token.

Since Bison 2.3b, which restored the ability of precedence
directives to assign user token numbers, doing so for user token
number 0 has produced an assertion failure.
* NEWS (2.5): Document fix.
* src/symtab.c (symbol_user_token_number_set): In the case of the
end token, don't decrement ntokens if it was never incremented.
* tests/regression.at (Token number in precedence declaration):
Extend.
(cherry picked from commit 9d6af153184eea964fef7f87d76a60fe29f715b5)

13 years agoPacify -DGNULIB_POSIXCHECK.
Joel E. Denny [Sun, 1 May 2011 16:25:31 +0000 (12:25 -0400)] 
Pacify -DGNULIB_POSIXCHECK.

* bootstrap.conf (gnulib_modules): Add all modules suggested by
-DGNULIB_POSIXCHECK.
* src/files.c (file_name_split)
* src/getargs.c (getargs)
* src/location.c (boundary_set_from_string)
* src/output.c (output_skeleton)
* src/parse-gram.y (prologue_declaration)
* src/scan-gram.l (handle_syncline)
* src/symtab.c (symbol_new): Use mbschr and mbsrchr instead of
strchr and strrchr.  In the cases of command-line options, file
names, and thus locations, functionality may be improved.  In the
case of symbol names, there should be no functional difference as
all characters are ASCII, so the intended benefit is just warning
suppression.
(cherry picked from commit d143e9c33f07e1a9966c10077f43e2f81232bf6c)

Conflicts:

src/output.c
src/parse-gram.c
src/parse-gram.h

13 years ago* NEWS (2.5): Fix minor typos.
Joel E. Denny [Sun, 1 May 2011 21:33:14 +0000 (17:33 -0400)] 
* NEWS (2.5): Fix minor typos.
(cherry picked from commit 723206df6f4be135a708a4509ba99da5a256224e)

13 years agodoc: clean up quotation style in NEWS.
Joel E. Denny [Sun, 1 May 2011 14:22:39 +0000 (10:22 -0400)] 
doc: clean up quotation style in NEWS.

* NEWS (2.5): For multi-character tokens in example grammar rules,
use "token" not 'token'.  In English, use a consistent quotation
style; we might as well follow the precedent seen in info pages:
`quote' not "quote".
(cherry picked from commit ac3297d501e9b74a11095d966bb8e5aa6fcf0ff4)

13 years agotests: pacify gcc 4.6.0's -Wunused-but-set-variable.
Joel E. Denny [Sat, 16 Apr 2011 22:26:18 +0000 (18:26 -0400)] 
tests: pacify gcc 4.6.0's -Wunused-but-set-variable.

Reported by Jim Meyering at
<http://lists.gnu.org/archive/html/bug-bison/2011-04/msg00002.html>.
* tests/actions.at
(Default %printer and %destructor for mid-rule values): Define
YYLLOC_DEFAULT so that it uses its Rhs argument.
(cherry picked from commit c9e2da4f20c97c4cb53b68d4912dbdb8836df9a4)

13 years agoglr.c: omit yyresolveLocations when locations are disabled.
Joel E. Denny [Sat, 16 Apr 2011 22:15:40 +0000 (18:15 -0400)] 
glr.c: omit yyresolveLocations when locations are disabled.

This prevents gcc 4.6.0's -Wunused-but-set-variable from warning
about yyresolveLocations's local yyrhsloc.  When locations are
enabled, there's no such warning because YYLLOC_DEFAULT then uses
yyrhsloc.  Reported by Jim Meyering at
<http://lists.gnu.org/archive/html/bug-bison/2011-04/msg00002.html>.
* data/glr.c (yyresolveLocations): Omit definition when locations
are disabled.
(yyresolveValue): Omit yyresolveLocations invocation when
locations are disabled.
(cherry picked from commit 55dd35633675f588c58ead46ecd6b5f4db504192)

13 years agognulib, autoconf: update.
Joel E. Denny [Sat, 16 Apr 2011 18:59:32 +0000 (14:59 -0400)] 
gnulib, autoconf: update.

* README-hacking (Updating a submodule): Give advice on how to
determine the versions of gnulib and autoconf to which we should
update.
(Release Procedure): Note that submodules should be updated.
* bootstrap.conf (gnulib_modules): Rename pipe to spawn-pipe as
suggested in updated gnulib NEWS.
* gnulib: Choose a stable snapshot according to advice in Bison's
README-hacking.
* po/POTFILES.in (lib/pipe.c): Rename to...
(lib/spawn-pipe.c): ... this.
* src/output.c: Update to include spawn-pipe.h.
* submodules/autoconf: Update to latest for improvement in m4.m4
that excludes M4 with buggy strstr.  The only other changes to
files that we use are copyright updates.
(cherry picked from commit a898435b25eca4869e8c49b2b0fb1f649b030ce7)

Conflicts:

build-aux/.gitignore

13 years agoFix missing updates to GPLv3.
Joel E. Denny [Sat, 9 Apr 2011 22:24:55 +0000 (18:24 -0400)] 
Fix missing updates to GPLv3.

Reported by Tys Lefering at
<http://lists.gnu.org/archive/html/bison-patches/2011-04/msg00000.html>.
* src/print-xml.c, src/print-xml.h: In these files.
(cherry picked from commit fea2d6b0975a5b92dfc13b72e2b1d147e8d4a1b6)

13 years agoAdd -Wconflicts-sr and -Wconflicts-rr.
Joel E. Denny [Mon, 28 Mar 2011 02:38:32 +0000 (22:38 -0400)] 
Add -Wconflicts-sr and -Wconflicts-rr.

Thus, conflict reports are now affected by -Werror and -Wnone
(unless %expect or %expect-rr is specified).  Reported by George
Neuner at
<http://lists.gnu.org/archive/html/bug-bison/2010-08/msg00002.html>.
* NEWS (2.5): Document.
* doc/bison.texinfo (Bison Options): Document.
* src/complain.c, src/complain.h (set_warning_issued): Export
function.
* src/conflicts.c (conflicts_print): Suppress conflict report
based on -Wno-conflicts-sr and -Wno-conflicts-rr, and treat
conflicts as errors if -Werror.
* src/getargs.c (warnings_flag): Initialize with
warnings_conflicts_sr and warnings_conflicts_rr as well.
(warnings_args, warnings_types): Add entries for
warnings_conflicts_sr and warnings_conflicts_rr.
(usage): Update.
* src/getargs.h (enum warnings): Add entries for
warnings_conflicts_sr and warnings_conflicts_rr.
* tests/conflicts.at (-W versus %expect and %expect-rr): New test
group.
* tests/local.at (AT_BISON_CHECK_NO_XML): Update now that the
conflict report can produce a "warnings being treated as errors"
message.  Also, check that stderr is now fully scrubbed by -Wnone
when the exit status is 0.
(cherry picked from commit 6f8bdce25df5669b0b200c2a3848a1c08a44eb79)

13 years agoPacify maintainer-check-posix.
Joel E. Denny [Sun, 27 Mar 2011 23:29:37 +0000 (19:29 -0400)] 
Pacify maintainer-check-posix.

Adding command-line options after the grammar file name is not
permitted, so disable checks that do that when
maintainer-check-posix is running.
* tests/local.at (AT_BISON_CHECK_NO_XML): Don't run the
problematic checks when POSIXLY_CORRECT=1.  Also, for readability,
remove an unnecessary m4_if.
(cherry picked from commit fc7ce9970f2972443c1a031c91ffef2dfdf28651)

13 years agoAdd -Wother so -Wnone suppresses all warnings.
Joel E. Denny [Sun, 27 Mar 2011 23:08:24 +0000 (19:08 -0400)] 
Add -Wother so -Wnone suppresses all warnings.

Reported by George Neuner at
<http://lists.gnu.org/archive/html/bug-bison/2010-08/msg00002.html>.
* NEWS (2.5): Document.
* THANKS (George Neuner): Add.
* doc/bison.texinfo (Bison Options): Document.
* src/complain.c, src/complain.h
(warn_at, warn_at_indent, warn): Suppress warning if -Wno-other.
(midrule_value_at): New warning function, similar to yacc_at in
that it's controlled by its own warning category.
* src/getargs.c (warnings_flag): Initialize to warnings_other.
(warnings_args, warnings_types): Add entry for warnings_other.
(usage): Update.
* src/getargs.h (enum warnings): Add entry for warnings_other.
* src/gram.c (grammar_rules_useless_report): If -Wno-other, then
don't print useless rules.
* src/reader.c (symbol_should_be_used): Rather than adjusting the
return value based on whether midrule value warnings are enabled,
accept a new parameter for telling the caller whether true is
being returned for a potential midrule warning.
(grammar_rule_check): Use midrule_value_at for midrule value
warnings, and continue to use warn_at for all other warnings.  Let
them check whether the warnings are enabled.
* tests/local.at (AT_BISON_CHECK): Update documentation.
(AT_BISON_CHECK_NO_XML): Check that -Wnone and --warnings=none
disable all warnings exercised in the test suite.
(cherry picked from commit 8ffd7912e3b71fb0cc69e83225c3ad8e3452270f)

13 years agoDon't let -Wnone disable -Werror.
Joel E. Denny [Sun, 27 Mar 2011 19:39:25 +0000 (15:39 -0400)] 
Don't let -Wnone disable -Werror.

Discussed at
<http://lists.gnu.org/archive/html/bison-patches/2010-08/msg00009.html>.
* NEWS (2.5): Document.
* src/getargs.c (flags_argmatch): Accept a new argument that
specifies what flags "all" and thus "none" affect.
(FLAGS_ARGMATCH): Update flags_argmatch invocation.
* tests/input.at (-Werror is not affected by -Wnone and -Wall):
New test group.
(cherry picked from commit dab9663283437092d17af8ede75f3aff33380d53)

13 years ago* NEWS (2.5): Document fix for -Wno-KEY.
Joel E. Denny [Sun, 27 Mar 2011 19:46:29 +0000 (15:46 -0400)] 
* NEWS (2.5): Document fix for -Wno-KEY.
(cherry picked from commit 248dba53cb3a33b6cea83050263080f6f000fbfe)

13 years agodoc: fix confusing citation of LAC publication.
Joel E. Denny [Sun, 20 Mar 2011 21:41:23 +0000 (17:41 -0400)] 
doc: fix confusing citation of LAC publication.

Suggested by Akim Demaille.
* doc/bison.texinfo (LAC): Here.
(cherry picked from commit 56706c6167f1cbfde3f48ea63ce6eaa56369f971)

13 years agolr.default-reductions: rename "full" value to "most".
Joel E. Denny [Sun, 20 Mar 2011 21:35:10 +0000 (17:35 -0400)] 
lr.default-reductions: rename "full" value to "most".

Unlike "consistent" and "accepting", "full" doesn't answer the
question of "which states".
* doc/bison.texinfo (%define Summary): Update.
(Default Reductions): Update.
* src/print.c (print_reductions): Update.
* src/reader.c (prepare_percent_define_front_end_variables):
Update.
* src/tables.c (action_row): Update.
* tests/input.at (%define enum variables): Update.
* tests/reduce.at (%define lr.default-reductions): Update.
(cherry picked from commit a6e5a28079865c4924194685723962f198fd33ff)

13 years ago* src/parse-gram.c, src/parse-gram.h: Regenerate.
Joel E. Denny [Sun, 13 Mar 2011 22:03:59 +0000 (18:03 -0400)] 
* src/parse-gram.c, src/parse-gram.h: Regenerate.

13 years agonamed references: fix double free.
Akim Demaille [Wed, 9 Mar 2011 20:10:35 +0000 (21:10 +0100)] 
named references: fix double free.

In `rhs[name]: "a" | "b"', do not free "name" twice.
Reported by Tys Lefering.
<http://lists.gnu.org/archive/html/bug-bison/2010-06/msg00002.html>

* src/named-ref.h, src/named-ref.c (named_ref_copy): New.
* src/parse-gram.y (current_lhs): Rename as...
(current_lhs_symbol): this.
(current_lhs): New function.  Use it to free the current lhs
named reference.
* src/reader.c: Bind lhs to a copy of the current named reference.
* src/symlist.c: Rely on free (0) being valid.
* tests/named-refs.at: Test this.

(cherry picked from commit 8f462efe923947cc4e72deea5b0fa93a5f88000d)

Conflicts:

src/parse-gram.y