Commit Graph
100 Commits
Author SHA1 Message Date
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
Akim Demaille b18cdd91e8 Regen. 2009-09-09 16:26:09 +02:00
Akim Demaille a7706735d1 %param.
Provide a means to factor lex-param and parse-param common
declarations.

	* src/parse-gram.y (param_type): New.
	Define a %printer for it.
	(add_param): Use it.
	(%parse-param, %lex-param): Merge into...
	(%parse): this new token.
	Adjust the grammar to use it.
	* src/scan-gram.l (RETURN_VALUE): New.
	(RETURN_PERCENT_FLAG): Use it.
	(RETURN_PERCENT_PARAM): New.
	Use it to support %parse-param, %lex-param and %param.
2009-09-09 15:45:25 +02:00
Akim Demaille f4c75eaf2a Adjust synclines in src/parse-gram.[ch].
* tests/bison.in: Do some magic (including working around issues
	with ylwrap) when this wrapper is used to compile
	src/parse-gram.y.
2009-09-04 10:55:16 +02:00
Akim Demaille 2755de8fec NEWS: Internationalization.
* NEWS (2.4.2): Add "Internationalization" item.
2009-09-03 11:03:14 +02:00
Akim Demaille 1deef26d0c bootstrap: fix/improve find_tool.
* bootstrap (find_tool): Improve error messages.
	Fix typo about find_tool_names.
2009-09-03 10:54:39 +02:00
Akim Demaille 3bed3a757f tests: portability fix.
* tests/input.at (Bad escapes in literals): Don't expect "echo
	'\0'" to output \ then 0.
2009-08-26 13:21:18 +02:00
Akim Demaille 17aed602c6 doc: fixes.
* doc/bison.texinfo: Fix minor Texinfo errors.
2009-08-19 14:51:50 +02:00
Akim Demaille 9142239a59 tests: distcc compliance.
* tests/synclines.at (AT_SYNCLINES_COMPILE): Discard distcc's
	error messages from the output.
2009-08-19 14:41:00 +02:00
Akim Demaille 171ad99d64 variables: simplify the upgrade of namespace into api.namespace.
This patch simplifies "variables: rename namespace as api.namespace",
commit 6750106107.
Suggested by Joel E. Denny in
http://lists.gnu.org/archive/html/bison-patches/2009-07/msg00006.html

	* src/muscle-tab.c (muscle_percent_variable_update): New.
	(muscle_percent_define_insert): Use it in replacement of the
	previous tr invocation.
	Remove variable_tr, no longer needed.
	* data/bison.m4 (b4_percent_define_copy_, b4_percent_define_copy):
	Remove.
	* data/c++.m4: No longer handle namespace -> api.namespace.
	* tests/input.at (%define backward compatibility): Check that
	namespace is treated as api.namespace.
2009-08-19 14:24:15 +02:00
Akim Demaille d59e456dbf 2009-08-19 Akim Demaille <[email protected]>
doc: %initial-action to initialize yylloc.
	Reported by Bill Allombert.
	* doc/bison.texinfo: Set fill-column to 76.
	(Location Type): Document the use of %initial-action to initialize
	yylloc.
2009-08-19 13:34:48 +02:00
Akim Demaille ceb8b8e6b5 lalr1.cc: use state_type.
* data/lalr1.cc (yysyntax_error_): Use state_type.
	Move argument names into yy*.
2009-08-19 10:37:00 +02:00
Akim Demaille 7580c37942 lalr1.cc: get rid of yyparse's yystate.
yystate and yystack_[0].state are equal, keep only the latter.
The former was also used as a temporary variable to compute the
post-reduction state.  Move this computation into an auxiliary
function.

	* data/glr.c (yyLRgotoState): Fuse variable definition and first
	assignment.
	* data/lalr1.cc (yy_lr_goto_state_): New.
	(yyparse): Use it.
	Replace remaining uses of yystate by yystate_[0].state.
	Remove the former.
2009-08-19 10:36:57 +02:00
Akim Demaille c4dc4c4671 lalr1.cc: destroy $$ when YYERROR is called.
* data/lalr1.cc (yyreduce): Compute the resulting state before
	running the user action so that yylhs is a valid symbol.
	(yyerrorlab): Since yylhs is complete (it knows its type), we can
	simply call yy_destroy_ to destroy $$ on YYERROR invocations.
	* tests/c++.at (AT_CHECK_VARIANTS): Test YYERROR with variants.
2009-08-19 10:36:53 +02:00
Akim Demaille af6d235843 build: require gettext 0.17.
Suggested by Bruno Haible.
http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00009.html

	* configure.ac: require gettext 0.17 to ensure compatibility with
	gnulib.
2009-08-17 12:58:02 +02:00
Akim Demaille 91a2b9b1b2 build: lower gettext requirements.
Bison was uselessly requiring the formatstring macros from
gettext, which resulted in mo files not being installed on systems
that perfectly supported Bison mo files.  Lower the requirement.
http://lists.gnu.org/archive/html/bug-bison/2009-08/msg00006.html

	* configure.ac: Require need-ngettext instead of
	need-formatstring-macros.
	Reported by Martin Jabocs.
	Suggested by Bruno Haible.
	* INSTALL: Restructure.
	(Internationalization): New.
(cherry picked from commit b9e42bb439)
2009-08-17 12:58:02 +02:00
Akim Demaille 13bcafb580 gnulib: update.
* gnulib: Update to newest.
2009-08-17 12:58:01 +02:00
Akim Demaille 28169bab1f tests: GCC 4.5 compliance.
* tests/synclines.at (AT_SYNCLINES_COMPILE): Adjust to GCC 4.5's
	messages about #error.
2009-08-12 16:30:52 +02:00
Akim Demaille 9f14e18736 build: fix the generation of the documentation.
Some of our targets use "bison --help", but they can't depend on
"bison" itself (to avoid additional requirements on the user), so
they used to call "make src/bison" in the commands.  Then
concurrent builds may fail: one make might be aiming one of its
jobs at compiling src/bison, and another job at generating the man
page.  If the latter is faster than the former, then we have two
makes that concurrently try to compile src/bison.

This might also be a more convincing explanation for the failure
described in the patch "build: fix paths".

	* Makefile.am (SUFFIXES): Initialize.
	* build-aux/move-if-change: New, symlink to gnulib's.
	* build-aux/local.mk: Ship it.
	* doc/common.x: Remove, merged into...
	* doc/bison.x: here.
	* doc/local.mk (doc/bison.help): New.
	($(CROSS_OPTIONS_TEXI)): Depend on it.
	Use src/bison.
	(.x.1): Replace with...
	(doc/bison.1): this explicit, simpler, target.
	(common_dep): Remove, inlined where appropriate.
	(SUFFIXES, PREPATH): Remove, unused.
2009-08-12 16:30:48 +02:00
Akim Demaille d1b55e8115 gnulib: improve prefixing.
* configure.ac (gl_PREFIXED_LIBOBJS): Don't rename it, rather,
	change the value of...
	(gl_LIBOBJS): this.
	Adjust more variables.
	* etc/prefix-gnulib-mk (prefix_assignment): Don't rename
	gl_LIBOBJS.
	(prefix): Also transform rules whose targets have slashes.
	Use $prefix liberally.
	Map @MKDIR_P@ to $(MKDIR_P).
	Prefix directories that are mkdir'd.
2009-08-12 16:30:43 +02:00
Akim Demaille 838205d547 build: fix paths.
When using $(top_builddir) inconsistently, Make (including GNU
Make) is sometimes confused.  As a result it may want to build
lib/libbison.la and $(top_builddir)/lib/libbison.la (the same
file, different names) concurrently, which, amusingly enough,
might end with:

  ranlib lib/libbison.a
  ranlib lib/libbison.a
  make[2]: *** [lib/libbison.a] Segmentation fault

on OS X.

	* doc/local.mk, src/local.mk: Do not use $(top_builddir) when not
	needed.
2009-08-12 14:12:13 +02:00
Akim Demaille 67af719840 distcheck: fix.
* examples/calc++/Makefile.am: (EXTRA_DIST): Ship calc.stamp.
2009-08-12 14:02:01 +02:00
Akim Demaille 5ece73eaa1 build: avoid concurrent extraction of calc++.
* examples/calc++/Makefile.am (calc.stamp): New.
	Depend on it to create the sources of calc++ so that concurrent
	builds don't launch several "extexi" in parallel.
	Not only this is inefficient, this also builds incorrect sources
	with several extractions mixed together.
2009-06-29 15:09:21 +02:00
Akim Demaille ad597a7877 parse.error: fix.
* data/bison.m4: Move code related to specific variables after the
	definition of the variable-maintaining macros so that we don't
	"invoke" b4_percent_define_check_values before it is defined.
2009-06-29 15:08:47 +02:00
Akim Demaille 2f5b478e4b Regen. 2009-06-29 13:37:54 +02:00
Akim Demaille 31b850d2d4 variables: parse.error
Implement, document, and test the replacement of %error-verbose
by %define parse.error "verbose".

	* data/bison.m4 (b4_error_verbose_if): Reimplement to track the
	values of the parse.error variable.
	Make "simple" its default value.
	Check the valid values.
	* src/parse-gram.y: Use %define parse.error.
	(PERCENT_ERROR_VERBOSE): New token.
	Support it.
	* src/scan-gram.l: Support %error-verbose.

	* doc/bison.texinfo (Decl Summary): Replace the documentation of
	%define error-verbose by that of %define parse.error.
	* NEWS: Document it.

	* tests/actions.at, tests/calc.at: Use parse.error instead of
	%error-verbose.
2009-06-29 13:37:44 +02:00
Akim Demaille b5c212b61a hash: check insertion for memory exhaustion.
* src/uniqstr.c (uniqstr_new): New.
2009-06-25 06:06:38 +02:00
Akim Demaille 6750106107 variables: rename namespace as api.namespace.
Discussed in
http://lists.gnu.org/archive/html/bison-patches/2009-04/msg00033.html

	* data/bison.m4 (b4_percent_define_copy_, b4_percent_define_copy):
	New.
	(b4_percent_define_use): New.
	Use it where applicable.
	* data/c++.m4: Replace uses of the variable "namespace" by
	"api.namespace".
	Default the latter to the former.
	* doc/bison.texinfo (Decl Summary): Document "namespace" as
	obsolete.
	Document api.namespace.
	Use @samp to document %define uses, keep @code for identifiers.
	* NEWS: Likewise.
	* tests/c++.at, tests/input.at: Test api.namespace instead of
	namespace. (The tests passed with namespace.)
2009-06-24 17:38:48 +02:00
Akim Demaille 4197678606 style changes.
* data/xslt/xml2dot.xsl, data/xslt/xml2xhtml.xsl: Space changes.
	* src/print-xml.c: Style changes.
	* tests/conflicts.at: Comment changes.
2009-06-11 14:53:05 +02:00
Akim Demaille 44bb908485 xml: beware of user strings used to give a %prec to rules.
* tests/conflicts.at (%prec with user strings): New.
	* src/gram.c (grammar_rules_print_xml): Escape the precedence for
	XML output.
2009-06-11 14:53:03 +02:00
Akim Demaille 04d1e39dd3 hash: check insertion for memory exhaustion.
* src/muscle-tab.c (muscle_insert, muscle_grow)
	* src/state.c (state_hash_insert): Check the return value of
	hash_insert.
2009-06-11 14:42:12 +02:00
Akim Demaille a887366955 tests: honor TESTSUITEFLAGS in every check target.
* tests/local.mk (RUN_TESTSUITE): New.
	(check-local, installcheck-local, maintainer-check-g++)
	(maintainer-check-posix, maintainer-check-valgrind): Use it.
2009-06-11 14:36:57 +02:00
Akim Demaille b584460cc3 gnulib: update.
The previous patch accidently sent back gnulib in the past.
Reported by Eric Blake.

	* gnulib: update to latest.
2009-06-11 09:15:36 +02:00
Akim Demaille 8893145a0c deterministic test suite.
Some consistency checks on symbols are performed after all the
symbols were read, by an iteration over the symbol table.  This
traversal is nondeterministic, which can be a problem for test
cases.

Avoid this.

Addresses another form of nondeterminism reported by Joel E. Denny.
http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html

	* tests/input.at (Numbered tokens): Split the hexadecimal/decimal
	test in two.
	Use different file names for the three tests to make the
	maintenance easier.
2009-06-10 20:16:39 +02:00
Akim Demaille 92d7a23ace gnulib: update.
* gnulib: Update to latest.
	* lib/.cvsignore, lib/.gitignore, m4/.cvsignore,
	* m4/.gitignore: Regen.
	* src/symtab.c (symbol_from_uniqstr, semantic_type_from_uniqstr):
	Call xalloc_die on hash_insert failures.
	Requested by the new __warn_unused_result__ attribute of
	hash_insert.
2009-06-10 10:56:19 +02:00
Akim Demaille 12cf133f34 deterministic user-token-number redeclaration errors.
Address nondeterminism reported by Joel E. Denny.
http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00023.html

	* src/uniqstr.h: Comment changes.
	* src/location.h (boundary_cmp, location_cmp): New.
	* src/symtab.c (user_token_number_redeclaration): New.
	(symbol_translation): Use it.
	* tests/input.at (Numbered tokens): Adjust the expected output.
2009-06-10 10:38:42 +02:00
Akim Demaille 796a2b0ab0 build: avoid ignored errors.
* doc/local.mk ($(CROSS_OPTIONS_TEXI)): Don't generate ignored
	errors, they pollute the output.
2009-05-25 17:03:47 +02:00
Akim Demaille 9b04dad70a remove useless variable.
* src/getargs.c (skeleton_arg): Remove now useless variable.
	Should help the compiler see that this printf-like call is sane.
2009-05-19 11:34:17 +02:00
Akim Demaille 4c6622c2dd Rename token.prefix as api.tokens.prefix.
Discussed here.
http://lists.gnu.org/archive/html/bison-patches/2009-05/msg00024.html.

	* NEWS, data/bison.m4, data/c.m4, data/java.m4, doc/bison.texinfo,
	* tests/c++.at, tests/calc.at, tests/java.at, tests/local.at
	(token.prefix): Rename as...
	(api.tokens.prefix): this.
2009-05-15 16:10:52 +02:00
Akim Demaille 3c248d705d doc: use C++ headers.
* doc/bison.texinfo (Calc++ Scanner): Prefer C++ headers to C
	headers.
2009-05-11 08:27:14 +02:00
Akim Demaille 99c08fb662 doc: token.prefix
* doc/bison.simple (Decl Summary): Document token.prefix.
	(Calc++ Parser): Various fixes.
	Formatting changes.
	Use token.prefix.
	Introduce a macro TOKEN to shorten the code and make it more
	readable.
	(Calc++ Scanner): Adjust.
	* NEWS (Variable token.prefix): New.
2009-05-11 08:26:36 +02:00
Akim Demaille ab2a9f5793 tests: check token numbers.
* tests/input.at (Numbered tokens): New.
2009-05-05 09:49:55 +02:00
Akim Demaille 84a1cb5ad0 bison: catch bad symbol names.
* src/scan-gram.l({int}{id}): Report as an invalid identifier.
	* tests/input.at: Adjust.
2009-05-04 21:44:40 +02:00
Akim Demaille cdf3f11338 identifiers: dashes are letters.
Dashes can now start identifiers (symbols and directives).

	* src/scan-gram.l ({letter}): Add dash.
	({id}): Remove it.
	* tests/input.at (Symbols): Adjust.
	Remove stray comment.
	* tests/regression.at (Invalid inputs): Adjust error message.
	* doc/bison.texinfo (Symbols): Update.
2009-05-04 21:38:42 +02:00
Akim Demaille 746ee38c7c tests: check the use of dashes and periods in symbols.
* tests/input.at (Symbol): New test group.
2009-04-21 22:19:35 +02:00
Akim Demaille 72e727f2ec Formatting change. 2009-04-20 23:52:25 +02:00
Akim Demaille 90462b8dd9 bison: factoring.
* src/output.c (token_definitions_output): Use symbol_id_get
	instead of duplicating its logic.
	* TODO (YYERRCODE): Extend.
2009-04-20 23:52:15 +02:00
Akim Demaille 71b00ed874 variables: prefer error-verbose to error_verbose.
* data/bison.m4 (b4_error_verbose_if): Based on error-verbose
	instead of error_verbose.
	* src/scan-gram.l (%error-verbose): Map the error-verbose
	variable.
	* doc/bison.texinfo: Promote %define error-verbose instead of
	%error-verbose.
	* tests/actions.at: Prefer %define error-verbose to %error-verbose.
2009-04-20 23:17:54 +02:00
Akim Demaille 1c72905811 Regen.
* src/parse-gram.h, src/parse-gram.c: Regen.
2009-04-20 23:17:54 +02:00
Akim Demaille 4f646c3794 variables: accept dashes.
* data/bison.m4 (b4_percent_define_if_define_): Also map dashes to
	underscores.
	* src/scan-gram.l ({id}): Also accept dashes after the initial
	letter.
	({directive}): Use {id}.
	* src/parse-gram.y: Comment and formatting changes.
	* doc/bison.texinfo (Symbols): Adjust the lexical definitions of
	symbols.
	* src/complain.h, src/complain.c (yacc_at): New.
	* src/symtab.c (symbol_new): Use yacc_at to report inappropriate
	symbol names.
	* src/output.c (token_definitions_output): Do not #define token
	names with dashes.
2009-04-20 23:17:51 +02:00
Akim Demaille 184e317956 Consistently refer to Yacc, not YACC.
* src/getargs.c (usage, warnings_args): s/YACC/Yacc/.
2009-04-20 13:23:49 +02:00
Akim Demaille 16dc0d9025 Fix ChangeLog. 2009-04-14 08:18:24 +02:00
Akim Demaille 0c90a1f5e9 variables: use parse.assert' instead of assert'.
* TODO (assert): Remove.
	* data/bison.m4 (b4_assert_if): Replace with...
	(b4_parse_assert_if): this.
	* data/lalr1.cc, data/variant.hh, tests/c++.at: Adjust.
	* doc/bison.texinfo (Decl Summary): Document parse.assert.
2009-04-14 08:11:19 +02:00
Akim Demaille fa81950916 variables: use parse.assert' instead of debug'.
* src/getargs.c (getargs): Map -t to %define trace.parse.
	* src/scan-gram.l (%debug): Map to %define trace.parse.
	* data/bison.m4 (b4_percent_define_if_define): Map `.' in variable
	names to `_' in macro names.
	(b4_debug_if): Replace with...
	(b4_parse_trace_if): this.
	* data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java,
	* data/yacc.c: Adjust.
	* doc/bison.texinfo (Decl Summary): Document %debug as obsoleted.
	Use @code to label the variable list.
	Document the variable parse.trace.
	(Tracing): Promote the parse.trace variable.
	* TODO: %printer is not documented.
2009-04-14 08:11:16 +02:00
Akim Demaille f7dae1ea51 doc: minor fixes.
* doc/bison.texinfo (Decl Summary): Fix entry about %debug.
	(Table of Symbols): Remove duplicate entry for %debug.
2009-04-14 08:11:11 +02:00
Akim Demaille 3583d96b77 Regen.
* src/parse-gram.h, src/parse-gram.c: Regen.
2009-04-06 13:24:58 +02:00
Akim Demaille 00f5d57533 rename muscle_tab.* as muscle-tab.* for consistency.
* src/muscle_tab.h, src/muscle_tab.c: Rename as...
	* src/muscle-tab.h, src/muscle-tab.c: these.
	* src/getargs.c, src/local.mk, src/main.c, src/output.c,
	* src/parse-gram.y, src/reader.c, src/scan-code.l: Adjust.
2009-04-06 13:24:54 +02:00
Akim Demaille 76bf510242 Makefile: introduce $(BISON).
* src/local.mk (BISON): New.
	(YACC): Use it.
2009-04-06 13:24:50 +02:00
Akim Demaille bc0f573730 parser: handle %locations as %define locations.
* src/getargs.h, src/getargs.c (locations_flag): Remove.
	* src/getargs.c, src/scan-code.l: Use muscle_percent_define_ensure
	to set "locations" to true.
	* src/output.c (prepare): Don't output "locations".
	* src/scan-gram.l (%locations): Handle it as a %<flag>.
	* src/parse-gram.y: It's no longer a token.
	Don't handle it.
	* data/bison.m4 (b4_locations_if): Define it with
	b4_percent_define_if_define.
	* data/c.m4, data/glr.cc: Adjust.
2009-04-06 13:24:47 +02:00
Akim Demaille 697c912fa4 Regen.
* src/parse-gram.c: Regen.
2009-04-06 13:24:43 +02:00
Akim Demaille 4920ae8b66 muscle: factor the handling of obsolete of obsolete directives.
Suggested by Joel E. Denny.

	* src/muscle_tab.h, src/muscle_tab.c (muscle_percent_define_ensure):
	New, extracted from...
	* src/parse-gram.y (prologue_declaration: pure-parser): here.
	Remove it.
	(prologue_declaration: "%<flag>"): Use
	muscle_percent_define_ensure.
	(%error-verbose, %pure-parser): No longer tokens.
	* src/scan-gram.l (pure-parser): Return as a %<flag>.
2009-04-06 13:24:32 +02:00
Akim Demaille 86cfae0a48 Regen.
* src/parse-gram.h, src/parse-gram.c: Regen.
2009-04-03 10:34:15 +02:00
Akim Demaille ba061fa6f2 Factor %FLAG at scan level.
* src/parse-gram.y (PERCENT_DEBUG, PERCENT_ERROR_VERBOSE): Token
	definitions and associated rules, replaced by....
	(PERCENT_FLAG): this new token type, and rule.
	* src/scan-gram.l (RETURN_PERCENT_FLAG): New.
	Use it for %debug and %error-verbose.
2009-04-03 10:32:10 +02:00
Akim Demaille b19ebeb335 Regen.
* src/parse-gram.h, src/parse-gram.c: Regen.
2009-04-03 10:31:42 +02:00
Akim Demaille 001a16a9cd Update ChangeLog. 2009-04-03 10:30:30 +02:00
Akim Demaille 0ce615753e Treat %debug as %define debug.
* data/bison.m4 (b4_debug_if): New.
	* data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c,
	* data/lalr1.java: Use it instead of b4_debug_flag.
	* src/getargs.h, src/getargs.c (debug_flag): Remove.
	* src/output.c (prepare): Don't output it.
	* src/parse-gram.y: Treat %debug as %define debug.
2009-04-03 10:26:10 +02:00