]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
* configure.ac (AC_PREREQ): Require Autoconf 2.61 because of our
[bison.git] / ChangeLog
index 3bccb9a7f0a3bbde943577260f65cc47ed1a0b00..d0c2e9f44537c38408ba2a25e0a85199f63b90ae 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-2006-11-10  Joel E. Denny  <jdenny@ces.clemson.edu>
+2006-12-13  Joel E. Denny  <jdenny@ces.clemson.edu>
 
-       Encapsulate code properties and related functionality for the various
-       destructors, printers, and actions into a code_props structure and
-       interface.
-       * src/location.h (EMPTY_LOCATION_INIT): Define so that it's easier to
-       consistently initialize const structs that have an empty location field.
-       * src/location.c (empty_location): Initialize with EMPTY_LOCATION_INIT
-       to ensure consistency.
-       * src/output.c (symbol_destructors_output, symbol_printers_output):
-       Replace with...
-       (symbol_code_props_output): ... this to eliminate duplicate code.
-       (output_skeleton): Update to use symbol_code_props_output.
-       * src/parse-gram.y (prologue_declaration, braceless, epilogue.opt):
-       Update all uses of translate_* functions to use the new code_props
-       interface and to use gram_scanner_last_string_free and
-       code_scanner_last_string_free where possible.
-       (grammar_declaration): symbol_list_destructor_set and
-       symbol_list_printer_set now perform the translation, so don't do it
-       here.  Use gram_scanner_last_string_free where possible.
-       * src/reader.c: Update to use code_props interface for destructors and
-       rule actions.
-       * src/scan-code.h (code_props): New structure.
-       (code_props_none_init, CODE_PROPS_NONE_INIT, code_props_none): New
-       function, macro, and const global variable for initializing a
-       code_props with no code.
-       (code_props_plain_init, code_props_symbol_action_init,
-       code_props_rule_action_init, code_props_translate_code,
-       code_props_code_get, code_props_location_get,
-       code_props_is_value_used): The rest of the new code_props interface.
-       (translate_rule_action, translate_symbol_action, translate_code):
-       Remove as these are now just special cases within
-       code_props_translate_code, which is switched on the code_props kind.
-       (code_scanner_last_string_free): New function similar to
-       gram_scanner_last_string_free.
-       * src/scan-code.l: Implement the new interface.
-       (last_string): New static global similar to the one in scan-gram.l.
-       (SC_SYMBOL_ACTION): For $$, set the is_value_used member of the
-       code_props since Bison will one day use this information for
-       destructors and printers.
-       (<*><<EOF>>): Use STRING_FINISH so that last_string is set.
-       (handle_action_dollar): Update to use the code_props interface of rule
-       actions.  Use symbol_list_n_get and set is_value_used directly since
-       symbol_list_n_used_set is removed.
-       * src/symlist.h, src/symlist.c (symbol_list): Replace action,
-       action_location, and used members with a code_props member, and update
-       all uses.
-       (symbol_list_n_used_set): Remove since it would need to break the
-       encapsulation of code_props.
-       (symbol_list_destructor_set, symbol_list_printer_set): Perform code
-       translation here rather than depending on the caller to do so.
-       * src/symtab.h (symbol, semantic_type): Remove destructor_location and
-       printer_location members and change the type of the destructor and
-       printer members to code_props.
-       (symbol_destructor_location_get, symbol_printer_location_get): Remove
-       unneeded.
-       (symbol_destructor_set, symbol_destructor_get, symbol_printer_set,
-       symbol_printer_get, semantic_type_destructor_set,
-       semantic_type_printer_set, default_tagged_destructor_set,
-       default_tagless_destructor_set, default_tagged_printer_set,
-       default_tagless_printer_set): Use code_props in arguments and return
-       types in place of const char * and location.
-       * src/symtab.c: Update implementation for interface and struct changes.
-       (default_tagged_destructor_location,
-       default_tagless_destructor_location, default_tagged_printer_location,
-       default_tagless_printer_location): Remove since we...
-       (default_tagged_destructor, default_tagless_destructor,
-       default_tagged_printer, default_tagless_printer): ... change the type
-       of these to code_props.
-       (SYMBOL_CODE_PRINT): New similar to SYMBOL_ATTR_PRINT but for
-       code_props members.
-       (symbol_print): Use SYMBOL_CODE_PRINT.
-
-       * src/scan-gram.h (gram_last_string): Remove declaration.
-       * src/scan-gram.l (last_string): Declare it static.
+       * configure.ac (AC_PREREQ): Require Autoconf 2.61 because of our
+       strange test case titles.  Reported by Bob Rossi.
+
+2006-12-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * TODO: Add pointer to Sylvain Schmitz's work on static detection
+       of potential ambiguities in GLR grammers.
+
+2006-12-12  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       * tests/testsuite.at (AT_CHECK): When checking if $1 starts with
+       `bison ', use m4_index instead of m4_substr since chopping up a string
+       containing M4-special characters causes problems here.
+
+       Fix a couple of bugs related to special characters in user-specified
+       file names, and make it easier for skeletons to compute output file
+       names with the same file name prefix as Bison-computed output file
+       names.
+       * data/glr.cc, data/push.c, data/yacc.c: In @output, use
+       b4_parser_file_name and b4_spec_defines_file instead of
+       @output_parser_name@ and @output_header_name@, which are now redundant.
+       * data/glr.c, data/lalr1.cc: Likewise.  Also, in header #include's, use
+       b4_parser_file_name, b4_spec_defines_file, and the new
+       @basename(FILENAME@) instead of @output_parser_name@ and
+       @output_header_name@, which inappropriately escaped the file names as
+       C string literals.
+       * src/files.c (all_but_ext): Remove static qualifier.
+       (compute_output_file_names): Move `free (all_but_ext)' to...
+       (output_file_names_free): ... here since all_but_ext is needed later.
+       * src/files.h (all_but_ext): Extern.
+       * src/muscle_tab.h (MUSCLE_INSERT_STRING_RAW): New macro that does
+       exactly what MUSCLE_INSERT_STRING used to do.
+       (MUSCLE_INSERT_STRING): Use MUSCLE_OBSTACK_SGROW so that M4-special
+       characters are escaped properly.
+       * src/output.c (prepare): Define muscle file_name_all_but_ext as
+       all_but_ext.
+       For pkgdatadir muscle, maintain previous functionality by using
+       MUSCLE_INSERT_STRING_RAW instead of MUSCLE_INSERT_STRING.  The problem
+       is that b4_pkgdatadir is used inside m4_include in the skeletons, so
+       digraphs would never be expanded.  Hopefully no one has M4-special
+       characters in his Bison installation path.
+       * src/scan-skel.l: Don't parse @output_header_name@ and
+       @output_parser_name@ anymore since they're now redundant.
+       In @output, use decode_at_digraphs.
+       Parse a new @basename command that invokes last_component.
+       (decode_at_digraphs): New.
+       (BASE_QPUTS): Remove unused.
+       * tests/output.at (AT_CHECK_OUTPUT_FILE_NAME): New macro.
+       (Output file name): New tests.
+
+2006-12-09  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Warn about output files that are generated by the skeletons and that
+       conflict with other output files.
+       * data/glr.c: Don't generate the header file here when glr.cc does.
+       * src/files.c (file_names, file_names_count): New static globals.
+       (compute_output_file_names): Invoke output_file_name_check for files
+       not generated by the skeletons and remove existing checks.
+       (output_file_name_check): New function that warns about conflicting
+       output file names.
+       (output_file_names_free): Free file_names.
+       * src/files.h (output_file_name_check): Declare.
+       * src/scan-skel.l: Invoke output_file_name_check for files generated by
+       the skeletons.
+       * tests/output.at (AT_CHECK_CONFLICTING_OUTPUT): New.
+       (Conflicting output files): New tests.
+
+2006-12-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * doc/bison.texinfo: Fix a couple of typos.
+
+2006-12-08  Bob Rossi  <bob@brasko.net>
+
+       * data/push.c: (yypvarsinit, yypvars, struct yypvars, yypushparse):
+       Rename to...
+       (yypstate_init, yypstate, struct yypstate, yypush_parse): ... these and
+       update all uses.
+       (b4_yyssa, b4_yyerror_range, yypstate_init): Rename pv to yyps.
+       (yypush_parse): Rename yypvars argument to yyps and remove redundant
+       local pv.
+       (yypstate_init, yypush_parse): Declare in Bison-generated header file.
+       * tests/calc.at (_AT_DATA_CALC_Y): Use newly named functions.
+
+2006-12-07  Bob Rossi  <bob@brasko.net>
+       and Joel Denny  <jdenny@ces.clemson.edu>
+
+       * data/push.c (yypvarsinit): Change return type from void* to struct
+       yypvars*. No longer cast to void* on return.
+       (struct yypvars): Remove yylen since it need not be remembered between
+       yypushparse invocations.
+       (yypushparse): Don't copy between yylen and pv->yylen.
+
+2006-12-05  Bob Rossi  <bob@brasko.net>
+
+       * data/push.c (yychar_set, yylval_set, yylloc_set): Delete.
+       (yypushparse): Add yynchar, yynlval, yynlloc parameters.
+       (b4_declare_parser_variables): Do not declare yynerrs for push mode.
+       (struct yypvars): Remove b4_declare_parser_variables.
+       (yypvarsinit): Remove init code for removed variables.
+       (global scope): Do not declare b4_declare_parser_variables if
+       push or pure mode.
+       (yypushparse): Add b4_declare_parser_variables.
+       Init new local variables, and remove init code for removed
+       yypvars variables.
+       (yyparse): Delete.
+       * tests/calc.at (_AT_DATA_CALC_Y): Call yypushparse for push mode
+       and yyparse for other modes.
+       (AT_CHECK_CALC_LALR): Added '%skeleton "push.c"' for push tests.
+       * tests/local.at (AT_PUSH_IF, AT_PURE_OR_PUSH_IF): Added.
+       (AT_YYERROR_SEES_LOC_IF): push-parser makes this false.
+       (AT_PURE_LEX_IF): True if pure or push parser.
+
+2006-12-05  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Document Yacc prologue alternatives and default %destructor's and
+       %printer's as experimental.  Don't mention Java yet.  Discussed at
+       <http://lists.gnu.org/archive/html/bison-patches/2006-12/msg00002.html>.
+       * NEWS (2.3a+): Say they're experimental.  Remove any mention of Java.
+       (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
+       of Java (we'll want this back eventually).
+
+2006-12-01  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Support a file name argument to %defines.  Deprecate `=' in
+       %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
+       form of %defines, and remove `=' from entries for %file-prefix,
+       %name-prefix, and %output.
+       * src/parse-gram.y (prologue_declaration): Implement.
+       * tests/calc.at (Simple LALR Calculator, Simple GLR Calculator, Simple
+       LALR1 C++ Calculator, Simple GLR C++ Calculator): Remove the `=' from
+       all but one occurrence of %name-prefix.
+       * tests/headers.at (export YYLTYPE): Remove the `=' from %name-prefix.
+       * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Likewise.
+       * tests/output.at (AT_CHECK_OUTPUT): Remove the `=' from all but one
+       occurrence of each of %file-prefix and %output.  Add check for %defines
+       with argument.
+       * tests/reduce.at (Useless Terminals, Useless Nonterminals,
+       Useless Rules, Reduced Automaton, Underivable Rules, Empty Language):
+       Remove the `=' from %output.
+
+2006-11-21  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Don't escape $ in test case titles since Autoconf 2.61 now does that
+       correctly.
+       * tests/actions.at (Default %printer and %destructor are not for error
+       or $undefined): Here.
+       (Default %printer and %destructor are not for $accept): Here.
+       * tests/input.at (Invalid $n and @n): Here.
+
+2006-11-20  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       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):
+       Update.
+       * src/parse-gram.y (TYPE_TAG_NONE, generic_symlist_item): Implement.
+       * src/scan-gram.l (INITIAL): Implement.
+       * src/symlist.c (symbol_list_default_tagless_new): Update comment.
+       * src/symlist.h (symbol_list, symbol_list_default_tagless_new): Update
+       comment.
+       * tests/actions.at (Default tagless %printer and %destructor,
+       Default tagged and per-type %printer and %destructor,
+       Default %printer and %destructor are not for error or $undefined,
+       Default %printer and %destructor are not for $accept,
+       Default %printer and %destructor for mid-rule values): Update.
+       * tests/input.at (Default %printer and %destructor redeclared,
+       Unused values with default %destructor): Update.
+
+2006-11-17  Joel E. Denny  <jdenny@ces.clemson.edu>
+
+       Don't let %prec take a nonterminal.
+       * src/reader.c (grammar_current_rule_prec_set): Make the %prec symbol a
+       token.
+       * tests/input.at (%prec takes a token): New test checking that %prec
+       won't take a nonterminal.
 
 2006-11-10  Joel E. Denny  <jdenny@ces.clemson.edu>
 
        * 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 <!>.
-       * src/parser-gram.y (PERCENT_SYMBOL_DEFAULT): Remove.
+       * src/parse-gram.y (PERCENT_SYMBOL_DEFAULT): Remove.
        (TYPE_TAG_ANY): Add as <*>.
        (TYPE_TAG_NONE): Add as <!>.
        (generic_symlist_item): Remove RHS for %symbol-default and add RHS's