Akim Demaille [Fri, 23 Mar 2012 15:00:42 +0000 (16:00 +0100)]
tests: fix dependencies.
* tests/local.mk (check_SCRIPTS): Add atlocal and atconfig so
that they are properly updated before running tests.
(RUN_TESTSUITE_deps): New.
Use it to factor the dependencies of "*-check" targets,
especially those that don't bounce to the regular
"check-local" target, since then they don't benefit from the
proper dependencies (such as atlocal).
Akim Demaille [Fri, 16 Mar 2012 13:31:44 +0000 (14:31 +0100)]
doc: stmt, not stmnt.
* doc/bison.texinfo: s/stmnt/stmt/g. This is a
much more common abbreviation for "statement".
(cherry picked from commit 0860e38311eb80b0cba0b026d1fe7a8c81ffeec6)
Akim Demaille [Fri, 16 Mar 2012 13:29:43 +0000 (14:29 +0100)]
doc: save width.
* doc/bison.texinfo (Language and Grammar): Use the same
layout for an example in all the versions, i.e., keep
as general case what used to be used only for Info.
(cherry picked from commit 1d280c0999ada8fc3fb0a96d01530948642f4444)
Akim Demaille [Fri, 16 Mar 2012 13:26:00 +0000 (14:26 +0100)]
doc: reformat grammar snippets.
* doc/bison.texinfo: Convert the grammar examples to
use a narrower style. This helps fitting into the
@smallbook constraints.
http://lists.gnu.org/archive/html/bison-patches/2012-03/msg00011.html
(cherry picked from commit 5e9b6624d78e7390a05e2c6b0708cc4944fb1861)
Akim Demaille [Thu, 15 Mar 2012 14:40:04 +0000 (15:40 +0100)]
doc: use only @example, not @smallexample.
* doc/bison.texinfo: Convert all @smallexamples into @examples.
Adjust layout where needed.
(cherry picked from commit c93f22fcf703f6e9613c3b1b5129879bc1e79618)
Akim Demaille [Thu, 15 Mar 2012 14:36:20 +0000 (15:36 +0100)]
doc: style changes.
* doc/bison.texinfo: Avoid line width issues with TeX.
Upgrade ancient messages.
Move some comments to better looking places.
Add more @group.
(Mfcalc Symbol Table): Reduce variable scopes.
Prefer size_t for sizes.
Prefer declarations with an initial value.
Fix a @group environment.
(cherry picked from commit aaaa2aaef40eed197ebbd0bd45d8a66606cdb19c)
Paul Eggert [Sat, 17 Mar 2012 19:52:47 +0000 (12:52 -0700)]
doc: minor fixes to "Understanding" section
* doc/bison.texinfo (Understanding): Minor wording fixes and
improvements. Fixes problems reported in
<https://savannah.gnu.org/patch/?4306>.
(cherry picked from commit 35880c82dc7a774fc2eefc956c3db97b65082607)
Akim Demaille [Fri, 16 Mar 2012 13:29:43 +0000 (14:29 +0100)]
doc: save width.
* doc/bison.texinfo (Language and Grammar): Use the same
layout for an example in all the versions, i.e., keep
as general case what used to be used only for Info.
Akim Demaille [Fri, 16 Mar 2012 13:26:00 +0000 (14:26 +0100)]
doc: reformat grammar snippets.
* doc/bison.texinfo: Convert the grammar examples to
use a narrower style. This helps fitting into the
@smallbook constraints.
http://lists.gnu.org/archive/html/bison-patches/2012-03/msg00011.html
Akim Demaille [Thu, 15 Mar 2012 14:36:20 +0000 (15:36 +0100)]
doc: style changes.
* doc/bison.texinfo: Avoid line width issues with TeX.
Upgrade ancient messages.
Move some comments to better looking places.
Add more @group.
(Mfcalc Symbol Table): Reduce variable scopes.
Prefer size_t for sizes.
Prefer declarations with an initial value.
Fix a @group environment.
Akim Demaille [Thu, 15 Mar 2012 13:42:15 +0000 (14:42 +0100)]
c.m4: better newline control with b4_parse_param_use.
* data/c.m4: Use m4_ifvaln instead of m4_ifval where
applicable.
(b4_parse_param_use): Switch order between two nested
"if"s to avoid useless empty lines.
Adjust callers to avoid useless lines.
Akim Demaille [Wed, 22 Feb 2012 13:42:59 +0000 (14:42 +0100)]
tests: minor fixes/simplifications
* tests/local.at (AT_BISON_CHECK_NO_XML): Simplify sed programs,
quotation, and default value assignments.
Ensure a proper value to the numeric variables.
Reported by Lie Yan.
http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00000.html
Akim Demaille [Wed, 22 Feb 2012 13:42:59 +0000 (14:42 +0100)]
tests: minor fixes/simplifications
* tests/local.at (AT_BISON_CHECK_NO_XML): Simplify sed programs,
quotation, and default value assignments.
Ensure a proper value to the numeric variables.
Reported by Lie Yan.
http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00000.html
Akim Demaille [Tue, 6 Mar 2012 08:09:02 +0000 (09:09 +0100)]
tests: be robust to POSIXLY_CORRECT being defined.
* tests/local.at (AT_BISON_CHECK_NO_XML): Check if
POSIXLY_CORRECT is defined, not if it is defined to 1.
Reported by Lie Yan.
http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00000.html
Akim Demaille [Wed, 8 Feb 2012 13:44:24 +0000 (14:44 +0100)]
tests: be robust to quote style.
See <http://lists.gnu.org/archive/html/bug-bison/2012-01/msg00120.html>.
* src/main.c (main): Define the quoting style we use.
* tests/atlocal.in: Use ASCII style quotes during the tests.
(cherry picked from commit 39ac121457237a14437ee7d7bae28e368a201a7a)
Akim Demaille [Thu, 23 Feb 2012 19:14:42 +0000 (20:14 +0100)]
avoid direct strncmp calls.
Before this change, bison would accept either .tab and _tab equivalently,
whatever the current platform. Besides, it was not obeying everywhere
to the possible definition of TAB_EXT to something else than .tab.
For consistency, handle only TAB_EXT (".tab" on non DJGPP platforms).
Support for "_tab" is neither documented, nor tested.
* src/system.h (STRNCMP_LIT): New.
From Jim Meyering.
(STRPREFIX_LIT): New.
* src/files.c, src/getargs.c: Use it.
Akim Demaille [Tue, 6 Mar 2012 08:09:02 +0000 (09:09 +0100)]
tests: be robust to POSIXLY_CORRECT being defined.
* tests/local.at (AT_BISON_CHECK_NO_XML): Check if
POSIXLY_CORRECT is defined, not if it is defined to 1.
Reported by Lie Yan.
http://lists.gnu.org/archive/html/bug-bison/2012-03/msg00000.html
Akim Demaille [Fri, 24 Feb 2012 11:10:07 +0000 (12:10 +0100)]
build: fix more example extraction issues.
* Makefile.am (dist_TESTS): New.
(TESTS, EXTRA_DIST): Run and ship them.
* examples/calc++/local.mk: examples/calc++/calc++.stamp no longer
exists, don't try to ship it.
(.yy.stamp): New recipe.
Use it.
* examples/calc++/local.mk, examples/mfcalc/local.mk,
* examples/rpcalc/local.mk:
Don't ship the sources.
Adjust the CPPFLAGS: there is nothing left in srcdir.
(MAINTAINERCLEANFILES): Remove, now we are in builddir.
(TESTS): Rename as...
(dist_TESTS): this.
examples: factor the extractions into a single step
extexi had to be run in the extraction directory. Now, it can be
given the files with expected output directory. This allows to
use $(*_extracted) variables (before we had to list again their
members, but limited to their base names). In turn, this also
allows fusing the extraction recipes into a single one.
Also, it is currently too hard (or requires too much duplication,
since Make wants all the occurrences of the files to be prefixed with
$(srcdir)/, which is something Automake cannot support for *_SOURCES)
to work in the source tree. So extract, and compile scanners and parsers
in the build tree.
* examples/extexi (basename): New.
(BEGIN): Now "file_wanted" maps base name to extracted file name.
* examples/calc++/local.mk, examples/mfcalc/local.mk,
* examples/rpcalc/local.mk: Fuse extraction rules into...
* examples/local.mk: Here.
(extract, extracted): New.
Akim Demaille [Thu, 23 Feb 2012 17:51:51 +0000 (18:51 +0100)]
maint: use STREQ/STRNEQ.
* doc/bison.texinfo: Space change.
* src/system.h (STREQ, STRNEQ): New.
* src/files.c, src/ielr.c, src/lalr.c, src/muscle-tab.c,
* src/output.c, src/print.c, src/print_graph.c,
* src/reader.c, src/scan-skel.l, src/tables.c,
* src/uniqstr.c:
Use them.
* src/scan-gram.l: Do not use streq.h, use system.h's STREQ.
* cfg.mk: The documentation is an exception.
Akim Demaille [Thu, 23 Feb 2012 16:50:29 +0000 (17:50 +0100)]
doc: fix environment issues.
* doc/bison.texinfo: Do not use @verbatim, in particular when
we use @group inside.
Use @quotation instead of @display for frequently asked questions,
it looks much nicer.
(cherry picked from commit 71b52b1342c65a5497f6b3780481ff2deb932a56)
Akim Demaille [Thu, 23 Feb 2012 16:50:29 +0000 (17:50 +0100)]
doc: fix environment issues.
* doc/bison.texinfo: Do not use @verbatim, in particular when
we use @group inside.
Use @quotation instead of @display for frequently asked questions,
it looks much nicer.
Akim Demaille [Tue, 21 Feb 2012 14:38:09 +0000 (15:38 +0100)]
tests: fix regressions.
Exit status 63 is documented for version-mismatch.
* bootstrap.conf (gnulib_modules): Remove sysexits.
* src/system.h (EX_MISMATCH): Define.
* src/parse-gram.y (version_check): Use it instead of EX_CONFIG.
Akim Demaille [Tue, 21 Feb 2012 14:38:09 +0000 (15:38 +0100)]
tests: fix regressions.
Exit status 63 is documented for version-mismatch.
* bootstrap.conf (gnulib_modules): Remove sysexits.
* src/system.h (EX_MISMATCH): Define.
* src/parse-gram.y (version_check): Use it instead of EX_CONFIG.
Missing includes.
* tests/calc.at, tests/named-refs.at: Include assert.h.
Akim Demaille [Sun, 19 Feb 2012 17:17:19 +0000 (18:17 +0100)]
doc: stylistic improvements.
* doc/bison.texinfo: Prefer "continue" to empty loop bodies.
Add some @group/@end group to avoid poor page breaks.
(cherry picked from commit d4fca427636f15eb952974ff04e4fb046428440a)
Akim Demaille [Sun, 19 Feb 2012 11:54:09 +0000 (12:54 +0100)]
maint: address sc_prohibit_doubled_word.
* data/yacc.c, doc/bison.texinfo: Reword to avoid having to
disable that check.
* cfg.mk: No longer skip this test.
(cherry picked from commit 762caaf6393d71d740ad86855a15f5000721d103)
Akim Demaille [Sun, 19 Feb 2012 10:40:36 +0000 (11:40 +0100)]
maint: address sc_prohibit_always-defined_macros.
* cfg.mk: No longer skip it, except where EXIT_SUCCESS is used
as a witness for stdlib.h.
Skip this test when appropriate.
* data/yacc.c: Drop a note about why EXIT_SUCCESS is defined here.
Akim Demaille [Sun, 19 Feb 2012 10:13:04 +0000 (11:13 +0100)]
maint: address sc_bindtextdomain, sc_program_name and sc_prohibit_HAVE_MBRTOWC.
* bootstrap.conf (gnulib_modules): Require progname.
* src/complain.c, src/getargs.c, src/getargs.h, src/main.c: Use it.
* cfg.mk (exclude): New.
Use it.
Skip lib/main.c for bindtextdomain and set_program_name.
(cherry picked from commit 4d699f44e65d29b4d49cf68d7a3b4bf856eb5d1b)
Akim Demaille [Sun, 19 Feb 2012 10:40:36 +0000 (11:40 +0100)]
maint: address sc_prohibit_always-defined_macros.
* cfg.mk: No longer skip it, except where EXIT_SUCCESS is used
as a witness for stdlib.h.
Skip this test when appropriate.
* data/yacc.c: Drop a note about why EXIT_SUCCESS is defined here.
Akim Demaille [Sun, 19 Feb 2012 10:13:04 +0000 (11:13 +0100)]
maint: address sc_bindtextdomain, sc_program_name and sc_prohibit_HAVE_MBRTOWC.
* bootstrap.conf (gnulib_modules): Require progname.
* src/complain.c, src/getargs.c, src/getargs.h, src/main.c: Use it.
* cfg.mk (exclude): New.
Use it.
Skip lib/main.c for bindtextdomain and set_program_name.
Akim Demaille [Sun, 19 Feb 2012 09:27:05 +0000 (10:27 +0100)]
maint: address some syntax-issues remaining after cherry-picking from master.
* cfg.mk: Skip bison generated files, 2.5 is generating trailing
blanks. This is already fixed in master.
* tests/conflicts.at, tests/java.at: Fix white space issues.
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.
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.
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.
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.
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).
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.
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>.
Akim Demaille [Wed, 15 Feb 2012 12:36:24 +0000 (13:36 +0100)]
maint: rely on Automake for parsers.
* Makefile.am (AM_YFLAGS): Automake looks for "-d" alone.
Move other options in here.
(BISON): New.
(YACC): Use it.
(bison_SOURCES): Now that automake can see `-d' in AM_YFLAGS,
we can rely on it to compile and ship the parser header
files.
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.
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.
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.
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.