Commit Graph

1828 Commits

Author SHA1 Message Date
Tim Landscheidt
544b863511 Fix Doxygen comment.
* src/InadequacyList.h: s#</t>#</tt>#.
2012-04-01 14:07:31 +02:00
Akim Demaille
3e75a2c92b Merge remote-tracking branch 'origin/maint'
* origin/maint:
  bump to 2012 in skeletons.
  build: remove ancient Autoconf tests.
  doc: c++: complete the location documentation.
  c++: locations: provide convenience constructors.
  c++: locations: remove useless "inline".
  glr: do not use locations when they are not requested
  c++: use nullptr for C++11.
  build: simplify and improve the compiler warnings for tests.
  gnulib: update.
  maint: formatting changes.
  NEWS: update.
  Java: Fix syntax error handling without error token.
  tests: beware of -pedantic on large #line numbers.
  tests: when using the C++ compiler, use its flags too.

Conflicts:
	data/glr.c
	data/glr.cc
	data/lalr1.cc
	data/location.cc
	data/yacc.c
	tests/Makefile.am
2012-04-01 13:14:34 +02:00
Akim Demaille
ef51bfa744 c++: use nullptr for C++11.
C++11 introduces "nullptr" which plays the role of C's NULL, in
replacement of "0".  Fix the C++ skeletons to avoid warnings about
uses of "0" in place of "nullptr", and improve C skeletons to also use
this "nullptr" when compiled with a C++11 compiler.

* configure.ac: More C++ warnings.
* NEWS (2.5.1): Document this.
* data/c++.m4, data/c.m4 (b4_null_define): New.
(b4_null): Use YY_NULL instead of 0.
* data/glr.c, data/lalr1.cc, data/location.cc, data/yacc.c:
Call b4_null_define/b4_null where appropriate.
Use YY_NULL instead of NULL.
* data/location.cc (initialize): Accept a default argument,
YY_NULL.
* tests/actions.at, tests/calc.at: Adjust.

* data/glr.c, lib/libiberty.h, src/system.h (__attribute__):
Do not disable it when __STRICT_ANSI__ is defined, as, for
instance, it disables the __attribute__((unused)) which
protects us from some compiler warnings.
This was already done elsewhere in Bison, in 2001, see
4a0d893695.
* tests/regression.at: Adjust output.
2012-03-31 11:12:28 +02:00
Akim Demaille
37e884cd9a maint: formatting changes.
* src/system.h: Indent CPP directives using cppi.
2012-03-30 14:23:49 +02:00
Akim Demaille
06e0e52ca4 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 39ac121457)
2012-03-09 08:28:31 +01:00
Akim Demaille
f0f62c8c4d maint: update gnulib.
* gnulib: update.
	* src/scan-gram.l: Don't use the (former version of) STREQ.
2012-03-09 08:28:31 +01:00
Akim Demaille
39ac121457 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.
2012-03-09 08:04:31 +01:00
Akim Demaille
4663cb4d0c 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.
2012-03-09 07:33:23 +01:00
Akim Demaille
2a55930762 build: comment changes.
* Makefile.am, examples/calc++/local.mk, examples/local.mk,
	* examples/mfcalc/local.mk, examples/rpcalc/local.mk,
	* lib/local.mk, src/local.mk, tests/local.mk:
	Make the copyright licenses more uniform.
2012-02-24 14:01:13 +01:00
Akim Demaille
f518dbaf46 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.
2012-02-23 19:13:45 +01:00
Akim Demaille
6c6f6f4b23 regen.
* src/parse-gram.h, src/parse-gram.c: regen.
2012-02-23 16:10:12 +01:00
Akim Demaille
da209f943b 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.
(cherry picked from commit 459a57a90f)
2012-02-23 16:10:08 +01:00
Akim Demaille
6f8f253b15 regen.
* src/parse-gram.c, src/parse-gram.h: regen.
2012-02-21 16:32:01 +01:00
Akim Demaille
459a57a90f 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.
2012-02-21 15:42:13 +01:00
Akim Demaille
a055b2f07d 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 4d699f44e6)

Conflicts:

	cfg.mk
2012-02-19 18:24:17 +01:00
Akim Demaille
e7b94cc360 regen.
* src/parse-gram.c, src/parse-gram.h: Regen.
2012-02-19 12:56:14 +01:00
Akim Demaille
4d699f44e6 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.
2012-02-19 12:31:10 +01:00
Akim Demaille
f95faa25ae regen.
* src/parse-gram.c, src/parse-gram.h: Regen.
2012-02-19 10:22:51 +01:00
Akim Demaille
dd5611579b 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.

Conflicts:

	doc/bison.texinfo
	src/parse-gram.y
2012-02-19 10:21:06 +01:00
Akim Demaille
24bb5f8fb7 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.
2012-02-19 10:21:06 +01:00
Akim Demaille
6487c0b370 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.

Conflicts:

	cfg.mk
	lib/bitset_stats.c
	tests/glr-regression.at
2012-02-19 10:21:06 +01:00
Akim Demaille
d9b968d8d6 maint: regen.
* src/parse-gram.c, src/parse-gram.h: regen.
2012-02-18 19:32:18 +01:00
Akim Demaille
d0f2b7f856 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.
2012-02-18 19:32:18 +01:00
Akim Demaille
eff97eb54a 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.
2012-02-18 18:48:33 +01:00
Akim Demaille
108df813c4 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.
2012-02-18 15:41:50 +01:00
Akim Demaille
3f3e78dc89 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.

Based on commit 737406a32c and
commit 3d6ca33908.
2012-02-15 13:46:05 +01:00
Akim Demaille
3d6ca33908 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.
2012-02-15 13:33:42 +01:00
Akim Demaille
7726724a70 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.
2012-02-14 21:27:43 +01:00
Akim Demaille
360ae94ebc 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.
2012-02-14 21:00:59 +01:00
Akim Demaille
4c787a31df 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.
(cherry picked from commit 4a9cd8f24a)

Conflicts:

	src/muscle-tab.c
2012-02-08 11:40:41 +01:00
Akim Demaille
4a9cd8f24a 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.
2012-02-08 11:32:36 +01:00
Akim Demaille
270ff8be14 maint: remove stray debug code.
* src/Makefile.am (echo): Remove.
2012-01-31 09:42:56 +01:00
Akim Demaille
6e40b8d825 maint: space changes.
* src/Makefile.am: Use 2 leading spaces for variable definition
	spreading over several lines.
2012-01-31 09:42:04 +01:00
Akim Demaille
0802356481 maint: more silent-rules.
* doc/local.mk, src/local.mk, examples/calc++/Makefile.am: Use
	$(AM_V_GEN) and $(AM_V_at) where appropriate.
(cherry picked from commit f67c0a1c35)

Conflicts:

	doc/local.mk
	examples/calc++/Makefile.am
	src/local.mk
2012-01-31 09:41:25 +01:00
Jim Meyering
e187b40d31 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.
(cherry picked from commit acb5895680)

Conflicts:

	m4/.gitignore
2012-01-31 09:26:08 +01:00
Akim Demaille
f67c0a1c35 maint: more silent-rules.
* doc/local.mk, src/local.mk, examples/calc++/Makefile.am: Use
	$(AM_V_GEN) and $(AM_V_at) where appropriate.
2012-01-31 09:20:50 +01:00
Jim Meyering
acb5895680 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.
2012-01-29 21:19:20 +01:00
Akim Demaille
e6070f227e maint: remove trailing blanks.
* src/scan-code.l: Here.
2012-01-26 21:27:49 +01:00
Jim Meyering
abf3f74b21 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.
(cherry picked from commit 4aa9d1ff9c)

Conflicts:

	src/getargs.c
	src/muscle-tab.c
	src/reader.c
	tests/input.at
2012-01-24 19:31:27 +01:00
Jim Meyering
9874f80b2e 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.
(cherry picked from commit ae93e4e4b8)

Conflicts:

	src/scan-code.l
	src/scan-gram.l
	src/symtab.c
	tests/output.at
2012-01-23 14:07:53 +01:00
Jim Meyering
4aa9d1ff9c 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.
2012-01-19 09:09:42 +01:00
Jim Meyering
ae93e4e4b8 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.
2012-01-19 09:09:42 +01:00
Jim Meyering
da5462d42a maint: remove final trailing space
* src/scan-gram.l (%): Remove single space at end of line.
2012-01-19 06:56:34 +01:00
Jim Meyering
77315a51c1 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.

Conflicts:

	ChangeLog
	src/parse-gram.y
2012-01-15 10:57:18 +01:00
Jim Meyering
59420cd716 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.
2012-01-13 12:05:15 +01:00
Akim Demaille
c932d6135c maint: run "make update-copyright". 2012-01-13 11:48:14 +01:00
Jim Meyering
34136e65fc maint: run "make update-copyright". 2012-01-13 10:09:44 +01:00
Akim Demaille
139c548a02 scanner: fix typo.
* src/scan-skel.l (@`): s/emtpy/empty/.
	Reported by Tim Landscheidt.

Conflicts:

	src/scan-skel.l
2012-01-11 16:49:53 +01:00
Akim Demaille
33a1fa4e81 scanner: fix typo.
* src/scan-skel.l (@`): s/emtpy/empty/.
	Reported by Tim Landscheidt.
2012-01-11 16:46:36 +01:00
Joel E. Denny
e969014232 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.
2011-07-24 18:13:05 -04:00