X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/1853982561f87a729024577156def20433035946..1e9798d5699ca67718fd3b0d6baa9abcf27e6cd3:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 555795ba..e0d44232 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,493 @@ +2000-10-16 Akim Demaille + + * src/symtab.c (bucket_new): New function. + (getsym): Use it. + + * src/output.c (output_short_table): New argument to display the + comment associated with the table. + Adjust dependencies. + (output_gram): Use it. + (output_rule_data): Nicer output layout for YYTNAME. + + +2000-10-16 Akim Demaille + + * src/lex.c (read_typename): New function. + (lex): Use it. + * src/reader.c (copy_dollar): Likewise. + + +2000-10-16 Akim Demaille + + * src/reader.c (copy_comment2): Expect the input stream to be on + the `/' which is suspected to open a comment, instead of being + called after `//' or `/*' was read. + (copy_comment, copy_definition, parse_union_decl, copy_action) + (copy_guard): Adjust. + + +2000-10-16 Akim Demaille + + * src/reader.c (parse_expect_decl): Use `skip_white_space' and + `read_signed_integer'. + + +2000-10-16 Akim Demaille + + * src/reader.c (copy_dollar): New function. + (copy_guard, copy_action): Use it. + + +2000-10-16 Akim Demaille + + * lib/quote.h, lib/quote.c, lib/quotearg.h, lib/quotearg.c: + * m4/prereq.m4, m4/c-bs-a.m4, m4/mbstate.m4: + New files, from Fileutils 4.0.27. + * src/main.c (printable_version): Remove. + * src/lex.c, src/reader.c: Use `quote'. + +2000-10-04 Akim Demaille + + * lib/error.c, lib/error.h: New files, needed by xmalloc.c. + +2000-10-04 Akim Demaille + + * doc/bison.texinfo: Various typos spotted by Neil Booth. + +2000-10-04 Akim Demaille + + When a literal string is used to define two different tokens, + `bison -v' segfaults. + Reported by Piotr Gackiewicz, and fixed by Neil Booth. + + * tests/regression.m4: New file. + Include the core of the sample provided by Piotr Gackiewicz. + * src/reader.c (parse_token_decl): Diagnose bad cases, and proceed + properly. + +2000-10-04 Akim Demaille + + * src/reader.c (parse_expect_decl): Keep `count' within the size + of `buffer'. + From Neil Booth. + +2000-10-02 Paul Eggert + + * bison.s1 (yyparse): Assign the default value + unconditionally, to avoid a GCC warning and make the parser a + tad smaller. + +2000-10-02 Akim Demaille + + * src/getargs.c (getargs): Don't dump `--help' on unrecognized + options. + +2000-10-02 Akim Demaille + + * src/derives.c, src/print.c, src/reduce.c: To ease the + translation, move some `\n' out of the translated strings. + +2000-10-02 Akim Demaille + + The location tracking mechanism is precious for parse error + messages. Nevertheless, it is enabled only when `@n' is used in + the grammar, which is a different issue (you can use it in error + message, but not in the grammar per se). Therefore, there should + be another means to enable it. + + * src/getargs.c (getargs): Support `--locations'. + (usage): Report it. + * src/getargs.h (locationsflag): Export it. + * src/lex.c (percent_table): Support `%locations'. + * src/reader.c (yylsp_needed): Remove this variable, now replaced + with `locationsflag'. + * doc/bison.texinfo: Document `--locations' and `%locations'. + Sort the options. + * tests/calc.m4: Test it. + + For regularity of the names, replace each + (nolineflag, toknumflag, rawtokenumflag, noparserflag): with... + (no_lineflag, token_tableflag, rawflag, no_parserflag): this. + In addition replace each `flag' with `_flag'. + +2000-10-02 Akim Demaille + + Also test parse error messages, including with YYERROR_VERBOSE. + + * tests/calc.m4 (calc.y): Add support for `exp = exp' (non + associative). + Use it to check the computations. + Use it to check `nonassoc' is honored. + (AT_DATA_CALC_Y): Equip `calc.y' with YYERROR_VERBOSE when passed + `--yyerror-verbose'. + (_AT_CHECK_CALC): Adjust to this option. + (_AT_CHECK_CALC_ERROR): New macro to check parse error messages. + +2000-10-02 Akim Demaille + + Test also `--verbose', `--defines' and `--name-prefix'. Testing + the latter demonstrates a flaw in the handling of non debugging + parsers introduced by myself on 2000-03-16: `#define yydebug 0' + was used in order to simplify: + + #if YYDEBUG + if (yydebug) + { + ... + } + #endif + + into + + if (yydebug) + { + ... + } + + unfortunately this leads to a CPP conflict when + `--name-prefix=foo' is used since it produces `#define yydebug + foodebug'. + + * src/bison.s1 [!YYDEBUG]: Do not define yydebug. + (YYDPRINTF): New macro. + Spread its use. + * tests/calc.m4 (AT_CHECK_CALC): Do require a title, build it from + the bison options. + Also test `--verbose', `--defines' and `--name-prefix'. + +2000-10-02 Akim Demaille + + Improve the readability of the produced parsers. + + * src/bison.s1: Formatting changes. + Improve the comment related to the `$' mark. + (yydefault): Don't fall through to `yyresume': `goto' there. + * src/output.c (output_parser): When the `$' is met, skip the end + of its line. + New variable, `number_of_dollar_signs', to check there's exactly + one `$' in the parser skeleton. + +2000-10-02 Akim Demaille + + * lib/xstrdup.c: New file, from the fileutils. + * src/reader.c (parse_token_decl, get_type_name, parse_type_decl) + (parse_assoc_decl, parse_thong_decl, get_type): Use `xstrdup' + instead of strlen + xmalloc + strcpy. + * src/symtab.c (copys): Remove, use xstrdup instead. + +2000-10-02 Akim Demaille + + * src/gram.h (associativity): New enum type which replaces the + former CPP macros `RIGHT_ASSOC', `LEFT_ASSOC' and `NON_ASSOC' with + `right_assoc', `left_assoc' and `non_assoc'. + Adjust all dependencies. + * src/reader.c: Formatting changes. + (LTYPESTR): Don't define it, use it as a literal in + `reader_output_yylsp'. + * src/symtab.h (symbol_class): New enum type which replaces the + former CPP macros `SUNKNOWN', `STOKEN and `SNTERM' with + `sunknown', `stoken and `snterm'. + +2000-10-02 Akim Demaille + + * src/getargs.c (fixed_outfiles): Rename as... + (yaccflag): for consistency and accuracy. + Adjust dependencies. + +2000-10-02 Akim Demaille + + Use the more standard files `xalloc.h' and `xmalloc.c' instead of + Bison's `allocate.c' and `alloc.h'. This patch was surprisingly + difficult and introduced a lot of core dump. It turns out that + Bison used an implementation of `xmalloc' based on `calloc', and + at various places it does depend upon the initialization to 0. I + have not tried to isolate the pertinent places, and all the former + calls to Bison's `xmalloc' are now using `XCALLOC'. Someday, + someone should address this issue. + + * src/allocate.c, src/alloc.h, m4/bison-decl.m4: Remove. + * lib/xmalloc.c, lib/xalloc.h, m4/malloc.m4, m4/realloc.m4: New + files. + Adjust dependencies. + * src/warshall.h: New file. + Propagate. + +2000-10-02 Akim Demaille + + Various anti-`extern in *.c' changes. + + * src/system.h: Include `assert.h'. + +2000-10-02 Akim Demaille + + * src/state.h (nstates, final_state, first_state, first_shift) + (first_reduction): Move their exportation from here... + * src/LR0.h: to here. + Adjust dependencies. + * src/getargs.c (statisticsflag): New variable. + Add support for `--statistics'. + Adjust dependencies. + + Remove a lot of now useless `extern' statements in most files. + +2000-10-02 Akim Demaille + + * src/LR0.h: New file. + Propagate its use. + +2000-10-02 Akim Demaille + + * src/print.h: New file. + Propagate its use. + * src/print.c: Formatting and ordering changes. + (verbose, terse): Replace with... + (print_results): this new function. + Adjust dependencies. + +2000-10-02 Akim Demaille + + * src/conflicts.c (conflict_report): New function. + (conflict_log, verbose_conflict_log): Replace with... + (print_conflicts): this function. + Adjust dependencies. + * src/conflicts.h: New file. + Propagate its inclusion. + +2000-10-02 Akim Demaille + + * src/nullable.h: New file. + Propagate its inclusion. + * src/nullable.c: Formatting changes. + +2000-10-02 Akim Demaille + + * src/reduce.h: New file. + Propagate its inclusion. + * src/reduce.c: Topological sort and other formatting changes. + (bool, TRUE, FALSE): Move their definition to... + * src/system.h: here. + +2000-10-02 Akim Demaille + + * src/files.c: Formatting changes. + (tryopen, tryclose, openfiles): Rename as... + (xfopen, xfclose, open_files): this. + (stringappend): static. + * src/files.h: Complete the list of exported symbols. + Propagate its use. + +2000-10-02 Akim Demaille + + * src/reader.h: New file. + Propagate its use instead of tedious list of `extern' and + prototypes. + * src/reader.c: Formatting changes, topological sort, + s/register//. + +2000-10-02 Akim Demaille + + * src/lex.h: Prototype `lex.c' exported functions. + * src/reader.c: Adjust. + * src/lex.c: Formatting changes. + (safegetc): Rename as... + (xgetc): this. + +2000-10-02 Akim Demaille + + * src/lalr.h: New file. + Propagate its inclusion instead of prototypes and `extern'. + * src/lalr.c: Formatting changes, topological sorting etc. + +2000-10-02 Akim Demaille + + * src/output.c (token_actions): Introduce a temporary array, + YYDEFACT, that makes it possible for this function to use + output_short_table. + +2000-10-02 Akim Demaille + + `user_toknums' is output as a `short[]' in `output.c', while it is + defined as a `int[]' in `reader.c'. For consistency with the + other output tables, `user_toknums' is now defined as a table of + shorts. + + * src/reader.c (user_toknums): Be a short table instead of an int + table. + Adjust dependencies. + + Factor the short table outputs. + + * src/output.c (output_short_table): New function. + * src/output.c (output_gram, output_stos, output_rule_data) + (output_base, output_table, output_check): Use it. + +2000-10-02 Akim Demaille + + * src/output.c (output): Topological sort of the functions, in + order to get rid of the `static' prototypes. + No longer use `register'. + * src/output.h: New file. + Propagate its inclusion in files explicitly prototyping functions + from output.c. + +2000-09-21 Akim Demaille + + * src/atgeneral.m4: Update from Autoconf. + +2000-09-21 Akim Demaille + + * src/closure.h: New file. + * src/closure.c: Formatting changes, topological sort over the + functions, use of closure.h. + (initialize_closure, finalize_closure): Rename as... + (new_closure, free_closure): these. Adjust dependencies. + * src/LR0.c: Formatting changes, topological sort, use of + cloture.h. + (initialize_states): Rename as... + (new_states): this. + * src/Makefile.am (noinst_HEADERS): Adjust. + +2000-09-20 Akim Demaille + + * src/acconfig.h: Don't protect config.h against multiple + inclusion. + Don't define PARAMS. + * src/system.h: Define PARAMS. + Remove some of the ad-hoc CPP magic for DOS, VMS etc.: this is the + purpose of config.h. system.h must not try to fix wrong + definitions in config.h. + +2000-09-20 Akim Demaille + + * src/derives.h: New file. + * src/main.c, src/derives.h: Use it. + Formatting changes. + * src/Makefile.am (noinst_HEADERS): Adjust. + +2000-09-20 Akim Demaille + + * tests/atgeneral.m4: Update from Autoconf. + * tests/calc.m4 (_AT_DATA_CALC_Y, AT_DATA_CALC_Y, _AT_CHECK_CALC) + (AT_CHECK_CALC): New macros. + Use these macros to test bison with options `', `--raw', + `--debug', `--yacc', `--yacc --debug'. + +2000-09-19 Akim Demaille + + * src/output.c: Formatting changes. + * src/machine.h: Remove, leaving its contents in... + * src/system.h: here. + Include stdio.h. + Adjust all dependencies on stdio.h and machine.h. + * src/getargs.h: New file. + Let all `extern' declarations about getargs.c be replaced with + inclusion of `getargs.h'. + * src/Makefile.am (noinst_HEADERS): Adjust. + + * tests/calc.m4 (yyin): Be initialized in main, not on the global + scope. + (yyerror): Returns void, not int. + * doc/bison.texinfo: Formatting changes. + +2000-09-19 Akim Demaille + + * tests/calc.m4 (calc.y): Do not assign to stdin, as it's not + portable. + +2000-09-18 Akim Demaille + + * configure.in: Append WARNING_CFLAGS to CFLAGS. + * src/Makefile.am (INCLUDES): Don't. + Be ready to fetch headers in lib/. + +2000-09-18 Akim Demaille + + * doc/bison.texinfo: Update the copyright. + ANSIfy and GNUify the examples. + Remove the old menu. + +2000-09-18 Akim Demaille + + First set of tests: use the `calc' example from the documentation. + + * src/bison.s1 (yyparse): Condition the code using `yytname' which + is defined only when YYDEBUG is. + * m4/atconfig.m4 (AT_CONFIG): Adjust to Autoconf 2.13. + * src/files.c (tryopen, tryclose): Formatting changes. + Move to the top and be static. + * src/reader.c (read_signed_integer): Likewise. + * tests/calc.m4: New file. + * Makefile.am, suite.m4: Adjust. + * m4/atconfig.m4: Set BISON_SIMPLE and BISON_HAIRY. + +2000-09-18 Akim Demaille + + Add support for an Autotest test suite for Bison. + + * m4/m4.m4, m4/atconfig.m4: New files. + * m4/Makefile.am (EXTRA_DIST): Adjust. + * tests/suite.m4, tests/Makefile.am, tests/atgeneral.m4: New + files. + * src/getargs.c: Display a more standard --version message. + * src/reader.c (reader): Formatting changes. + No longer depend upon VERSION_STRING. + * configure.in: No longer use `dnl'. + Set up the test suite and the new directory `tests/. + (VERSION_STRING): Remove. + +2000-04-14 Akim Demaille + + * src/reader.c (copy_comment2): New function, same as former + `copy_comment', but outputs into two FILE *. + (copy_comment): Use it. + (parse_union_decl): Use it. + (get_type, parse_start_decl): Use the same `invalid' message. + (parse_start_decl, parse_union_decl): Use the same `multiple' + message. + (parse_union_decl, copy_guard, copy_action): Use the same + `unmatched' message. + * m4/Makefile.am (EXTRA_DIST): Add `warning.m4'. + +2000-03-31 Akim Demaille + + * src/files.c (tryopen, tryclose): Move to the top. + Be static. + +2000-03-31 Akim Demaille + + * src/main.c (main): Don't call `done', exit does it. + +2000-03-31 Akim Demaille + + * allocate.c: s/return (foo)/return foo/. + * lalr.c: Likewise. + * LR0.c: Likewise. + * output.c: Likewise. + * reader.c: Likewise. + * symtab.c: Likewise. + * vmsgetargs.c: Likewise. + +2000-03-31 Akim Demaille + + Clean up the error reporting functions. + + * src/report.c: New file. + * src/report.h: Likewise. + * src/Makefile.am: Adjust. + * m4/error.m4: New file. + * m4/Makefile.am: Adjust. + * configure.in (jm_PREREQ_ERROR): Call it. + * src/main.c (int_to_string, banner, fatal_banner, warn_banner): + Remove. + (fatal, fatals): Remove. All callers use complain.c::fatal. + (warn, warni, warns, warnss, warnss): Remove. All callers use + complain.c::complain. + (toomany): Remove, use fatal instead. + * src/files.c (done): No argument, use complain_message_count. + * src/main.c (main): Register `done' to `atexit'. + + * src/getargs.c (usage): More `fputs', less `fprintf'. + 2000-03-28 Akim Demaille * lib/: New directory.