+2007-02-27 Paolo Bonzini <bonzini@gnu.org>
+
+ * data/lalr1.java: Prefix all private members with yy.
+
+2007-02-24 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Use YYFPRINTF instead of fprintf where appropriate. Reported by
+ Sébastien Fricker at
+ <http://lists.gnu.org/archive/html/bug-bison/2007-02/msg00035.html>.
+ * THANKS: Add Sébastien Fricker.
+ * data/glr.c, data/push.c, data/yacc.c (yy_reduce_print): Implement.
+ * doc/bison.texinfo (Tracing): Make it clearer that YYFPRINTF must
+ accept a variable number of arguments.
+
+2007-02-19 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * bootstrap: Remove occurrences of .#bootmp from lib/Makefile.
+
+2007-02-13 Juan Manuel Guerrero <juan.guerrero@gmx.de>
+
+ * djgpp/config.bat: Adjustments concerning the use of autoconf 2.61.
+ * djgpp/config.sed: Adjustments concerning the use of autoconf 2.61.
+ * djgpp/config.site: Adjustments concerning the use of autoconf 2.61.
+
+2007-02-11 Paul Eggert <eggert@cs.ucla.edu>
+
+ Undo my 2007-02-07 change, switching back to the c-strcase module
+ introduced in the 2007-02-03 change. Bruno Haible reported that
+ the 2007-02-07 change would be dangerous in Turkish if we add a
+ language whose name contains "i", since "i" is not lowercase "I"
+ in Turkish.
+ * bootstrap.conf (gnulib_modules): Add c-strcase. Remove strcase.
+ * lib/.cvsignore: Add c-ctype.c, c-ctype.h, c-strcase.h,
+ c-strcasecomp.c, c-strncasecmp.c. Remove strcasecmp.c, strncasecmp.c.
+ * m4/.cvsignore: Remove strcase.m4.
+ * src/getargs.c: Revert 2007-02-07 change, as follows.
+ Include c-strcase.h.
+ (language_argmatch): Use c_strcasecmp rather than strcasecmp.
+
+2007-02-11 Bruno Haible <bruno@clisp.org>
+
+ Enable the Java related testsuite tests when the only Java compiler
+ found is a gcj < 4.3. Discussed at
+ <http://lists.gnu.org/archive/html/bug-bison/2007-02/msg00016.html>.
+ * configure.ac (gt_JAVACOMP): Don't specify a target_version.
+
+2007-02-11 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * data/Makefile.am: Update copyright date.
+ * data/push.c (yypull_parse): Report memory exhaustion and return 2 if
+ yypstate_new returns NULL.
+ (yypstate_new): Return NULL if malloc does.
+ * src/reader.c (packgram): Move translation of rule actions from the
+ beginning of packgram to...
+ (check_and_convert_grammar): ... here right before packgram is invoked
+ so it's easier to write more complete comments, and remove redundant
+ code.
+
+2007-02-10 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ As in semantic actions, make @$ in %initial-action, %destructor, and
+ %printer imply %locations.
+ * src/scan-code.l (SC_SYMBOL_ACTION): Set locations_flag = true when
+ scanning @$.
+ * tests/actions.at (AT_CHECK_ACTION_LOCATIONS): New macro supporting...
+ (@$ in %initial-action implies %locations,
+ @$ in %destructor implies %locations,
+ @$ in %printer implies %locations): ... these new test cases.
+
+2007-02-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ Undo most of the 2007-02-03 change, switching to the strcase module
+ now that gnulib strcase has been fixed.
+ * bootstrap.conf (gnulib_modules): Remove c-strcase. Add strcase.
+ * lib/.cvsignore: Remove c-ctype.c, c-ctype.h, c-strcase.h,
+ c-strcasecomp.c, c-strncasecmp.c. Add strcasecmp.c, strncasecmp.c
+ * m4/.cvsignore: Add strcase.m4.
+ * src/getargs.c: Revert 2007-02-03 change, as follows.
+ Don't include c-strcase.h.
+ (language_argmatch): Use strcasecmp rather than c_strcasecmp.
+ strcasecmp has "unspecified behavior" outside the POSIX locale,
+ but it works fine in practice if at least one argument is ASCII,
+ as is the case in Bison.
+
+2007-02-07 Paolo Bonzini <bonzini@gnu.org>
+
+ * tests/java.at: Skip tests if only one of javac/java is present.
+ Reported by Joel E. Denny.
+ * tests/atlocal.in: Adjust copyright years.
+
+2007-02-05 Paolo Bonzini <bonzini@gnu.org>
+
+ * data/lalr1.java (Stack): Work around old verifiers that disallow
+ access to the private fields of an inner class, from the outer class.
+ We can make Stack's fields public because user code doesn't have access
+ to the instance of Stack used by parse(). Reported by Paul Eggert.
+
+2007-02-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ * .cvsignore: Add javacomp.sh, javaexec.sh. Is this really
+ the right spot for these files?
+ * bootstrap.conf (gnulib_modules): Add c-strcase.
+ * lib/.cvsignore: Add c-ctype.c c-ctype.h, c-strcasecomp.c,
+ c-strncasecmp.c.
+ * src/getargs.c: Include c-strcase.h.
+ (language_argmatch): Use c_strcasecmp rather than strcasecmp,
+ to avoid unspecified behavior.
+
+2007-02-01 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * doc/bison.texinfo (Decl Summary): Correct typo.
+
+2007-01-30 Paolo Bonzini <bonzini@gnu.org>
+
+ * data/bison.m4 (b4_percent_define_flag_if): Don't treat 0 as false.
+ Complain if the value does not match empty, "true" or "false".
+ * data/c++.m4: Adjust default definitions of %define variables.
+ * data/java.m4: Adjust default definitions of %define variables.
+ * doc/bison.texinfo (Decl Summary): Adjust the %define entry according
+ to above behavior.
+ * tests/input.at (Boolean %define variables): Test new behavior.
+
+2007-01-29 Paolo Bonzini <bonzini@gnu.org>
+
+ * NEWS: Mention java.
+ * TODO: Remove things that are done.
+ * bootstrap.conf: Add javacomp-script and javaexec-script.
+ * configure.ac: Invoke gt_JAVACOMP and gt_JAVAEXEC.
+
+ * data/Makefile.am: Add new files.
+ * data/java-skel.m4: New.
+ * data/java.m4: New.
+ * data/lalr1.java: New.
+
+ * doc/bison.texinfo: Put "A Complete C++ Example" under
+ C++ Parsers. Add Java Parsers. Put C++ Parsers and Java Parsers
+ under Other Languages.
+
+ * src/getargs.c (valid_languages): Add Java.
+ * src/getargs.h (struct bison_language): Update size of string fields.
+
+ * tests/Makefile.am: Add java.at.
+ * tests/atlocal.in: Add CONF_JAVA and CONF_JAVAC.
+ * tests/java.at: New.
+ * tests/testsuite.at: Include it.
+
+2007-01-28 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Clean up.
+ * src/scan-skel.l (at_directive_perform): Add at_directive_argc and
+ at_directive_argv arguments so these no longer have to be global
+ variables. Also, update the implementation for the following changes.
+ (fail_for_at_directive_too_many_args,
+ fail_for_at_directive_too_few_args): Add at_directive_name argument.
+ (at_directive_name): Remove as at_directive_argv[0] will be used for
+ this now.
+ (AT_DIRECTIVE_ARGC_MAX): Increment to make space in at_directive_argv
+ for the directive name.
+ (at_directive_argc, at_directive_argv): Make these local within
+ skel_lex instead of global.
+ (INITIAL): Update directive start action for above changes.
+ (SC_AT_DIRECTIVE_ARG): Rename to...
+ (SC_AT_DIRECTIVE_ARGS): ... this, and update for above changes.
+ (SC_AT_DIRECTIVE_SKIP_WS): Update.
+ (scan_skel): Move yylex_destroy to...
+ (skel_scanner_free): ... here.
+ * tests/skeletons.at (installed skeleton file name): Rename to...
+ (installed skeleton file names): ... this.
+
+2007-01-27 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * ChangeLog: For changes in doc/bison.texinfo, consistently reference
+ node names: say "Table of Symbols" not "Bison Symbols", and say "Decl
+ Summary" not "Directives".
+ * doc/bison.texinfo (Decl Summary, Calc++ Parser): Cross-reference the
+ %code entry in "Decl Summary" rather than the one in "Table of Symbols"
+ since the former is now the more complete one.
+ (Prologue Alternatives): Likewise and do the same for %defines.
+ (Table of Symbols): Add summary of %code, add summary of %define, and
+ move full %code documentation to...
+ (Decl Summary): ... here for consistency with other entries in these
+ sections.
+ Move %define entry in order to keep this list alphabetized.
+ Reword %define entry a little to put less emphasis on the skeleton
+ concept, which most users shouldn't have to think about.
+
+2007-01-26 Paul Eggert <eggert@cs.ucla.edu>
+
+ Adjust to recent gnulib changes.
+ * lib/.cvsignore: Remove stpcpy.h, strndup.h, strnlen.h.
+ Add string.h, string_.h, unistd_.h, wchar_.h.
+ * m4/.cvsignore: Add gnulib-common.m4, string_h.m4, wchar.m4.
+ * src/system.h: Don't include <stpcpy.h>; this is now done by
+ <string.h>.
+
+2007-01-23 Paolo Bonzini <bonzini@gnu.org>
+
+ Simplify implementation of unqualified %code, implement macros for
+ uniform treatment of boolean %define flags. Document %define.
+ * data/bison.m4 (b4_percent_define_ifdef, b4_percent_define_flag_if,
+ b4_percent_code_ifdef): New.
+ (b4_percent_code_get): Map unqualified %code to b4_percent_code().
+ * data/c++.m4: Define default value for global_tokens_and_yystype.
+ * data/glr.cc: Likewise.
+ * data/location.cc: Use b4_percent_define_flag_if.
+
+ * doc/bison.texinfo (Decl Summary): Document %define.
+
+ * src/parse-gram.y (Unqualified %code): Change muscle name to
+ b4_percent_code().
+ (content.opt): Default to empty.
+
+2007-01-17 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Implement support for relative and absolute skeleton file names.
+ Discussed starting at
+ <http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00071.html>.
+ * doc/bison.texinfo (Decl Summary): Document in %skeleton entry.
+ (Bison Options): Document in --skeleton entry.
+ * src/output.c (output_skeleton): Use strncpy rather than strcpy since
+ full_skeleton can't necessarily hold all of pkgdatadir.
+ If the specified skeleton file name contains a `/', don't prepend
+ pkgdatadir.
+ * src/parse-gram.y (prologue_declaration): If the specified skeleton
+ file name contains a `/', prepend the grammar file directory.
+ * tests/Makefile.am (TESTSUITE_AT): Add skeletons.at.
+ * skeletons.at: New file.
+ (relative skeleton file names): New test case.
+ (installed skeleton file names): New test case.
+ * tests/testsuite.at: Include skeletons.at.
+
+ * bootstrap: Update copyright to 2007.
+
+2007-01-17 Paolo Bonzini <bonzini@gnu.org>
+
+ * bootstrap: Remove occurrences of .#bootmp from the files.
+
+2007-01-17 Akim Demaille <akim@epita.fr>
+
+ * doc/bison.texinfo (Calc++ Parser): Don't try to alias
+ nonterminals.
+ Use per-type %printer.
+
+2007-01-17 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * NEWS, data/c++-skel.m4, data/c++.m4, data/c-skel.m4, data/c.m4,
+ data/glr.c, data/glr.cc, data/lalr1.cc, data/location.cc,
+ djgpp/config.site, src/files.c, src/files.h, src/main.c,
+ src/muscle_tab.c, src/muscle_tab.h, src/parse-gram.y, src/reader.h,
+ src/scan-skel.h, src/scan-skel.l, tests/actions.at, tests/calc.at,
+ tests/glr-regression.at, tests/input.at, tests/local.at,
+ tests/output.at, tests/torture.at: Update copyright to 2007.
+
+2007-01-16 Akim Demaille <akim@epita.fr>
+
+ * doc/bison.texinfo (Calc++ Parsing Driver): Let "parse" return an
+ error code.
+ (Calc++ Scanner): Exit with failure if we can't open the input
+ file.
+ Accept "-" standing for stdin.
+ (Calc++ Top Level): Print the result only if the parsing was
+ successful.
+
+2007-01-16 Akim Demaille <akim@epita.fr>
+
+ * data/lalr1.cc (yy_reduce_print_): Add a missing end-of-line.
+
+2007-01-15 Paolo Bonzini <bonzini@gnu.org>
+ and Joel E. Denny <jdenny@ces.clemson.edu>
+
+ Clean up %define and %code implementation in M4 some. Most
+ importantly, rename all related macros to be in the b4_percent_define
+ and b4_percent_code namespaces. Also, complete support for `.' in
+ %define variable names and %code qualifiers.
+ * data/bison.m4 (b4_check_user_names): Check for special
+ "SKELETON-NAMESPACE(name)" macros instead of using two nested
+ m4_foreach loops.
+ (b4_get_percent_define, b4_get_percent_code): Rename to...
+ (b4_percent_define_get, b4_percent_code_get): ... these.
+ Extend documentation with examples.
+ For SKELETON-NAMESPACE (as documented for b4_check_user_names), use
+ b4_percent_define_skeleton_variables and
+ b4_percent_code_skeleton_qualifiers.
+ Expect any value for the %define variable `foo' to be stored in the
+ macro named `b4_percent_define(foo)'; expect any %code blocks for the
+ qualifier `foo' to be stored in a macro named `b4_percent_code(foo)';
+ expect any unqualified %code blocks to be stored in a macro named
+ `b4_percent_code_unqualified'.
+ Use m4_indir so that %define variable names and %code qualifiers can
+ contain `.', which is allowed by the grammar parser.
+ (b4_percent_define_default): New macro to set a default value for a
+ %define variable.
+ (m4_wrap): Update wrapped code, and fix some underquoting.
+ (b4_check_user_names_wrap): Update and define outside the m4_wrap.
+ Expect grammar uses of %define variables and %code qualifiers to be
+ defined in b4_percent_define_user_variables and
+ b4_percent_code_user_qualifiers.
+ * data/c++.m4: Use b4_percent_define_default rather than
+ m4_define_default. Fix some underquoting. Skeleton usage of %define
+ variable define_location_comparison now implies skeleton usage of
+ %define variable filename_type.
+ * data/glr.c, data/glr.cc, data/lalr1.cc, data/location.cc,
+ data/push.c, data/yacc.c: Update macro names.
+ * src/parse-gram.y (prologue_declaration, grammar_declaration): Update
+ muscle names.
+
+2007-01-14 Juan Manuel Guerrero <juan.guerrero@gmx.de>
+
+ DJGPP specific issues.
+
+ * djgpp/config.site: Set ac_cv_path_mkdir to a sane DJGPP specific
+ default. Set gl_cv_absolute_wctype_h to a sane DJGPP specific default.
+
+2007-01-09 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * tests/glr-regression.at: Use AT_PARSER_CHECK rather than AT_CHECK to
+ run parsers in all tests so that Valgrind is invoked during
+ maintainer-check-valgrind.
+ (Duplicate representation of merged trees): Free all semantic values.
+ (Duplicated user destructor for lookahead): Likewise.
+
+2007-01-09 Joel E. Denny <jdenny@ces.clemson.edu>
+
+ * tests/local.at (AT_PARSER_CHECK): Add a PRE argument to specify a
+ command-line prefix.
+ * tests/torture.at (Exploding the Stack Size with Alloca): Stderr is
+ ignored, so use that PRE to set --log-fd=1 in VALGRIND_OPTS so we don't
+ miss Valgrind messages.
+ (Exploding the Stack Size with Malloc): Likewise.
+
2007-01-09 Joel E. Denny <jdenny@ces.clemson.edu>
Ignore YYSTACK_USE_ALLOCA for push parsers since the stacks can't be
(C++ Location Values): Update %define uses.
(Calc++ Parser Interface): Likewise.
(Calc++ Parser): Likewise, and update `%code requires' uses.
- (Bison Symbols): Update %code documentation.
+ (Table of Symbols): Update %code documentation.
* src/parse-gram.y (prologue_declaration): For %define variables, use
`variable' instead of `STRING'.
(grammar_declaration): For %code qualifiers, use `ID' instead of
b4_check_percent_code_qualifiers. Use b4_get_percent_code.
* data/glr.cc, data/lalr1.cc: Likewise, and use b4_get_percent_define.
(b4_parser_class_name, b4_namespace): Define these using
- b4_get_percent_define for parser_class_name and namespace. Normally
- this would be a bad idea since there might be cases when the variables
- aren't used, but these variables are too pervasive in these skeletons
- for that to be a problem.
+ b4_get_percent_define for parser_class_name and namespace.
* data/location.cc: Use b4_get_percent_define.
* data/push.c: Don't use b4_check_percent_define_variables and
b4_check_percent_code_qualifiers. Use b4_get_percent_code.
* data/glr.c, data/glr.cc, data/lalr1.cc, data/location.cc,
data/push.c, data/yacc.c: Likewise, and replace m4_divert(0) with
m4_divert_push(0) and m4_divert_pop(0).
- * data/output.c (output_skeleton): Don't add an m4_divert_push(0) and
+ * src/output.c (output_skeleton): Don't add an m4_divert_push(0) and
an m4_wrap([m4_divert_pop(0)]) to the M4. Diversion -1, which is
pushed and popped by m4sugar, should be first on the stack.
* doc/bison.texinfo (Prologue Alternatives): Update.
(Decl Summary): Update to %code "requires" and %code "provides".
(Calc++ Parser): Update to %code "requires".
- (Bison Symbols): Remove entries for %requires, %provides, and
+ (Table of Symbols): Remove entries for %requires, %provides, and
%code-top. Rewrite %code entry, and add a %code "QUALIFIER" entry.
* data/bison.m4 (b4_user_provides, b4_user_requires): Remove as these
are replaced by b4_percent_code_provides and b4_percent_code_requires,
documentation instead.
(Calc++ Parser): Use `%require "@value{VERSION}"' rather than
`%require "2.3b"' so that the example is always up-to-date.
- (Bison Symbols): Add entries for %language and %skeleton.
+ (Table of Symbols): Add entries for %language and %skeleton.
* examples/extexi (normalize): Instead of replacing every %require
argument with the current Bison version, just substitute for
`@value{VERSION}'. This guarantees that we're testing what actually
* doc/bison.texinfo (C++ Parser Interface): Prefer %language
over %skeleton.
- (Directives): Document %language and %skeleton.
+ (Decl Summary): Document %language and %skeleton.
(Command line): Document -L.
* examples/extexi: Rewrite %require directive.
(2.3a): Annotate this entry to say the old forms of these features were
also experimental.
* doc/bison.texinfo (Prologue Alternatives, Freeing Discarded Symbols,
- Bison Symbols): Say they're experimental. Comment out any mention
+ Table of Symbols): Say they're experimental. Comment out any mention
of Java (we'll want this back eventually).
2006-12-01 Joel E. Denny <jdenny@ces.clemson.edu>
%file-prefix, %name-prefix, and %output. Discussed at
<http://lists.gnu.org/archive/html/help-bison/2006-09/msg00001.html>.
* NEWS (2.3a+): Mention.
- * doc/bison.texinfo (Decl Summary, Bison Symbols): Add entry for new
+ * doc/bison.texinfo (Decl Summary, Table of Symbols): Add entry for new
form of %defines, and remove `=' from entries for %file-prefix,
%name-prefix, and %output.
* src/parse-gram.y (prologue_declaration): Implement.
Rename <!> to <>. Discussed starting at
<http://lists.gnu.org/archive/html/bison-patches/2006-11/msg00039.html>.
* NEWS (2.3a+): Update.
- * doc/bison.texinfo (Freeing Discarded Symbols, Bison Symbols):
+ * doc/bison.texinfo (Freeing Discarded Symbols, Table of Symbols):
Update.
* src/parse-gram.y (TYPE_TAG_NONE, generic_symlist_item): Implement.
* src/scan-gram.l (INITIAL): Implement.
* NEWS (2.3a+): Mention.
* doc/bison.texinfo (Freeing Discarded Symbols): Document this and the
previous change today related to mid-rules.
- (Bison Symbols): Remove %symbol-default and add <*> and <!>.
+ (Table of Symbols): Remove %symbol-default and add <*> and <!>.
* src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): Remove.
(TYPE_TAG_ANY): Add as <*>.
(TYPE_TAG_NONE): Add as <!>.
alternatives to...
(Prologue Alternatives): ... this new section, and extend it to discuss
all 4 directives in detail.
- (Bison Symbols): Clean up discussion of prologue alternatives and add
- %code-top.
+ (Table of Symbols): Clean up discussion of prologue alternatives and
+ add %code-top.
2006-10-16 Juan Manuel Guerrero <juan.guerrero@gmx.de>
<http://lists.gnu.org/archive/html/bison-patches/2006-09/msg00007.html>.
* NEWS (2.3+): Add %symbol-default to example.
* bison.texinfo (Freeing Discarded Symbols): Likewise.
- (Bison Symbols): Add entry for %symbol-default.
+ (Table of Symbols): Add entry for %symbol-default.
* src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): New token.
(generic_symlist, generic_symlist_item): New nonterminals for creating
a list in which each item is a symbol, semantic type, or
prologue blocks with %*-header declarations.
(Calc++ Parser): Likewise.
(Bison Declaration Summary): Update names.
- (Bison Symbols): Update description.
+ (Table of Symbols): Update description.
* src/parse-gram.y (PERCENT_AFTER_DEFINITIONS): Update to...
(PERCENT_END_HEADER): ... this.
(PERCENT_BEFORE_DEFINITIONS): Update to...
file.
(Calc++ Parser): Forward declare driver in a %before-definitions rather
than in the pre-prologue so that make check succeeds.
- (Bison Symbols): Add entries for %before-definitions and
+ (Table of Symbols): Add entries for %before-definitions and
%after-definitions.
* src/parse-gram.y (PERCENT_BEFORE_DEFINITIONS): New token for
%before-definitions.
in the yychar entry.
In the yychar entry, remove mention of the local yychar case (pure
parser) since this is irrelevant information when writing semantic
- actions and since it's already discussed in `Bison Symbols' where
+ actions and since it's already discussed in `Table of Symbols' where
yychar is otherwise described as an external variable.
In the yychar entry, don't call it the `current' look-ahead since it
isn't when semantic actions are deferred.
`current' look-ahead, and do mention yylval and yylloc.
(Error Recovery): Cross-reference `Action Features' when mentioning
yyclearin.
- (Bison Symbols): In the yychar entry, don't call it the `current'
+ (Table of Symbols): In the yychar entry, don't call it the `current'
look-ahead.
In the yylloc and yylval entries, mention look-ahead usage.