Commit Graph
100 Commits
Author SHA1 Message Date
Akim Demaille 59fba180a5 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.
2012-02-24 13:32:17 +01:00
Akim Demaille 2191bb749b maint: fix example extraction issues.
calc++: don't rely on Automake to compile a C++ parser.

Basically, revert commit 609b3d8096,
Automake 1.11.3 is not safe enough for C++ parser.

	* examples/calc++/calc++-parser.hh: Remove.
	* examples/calc++/local.mk (examples/calc++/calc++-parser.stamp):
	New.

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.
2012-02-24 11:04:45 +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 71b52b1342 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.
2012-02-23 17:53:08 +01:00
Akim Demaille baf22389ef maint: gitignore.
* examples/mfcalc/.gitignore, examples/rpcalc/.gitignore: Fix.
2012-02-22 14:55:32 +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 4c4d35394d tests: post-process stderr to normalize quotes.
* tests/bison.in: Save bison's stderr, and convert gettextized
	quotes to plain ASCII.
2012-02-21 15:42:13 +01:00
Akim Demaille a6b2f4fc02 glr: fix ambiguity reports.
Fix a regression introduced in commit
783aa653f4.

	* tests/glr-regression.at (Ambiguity reports): New.
	* data/glr.c (yyreportTree): Fix an offset error.
2012-02-21 14:41:31 +01:00
Akim Demaille d4fca42763 doc: stylistic improvements.
* doc/bison.texinfo: Prefer "continue" to empty loop bodies.
	Add some @group/@end group to avoid poor page breaks.
2012-02-19 18:17:19 +01:00
Akim Demaille 24ec083743 doc: check the rpcalc.
* doc/bison.texinfo: Tag rpcalc.y snippets.
	Add missing includes.
	(Rpcalc Rules): Don't issue leading tabs.
	Complete an Info menu.
	Use @result.
	* examples/rpcalc/local.mk: New.
	* examples/rpcalc/rpcalc.test: New.
	* examples/local.mk: Use them.
	* examples/mfcalc/mfcalc.test: Remove dup test.
	* examples/test: Disable debug traces.
2012-02-19 13:16:15 +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 762caaf639 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.
2012-02-19 12:54:09 +01:00
Akim Demaille db3458d6ea 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.
2012-02-19 12:54:06 +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 222342aa67 maint: remove stray file.
* config.hin: Remove.
2012-02-19 12:30:52 +01:00
Akim Demaille a7497ca6b6 bitset: fix an incorrect error message.
* lib/bitset_stats.c: here.
	Reported by Stefano Lattarini.
2012-02-19 10:31:20 +01:00
Akim Demaille f483f4f8ec maint: remove trailing empty lines.
* cfg.mk: No longer skip sc_prohibit_empty_lines_at_EOF, except
	for parse-gram.h (generated).
	* examples/mfcalc/.gitignore, lib/.gitignore, m4/.gitignore,
	* po/.gitignore, runtime-po/.gitignore: Remove trailing/leading
	empty lines.
2012-02-18 19:32:19 +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 831a4fdb5e maint: gnulib: upgrade. 2012-02-18 15:25:31 +01:00
Akim Demaille 578e34133a doc: mfcalc: fix includes.
* doc/bison.texinfo: math.h is needed early.
2012-02-17 15:49:52 +01:00
Akim Demaille 5a9c6b89d0 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.
2012-02-17 15:49:00 +01:00
Akim Demaille c3a2e0e6dd 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.
2012-02-17 10:20:03 +01:00
Akim Demaille c1192f8af3 mfcalc: extract and exercise.
* examples/mfcalc/local.mk, examples/mfcalc/test: New,
	based on calc++'s ones.
	* examples/local.mk: Include mfcalc/local.mk.
2012-02-16 15:52:14 +01:00
Akim Demaille 2e4986a88d 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).
2012-02-16 15:52:14 +01:00
Akim Demaille aeb57fb68d 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.
2012-02-16 15:52:14 +01:00
Akim Demaille f9c75dd016 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.
2012-02-16 15:52:13 +01:00
Akim Demaille 0bb5783b38 tests: c++: stylistic changes.
* tests/c++.at: Don't use void for incoming arguments.
	Prefer cstdlib to stdlib.h.
2012-02-16 15:52:13 +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 737406a32c maint: help Automake reading Yacc flags.
* Makefile.am (AM_YFLAGS): Automake looks for "-d" alone.
2012-02-15 12:55:36 +01:00
Akim Demaille 609b3d8096 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.
2012-02-15 11:31:49 +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 72c12bfa1b variant: fix the example.
* examples/variant.yy: Adjust to "assert" being now
	"parse.assert".
2012-02-14 20:14:55 +01:00
Akim Demaille bdf66d1db4 maint: more authors.
* AUTHORS: here.
	Suggested by Tys Lefering.
2012-02-14 20:08:25 +01:00
Akim Demaille 3272a7256f 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.
2012-02-14 20:08:20 +01:00
Akim Demaille 3b4d62d526 maint: remove obsolete file.
* etc/make-ChangeLogs: Remove (used for rcs to cvs migration!).
	Reported by Tys Lefering.
2012-02-14 20:08:11 +01:00
Akim Demaille a6552c5d2a 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.
2012-02-10 09:17:45 +01:00
Akim Demaille 199a2d6d72 tests: lalr1.cc: check syntax_error.
* tests/c++.at (Syntax error as exception): New.
2012-02-10 09:17:45 +01:00
Akim Demaille a8c5aaa53e tests: don't require locations uselessly.
* tests/c++.at (Syntax error discarding no lookahead): Contrary to
	2.5, C++ parsers can work without locations.
2012-02-10 09:17:45 +01:00
Akim Demaille 9bfbf75bdf 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 $<.
2012-02-10 09:17:45 +01:00
Akim Demaille beadb220d5 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.
2012-02-10 09:17:44 +01:00
Akim Demaille f86a780785 glr: formatting changes.
* data/glr.c: Split long strings.
2012-02-10 09:17:38 +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 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
Akim Demaille 888b6ddfe4 tests: fix expected output.
* tests/actions.at (YYBACKUP): here.
2012-01-26 21:52:44 +01:00
Akim Demaille 36021b239d maint: fix configure.ac
Fix commit 1890a2a816.

	* configure.ac: Fix variable assignment.
2012-01-26 21:37:15 +01:00
Akim Demaille d115aad911 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.
2012-01-26 21:18:24 +01:00
Akim Demaille 2c7f50be62 maint: update TODO.
* TODO (Labeling the symbols): Remove, it's done ("Name references").
2012-01-25 16:36:03 +01:00
Akim Demaille 93ebddb11f maint: update THANKS.
* THANKS: Update Tys's address, on his request.
2012-01-25 13:25:22 +01:00
Akim Demaille 1890a2a816 maint: fix --gcc-warnings support.
* configure.ac: Use enable_gcc_warnings instead of enableval,
	which is valid only with AC_ARG_ENABLE.
2012-01-25 13:04:43 +01:00
Akim Demaille da1eb15bc9 maint: silent-rules.
* configure.ac: Ask for silent-rules support.
	Enable it by default.
2012-01-25 12:59:02 +01:00
Akim Demaille 8bd2f687b6 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.
2012-01-20 14:48:53 +01:00
Akim Demaille 2d404819d0 java: fix reduction traces.
* data/lalr1.java (yy_reduce_print): Fix state index.
	Reported by Tim Landscheidt.
2012-01-15 14:24:07 +01:00
Akim Demaille 09aa8a885b maint: factor copyright year.
* configure.ac: Use $PACKAGE_COPYRIGHT_YEAR instead of repeating it.
2012-01-13 12:04:40 +01:00
Akim Demaille a64b1f68b1 maint: catch missing gnulib macros.
* configure.ac: Add m4_pattern_forbid.
2012-01-13 12:04:35 +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 a4d1bf6a9c 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 8f462efe92)

Conflicts:

	src/parse-gram.y
2011-03-09 21:10:35 +01:00
Akim Demaille 17d7bf83d0 tests: style changes.
* tests/named-refs.at (Redundant words in LHS brackets)
	(Unresolved references): here.
2011-03-09 21:06:10 +01:00
Akim Demaille c49784f5f5 Address GCC warnings about shadowed local variables (yyflag).
* data/glr.c (YYCHK): Rename yyflag as yychk_flag.
	(yyprocessOneStack): Reduce the scope of yyaction, yyconflicts,
	yyrule, and yyflag.
2010-09-01 15:13:27 +02:00
Akim Demaille 38435078b1 lalrl1.cc: give a chance to user defined YYLLOC_DEFAULT.
* data/lalr1.cc (YYLLOC_DEFAULT): Move its definition from the
	header file to the implementation file, after the user %code
	sections.
	* NEWS: Document it.
2010-05-12 10:27:17 +02:00
Akim Demaille 27290b6035 NEWS: fix chronology.
* NEWS (C++ parsers use YYRHSLOC): Move from ?.? to 2.5.
2010-05-12 10:25:39 +02:00
Akim Demaille e944aaff36 doc: please Emacs.
* doc/bison.texinfo (Local Variables): Move this after the
	LocalWords, since the latter are looked for in the whole document,
	while the former are looked for only at its end.
	Require american spell checking.
2010-05-11 21:31:31 +02:00
Akim Demaille 86e5b4402f doc: fix lalr1.cc documentation.
* doc/bison.texinfo (C++ Scanner Interface): Fix yylex signature.
	(C++ Bison Interface): Fix lalr1.cc skeleton name.
	(C++ Parser Interface): Fix semantic_type and location_type names.
	Document yy::parser::token.
	Reported by Jerry Quinn.

(cherry picked from commit 0100cd629d)

Conflicts:

	ChangeLog
	doc/bison.texinfo
2010-05-10 10:41:21 +02:00
Akim Demaille bb9191dd31 c++: use YYRHSLOC.
* data/lalr1.cc (YYRHSLOC): New.
	(YYLLOC_DEFAULT): Use it.
	* data/glr.cc: If location_type was user defined, do not include
	location.hh, and do not produce location.hh and position.hh.
	* tests/calc.at (YYLLOC_DEFAULT): Use YYRHSLOC.
	Check that glr.cc supports user defined location_type.
	* NEWS: Document this.
2010-05-10 09:59:11 +02:00
Akim Demaille f38ae16f37 comment change.
* data/c++.m4: here.
2010-05-09 14:36:09 +02:00
Akim Demaille 8aec287e64 doc: fix typo.
* tests/synclines.at: here.
2010-05-07 17:45:18 +02:00
Akim Demaille c826013fb3 tests: enhance AT_SYNCLINES_COMPILE.
* tests/synclines.at (AT_SYNCLINES_COMPILE): More distcc patterns.
	(AT_TEST_SYNCLINE): Remove GCC 4.5 protection which is already
	taken care of in AT_SYNCLINES_COMPILE.
2010-05-04 11:34:05 +02:00
Akim Demaille 7789b6e3e7 lalr1.cc: don't generate location.hh when location_type is defined
* data/bison.m4 (b4_percent_define_get): Accept a default value.
	* data/c++.m4: Do not provide a default value for the %define
	variable location_type, rather, use b4_percent_define_get with a
	default argument where its value is needed.
	* data/lalr1.cc: Do not load location.cc (which outputs both
	location.hh and position.hh) if the user defined location_type.
	Do not include location.hh either.
2010-05-04 11:34:03 +02:00
Akim Demaille 19ad326be4 lalr1.cc: minor refactoring.
* data/lalr1.cc: Don't issue empty namespaces.
2010-05-04 11:34:01 +02:00
Akim Demaille f5da8149a2 tests: fix %printer.
Currently, there is no check that %printer ... <foo> (nor
%destructor) is about an existing <foo> type.  This C++ test had
it wrong (<::std::string> vs. <std::string>).

	* tests/c++.at (AT_CHECK_VARIANTS): In list.yy, redefine the
	pretty-printing of lists into something better for parser traces.
	Update the expected output.
	Fix correspondance between %type/%token and %printer.
2010-05-04 11:33:59 +02:00
Akim Demaille 49976d5c45 lalr1.cc: location_type: make sure we don't depend on loc.(begin|end).
* tests/calc.at (Span): Instead of begin/end, as in the built-in
	location class, use first and last.
	Define YYLLOC_DEFAULT to adjust to these changes.
	* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Adjust to the
	location_type changes.
2010-05-04 11:32:39 +02:00
Akim Demaille 67f1a2c254 tests: calc: minor refactoring.
* tests/calc.at (_AT_DATA_CALC_Y): Simplify yylex.
2010-04-13 23:32:00 +02:00
Akim Demaille 4f756f887b tests: calc: simplify location management.
* tests/local.at (AT_LOC_PUSHDEF, AT_LOC_POPDEF): New.
	(_AT_BISON_OPTION_PUSHDEFS, AT_BISON_OPTION_POPDEFS): Use them to
	define the appropriate AT_LOC accessors.
	* tests/calc.at: Use AT_LOC accessors.
2010-04-13 23:31:57 +02:00
Akim Demaille 24bb8c8c25 test location_type.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS):
	Define AT_LOCATION_TYPE_IF.
	(_AT_BISON_OPTION_POPDEFS): Undefine AT_LOCATION_TYPE_IF.
	* tests/calc.at (_AT_DATA_CALC_Y): When %define location_type is
	used, provide a user location type and use it.
	(Simple LALR1 C++ Calculator): Add a test case for location_type.
2010-04-13 23:31:55 +02:00
Akim Demaille af129079f0 tests: check fclose's return value.
* tests/calc.at (_AT_DATA_CALC_Y): Check fclose's return status.
2010-04-13 23:31:52 +02:00
Akim Demaille 36dc3637a4 tests: don't depend on the actual location type.
* tests/calc.at: Use yy::parser::location_type rather than
	yy::location, since the former is always right, and might point to
	another type than the latter.
2010-04-13 23:31:49 +02:00
Akim Demaille c499231de4 formatting changes.
* tests/calc.at: Formatting changes.
2010-04-13 23:31:47 +02:00
Akim Demaille 7799ef1594 lalr1.cc: remove useless forward declaration.
* data/lalr1.cc: Include location.hh before stack.hh.
	Remove the useless forward declarations of position and location.
	Reported by Chris Morley.
	* data/glr.cc: Likewise.
2010-04-13 23:29:29 +02:00
Akim Demaille 218287f567 remove useless include.
* src/graphviz.h: Don't include stdbool.h.
2010-04-05 21:34:35 +02:00
Akim Demaille 8176ab33c8 graph: sign the output file.
* src/graphviz.c (start_graph): Issue comments about Bison.
	Suggested by Tys Lefering.
2010-04-05 21:34:34 +02:00
Akim Demaille 10a697de00 fix comments.
* src/graphviz.h: Add missing license notice.
	Document.
(cherry picked from commit c7b5c7fd06)
2010-03-30 14:42:13 +02:00
Akim Demaille d6b347e433 tests: fix 250: parse.error=verbose overflow.
* tests/regression.at (parse.error=verbose overflow): Avoid the
	double inclusion of stdlib.h as it triggers hard errors.
2010-03-25 17:06:16 +01:00
Akim Demaille 298e8ad91a Formatting changes.
* doc/bison.texinfo: here.
2009-09-23 15:07:29 +02:00
Akim Demaille 5ad90d528d todo: short term
* TODO (syntax_error, variable names): New.
2009-09-17 09:43:23 +02:00
Akim Demaille a6ca4ce229 doc: fixes.
* doc/bison.texinfo: here.
	Reported by Alex Rozenman.
2009-09-17 09:42:30 +02:00
Akim Demaille 3cdc21cfd7 doc: lalr1.cc and variants.
* doc/bison.texinfo (Decl Summary): Document the "lex_symbol" and
	"variant" %define variables.
	(C++ Semantic Values): Split into...
	(C++ Unions, C++ Variants): these.
	The latter is new.
	(C++ Parser Interface): Fix type names.
	Document parser::syntax_error.
	Document the fact that locations are not mandatory.
	(C++ Scanner Interface): Split into...
	(Split Symbols, Complete Symbols): these.
	The later is new.
	(Calc++ Parsing Driver): Use variants.
	Add more comments.
	Adjust style.
	(Calc++ Parser): Declare all the tokens, no
	longer accept raw characters.
	Remove %union.
	Adjust types and printers.
	Remove destructors.
	(Calc++ Scanner): Use make_<SYMBOL> functions.
	Use strerror in error message.
2009-09-16 22:56:41 +02:00
Akim Demaille f50bfcd6a1 doc: spell checking.
* doc/bison.texinfo: here.
2009-09-16 22:56:37 +02:00
Akim Demaille 6b5a0de960 doc: comment changes.
* doc/bison.texinfo: Comment changes.
2009-09-16 22:56:24 +02:00
Akim Demaille 2b08bcebf0 lalr1.cc: factor the yytranslate_ invocation in make_SYMBOLS.
* data/c++.m4, data/lalr1.cc (parser::symbol_type): Change the
	constructor to take a token_type instead of the (internal) symbol
	number.
	Call yytranslate_.
	* data/variant.hh (b4_symbol_constructor_define_): Therefore,
	don't call yytranslate_ here.
2009-09-16 17:45:22 +02:00
Akim Demaille c981ce9b2b TODO: statistics.
* TODO (Figures): New.
2009-09-16 17:31:03 +02:00
Akim Demaille ff60136654 lalr1.cc: syntax_error as exceptions.
It is common to use sort of factories in the user actions.  These
factories may check some "syntactic" constraints that are not
enforced by the grammar itself.  This is possible using YYERROR
within the action itself.  Provide the user with a means to throw
a syntax_error exception.

	* data/c++.m4 (b4_public_types_declare, b4_public_types_define):
	Declare and define yy::parser::syntax_error.
	* data/lalr1.cc: Include stdexcept.
	(yy::parser::parse): Wrap the user action within a try/catch.
	* data/glr.cc: Include stdexcept.
2009-09-09 16:38:40 +02:00
Akim Demaille 2966006237 lalr1.cc: add missing "inline".
* data/c++.m4 (b4_public_types_define): Add missing inline to
	implementations provided in headers.
2009-09-09 16:38:36 +02:00
Akim Demaille 2055a44ed2 %param: documentation.
* NEWS (2.6): Document %param, %lex-param, and %parse-param
	changes.
	* doc/bison.texinfo: Document that %lex-param and %parse-param
	are n-ary.
	Changes some examples to demonstrate it.
	(Calc++ Parser): Use %param.
2009-09-09 16:26:27 +02:00
Akim Demaille dd875058b2 Regen. 2009-09-09 16:26:23 +02:00
Akim Demaille f71db70bce style changes.
* src/parse-gram.y (add_param): Scope changes.
2009-09-09 16:26:18 +02:00
Akim Demaille eaca4c1103 %parse: support several arguments.
* src/parse-gram.y (current_param): New.
	(param_type): Add param_none.
	(params): New nonterminal.
	Use it.
2009-09-09 16:26:13 +02:00