X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/5c80250c8d66b3d010d6bda85ac4579ce35957d8..3eb82471faaf77cb1d0677d6bf7c0e65f432519e:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 4c306fcc..cd74bed8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,197 @@ +2007-01-28 Joel E. Denny + + 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 + + * 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 + + 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 ; this is now done by + . + +2007-01-23 Paolo Bonzini + + 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 + + Implement support for relative and absolute skeleton file names. + Discussed starting at + . + * 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 + + * bootstrap: Remove occurrences of .#bootmp from the files. + +2007-01-17 Akim Demaille + + * doc/bison.texinfo (Calc++ Parser): Don't try to alias + nonterminals. + Use per-type %printer. + +2007-01-17 Joel E. Denny + + * 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 + + * 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 + + * data/lalr1.cc (yy_reduce_print_): Add a missing end-of-line. + +2007-01-15 Paolo Bonzini + and Joel E. Denny + + 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 + + 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 + + * 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 + + * 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 + + Ignore YYSTACK_USE_ALLOCA for push parsers since the stacks can't be + locals. Reported by Juan Manuel Guerrero at + . + * data/push.c: Enclose the #ifdef YYSTACK_USE_ALLOCA in b4_push_if. + Fix some indentation also. + * tests/torture.at (Exploding the Stack Size with Alloca): Add comment + explaining this issue. + 2007-01-09 Paolo Bonzini and Joel E. Denny @@ -46,7 +240,7 @@ (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 @@ -100,10 +294,7 @@ 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. @@ -203,7 +394,7 @@ * 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. @@ -267,7 +458,7 @@ * 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, @@ -680,7 +871,7 @@ 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 @@ -715,7 +906,7 @@ * 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. @@ -916,7 +1107,7 @@ (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 @@ -925,7 +1116,7 @@ %file-prefix, %name-prefix, and %output. Discussed at . * 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. @@ -955,7 +1146,7 @@ Rename to <>. Discussed starting at . * 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. @@ -1131,7 +1322,7 @@ * 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 . @@ -1224,8 +1415,8 @@ 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 @@ -1681,7 +1872,7 @@ . * 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 @@ -2323,7 +2514,7 @@ 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... @@ -2404,7 +2595,7 @@ 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. @@ -3494,7 +3685,7 @@ 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. @@ -3505,7 +3696,7 @@ `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.