X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/ceed8467b7db3615d3c9bfa9f3e5525d54c6a161..d6c2cba06d7c3c86f98713c498c0d142d45b86be:/ChangeLog diff --git a/ChangeLog b/ChangeLog index a3b6d106..fef6a3fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,282 @@ +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.