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.
Discussed in:
http://lists.gnu.org/archive/html/bison-patches/2009-01/msg00000.htmlhttp://lists.gnu.org/archive/html/bison-patches/2009-02/msg00002.htmlhttp://lists.gnu.org/archive/html/bison-patches/2009-03/msg00009.html
* src/parse-gram.y: Add new syntax (named_ref.opt).
* src/reader.c: Store named refs in symbol lists.
* src/reader.h: New argument for symbol_append and
action_append functions.
* src/scan-code.h: Add new field (named_ref) into
code_props data structure. Keeps named ref of midrule
actions.
* src/scan-code.l: Support for named refs in semantic
action code. New function 'parse_named_ref'.
* src/scan-gram.l: Support bracketed id.
* src/symlist.c: Store named refs in symbol lists.
* src/symlist.h: New field in symbol list: named_ref.
* src/named-ref.h: New file, a struct for named_ref.
* src/named-ref.c: New file, named_ref_new function.
* src/Makefile.am: Add two new files.
* tests/testsuite.at: Include new test group:
* tests/named-refs.at: this new file.
Discussed in:
http://lists.gnu.org/archive/html/bison-patches/2009-01/msg00000.htmlhttp://lists.gnu.org/archive/html/bison-patches/2009-02/msg00002.htmlhttp://lists.gnu.org/archive/html/bison-patches/2009-03/msg00009.html
* src/parse-gram.y: Add new syntax (named_ref.opt).
* src/reader.c: Store named refs in symbol lists.
* src/reader.h: New argument for symbol_append and
action_append functions.
* src/scan-code.h: Add new field (named_ref) into
code_props data structure. Keeps named ref of midrule
actions.
* src/scan-code.l: Support for named refs in semantic
action code. New function 'parse_named_ref'.
* src/scan-gram.l: Support bracketed id.
* src/symlist.c: Store named refs in symbol lists.
* src/symlist.h: New field in symbol list: named_ref.
* src/named-ref.h: New file, a struct for named_ref.
* src/named-ref.cp: New file, named_ref_new function.
* src/local.mk: Add two new files.
* tests/testsuite.at: Include new test group:
* tests/named-refs.at: this new file.
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.)
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.
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.
* 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.
* 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.
* data/bison.m4 (b4_check_user_names): In header comments, say
"user occurrence" instead of "grammar occurrence".
* src/muscle-tab.h (muscle_percent_define_insert): Likewise.
(muscle_percent_code_grow): Likewise just for consistency.
(cherry picked from commit 246c4efafe)
Conflicts:
src/muscle-tab.h
* data/bison.m4 (b4_check_user_names): In header comments, say
"user occurrence" instead of "grammar occurrence".
* src/muscle_tab.h (muscle_percent_define_insert): Likewise.
(muscle_percent_code_grow): Likewise just for consistency.
* data/c++.m4 (b4_namespace_close): Don't let it be printed
among the closing braces here. This fix might make the
generated code easier to debug, but otherwise it should be
insignificant because a trailing `:' is a C++ error already.
(cherry picked from commit 8c221795af)
* data/c++.m4 (b4_namespace_close): Don't let it be printed
among the closing braces here. This fix might make the
generated code easier to debug, but otherwise it should be
insignificant because a trailing `:' is a C++ error already.
* 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.