X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/e2aaf4c4f98afe4b15ea297d8b0b2b0e210f6fc4..8442d6ba228133aba0bc2ada30b8796229884223:/ChangeLog?ds=inline diff --git a/ChangeLog b/ChangeLog index d3536bd4..8115b899 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,934 @@ +2002-08-12 Paul Eggert + + Version 1.49b. + + * Makefile.am (SUBDIRS): Remove intl. + (DISTCLEANFILES): Remove. + * NEWS: Mention that GNU M4 is now required. Clarify what is + meant by "larger grammars". Mention the pt_BR translation. + * configure.in (AC_CHECK_DECLS): Add getenv, getopt. + (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var. + Bump version from 0.11.2 to 0.11.5. + (BISON_PREREQ_STAGE): Remove. + (AM_GNU_GETTEXT): Use external gettext. + (AC_OUTPUT): Remove intl/Makefile. + + * config/depcomp, config/install-sh: Sync with Automake 1.6.3. + + * data/glr.c: Include string.h, for strlen. + (yyreportParseError): Use size_t for yysize. + (yy_yypstack): No longer nested inside yypstates, as nested + functions are not portable. Do not assume size_t is the + same width as int. + (yypstates): Do not assume that ptrdiff_t is the same width + as int, and similarly for yyposn and YYINDEX. + + * data/yacc.c: Fix comment about `$$ = $1': it can copy garbage. + + * lib/Makefile.am (INCLUDES): Do not include from the intl + directory, which has been removed. + * src/Makefile.am (INCLUDES): Likewise. + + * lib/Makefile.am (libbison_a_SOURCES): Add unlocked-io.h. + (bitsets_sources, additional_bitsets_sources, timevars_sources): + New vars. + + * lib/Makefile.am (libbison_a_SOURCES): Avoid +=, a GNU make extension. + * tests/Makefile.am (EXTRA_DIST): Likewise. + + * lib/abitset.c (abitset_reverse_list, ebitset_reverse_list): + Do not assume that bitset_windex is the same width as unsigned. + + * lib/abitset.c (abitset_unused_clear): Do not assume that + bitset_word is the same width as int. + * lib/bbitset.h (BITSET_INDEX_MAX, BITSET_MSB): Likewise. + * lib/bitset.h (bitset_set, bitset_reset): Likewise. + * lib/bitset_stats.c (bitset_stats_set, bitset_stats_reset): Likewise. + * lib/ebitset.c (ebitset_set, ebitset_reset): Likewise. + * lib/lbitset.c (lbitset_set, lbitset_reset): Likewise. + + * lib/abitset.c (abitset_op1): Use -1, not ~0, as memset arg (for + portability to one's complement hosts!). + * lib/ebitset.c (ebitset_op1): Likewise. + * lib/lbitset.c (lbitset_op1): Likewise. + + * lib/argmatch.c, lib/quotearg.c, quotearg.h: Sync with GNU tar. + * lib/argmatch.h, lib/basename.c, lib/dirname.c, lib/dirname.h, + lib/hash.c, lib/hash.h, lib/strnlen.c, lib/xmalloc.c: + Sync with fileutils. + * lib/error.c, lib/getopt.c, lib/getopt.h, lib/getopt1.c, + lib/gettext.h: Sync with diffutils. + + * lib/memrchr.c, lib/mkstemp.c, lib/strchr.c, lib/strnlen.c, + lib/strspn.c, lib/tempname.c: Use GPL, not LGPL. + + * lib/obstack.c, lib/obstack.h: Sync with fileutils, except use + PROTOTYPES to check for prototypes, and "defined __STDC__" to + check for void *. + + * lib/bbitset.h (BITSET_WORD_BITS): Now of type unsigned, not + size_t; the old version tried to do this but casted improperly. + (bitset_bindex, bitset_windex): Now size_t, not unsigned long. + (bitset_test): Now returns int, not unsigned long. + + * lib/bitset_stats.c: Include "gettext.h". + (_): New macro. + (bitset_stats_set, bitset_stats_reset, bitset_stats_test): Don't + name locals "index", as it generates unnecessary warnings on some + hosts that have an "index" function. + + * lib/bitset_stats.c (bitset_stats_print_1, bitset_stats_print, + bitset_stats_read, bitset_stats_write): Wrap strings in _() if + they need translation. + * src/LR0.c (state_list_append, new_itemsets, get_state, + append_states, generate_states): Likewise. + * src/assoc.c (assoc_to_string): Likewise. + * src/closure.c (print_closure, set_firsts, closure): Likewise. + * src/gram.c (grammar_dump): Likewise. + * src/injections.c (injections_compute): Likewise. + * src/lalr.c (lookaheads_print): Likewise. + * src/relation.c (relation_transpose): Likewise. + * src/scan-gram.l: Likewise. + * src/tables.c (table_grow, pack_vector): Likewise. + + * m4/Makefile.am (EXTRA_DIST): Remove codeset.m4, + glibc21.m4, isc-posix.m4 lcmessage.m4, stage.m4. + * m4/malloc.m4, m4/realloc.m4: Sync with diffutils. + * m4/mbstate_t.m4: Sync with fileutils. + * m4/prereq.m4 (jm_PREREQ_QUOTEARG): AC_MBSTATE_T -> AC_TYPE_MBSTATE_T. + + * po/LINGUAS: Add pt_BR. + * po/POTFILES.in: Add src/assoc.c, src/closure.c, src/gram.c, + src/main.c, src/relation.c, src/state.c, lib/bitset_stats.c, + lib/timevar.c. + Use src/parse-gram.y instead of src/parse-gram.c, as the gettext + manual recommends. + Similarly, use src/scan-gram.l instead of src/scan-gram.c. + + * src/complain.c (strerror_r): Remove decl; not needed. + (strerror): Use same pattern as ../lib/error.c. + + * src/files.c, src/files.h (compute_header_macro): Remove; unused. + + * src/gram.c (grammar_dump): Do not assume ptrdiff_t fits in int. + + * src/main.c (main): Cast result of bindtextdomain and textdomain + to void, to avoid a GCC warning when --disable-nls is in effect. + + * src/scan-gram.l: Use strings rather than escapes when possible, + to minimize the number of warnings from xgettext. + (handle_action_dollar, handle_action_at): Don't use isdigit, + as it mishandles negative chars and it may not work as expected + outside the C locale. + + * src/symtab.c (symbol_get): Don't cast LHS of an assignment; + this is a GCC extension and is not portable to other compilers. + + * src/system.h (alloca): Use same pattern as ../lib/error.c. + Do not include ; no longer needed. + Do not include ; no longer needed (and generates + warnings on OpenBSD 3.0). + + * tests/cxx-type.at (yylex): Do not pass signed char to isupper; + it's not portable. + + * tests/regression.at: Do not use 'cc -c input.c -o input'; + Sun C rejects this. Instead, use 'cc -c input.c -o input.o'. + + * tests/synclines.at (AC_SYNCLINES_COMPILE): Accept any nonzero + exit status as failure, not just exit status 1. Sun C exits + with status 2 sometimes. + + * tests/torture.at (AT_INCREASE_DATA_SIZE): New macro. + Use it for the two large tests. + +2002-08-02 Akim Demaille + + * src/conflicts.c (conflicts_output): Don't output rules never + reduced here, since anyway that computation doesn't work. + * src/gram.h, src/gram.h (rule_filter_t, rule_useful_p) + (rule_useless_p, rule_never_reduced_p): New. + (grammar_rules_partial_print): Use a filter instead of a range. + Display the title only if needed. + (grammar_rules_print): Adjust. + (grammar_rules_never_reduced_report): New. + * src/tables.c (action_row): Move the computation of rules never + reduced to... + (token_actions): here. + * src/main.c (main): Make the parser before making the report, so + that rules never reduced are computed. + Call grammar_rules_never_reduced_report. + * src/print.c (print_results): Report rules never reduced. + * tests/conflicts.at, tests/reduce.at: Adjust. + +2002-08-01 Akim Demaille + + Instead of attaching lookaheads and duplicating the rules being + reduced by a state, attach the lookaheads to the reductions. + + * src/state.h (state_t): Remove the `lookaheads', + `lookaheads_rule' member. + (reductions_t): Add a `lookaheads' member. + Use a regular array for the `rules'. + * src/state.c (reductions_new): Initialize the lookaheads member + to 0. + (state_rule_lookaheads_print): Adjust. + * src/state.h, src/state.c (state_reductions_find): New. + * src/conflicts.c (resolve_sr_conflict, set_conflicts) + (count_rr_conflicts): Adjust. + * src/lalr.c (LArule): Remove. + (add_lookback_edge): Adjust. + (state_lookaheads_count): New. + (states_lookaheads_initialize): Merge into... + (initialize_LA): this. + (lalr_free): Adjust. + * src/main.c (main): Don't free nullable and derives too early: it + is used by --verbose. + * src/print.c, src/print_graph.c, src/tables.c: Adjust. + +2002-08-01 Akim Demaille + + * src/derives.h, src/derives.c (derives): A `rule_t***' instead of + `rule_number_t**'. + (set_derives, free_derives): Rename as... + (derives_compute, derives_free): this. + Adjust all dependencies. + * src/nullable.c (set_nullable, free_nullable): Rename as... + (nullable_compute, nullable_free): these. + (rule_list_t): Store rule_t *, not rule_number_t. + * src/state.c (state_rule_lookaheads_print): Directly compare rule + pointers, instead of their numbers. + * src/main.c (main): Call nullable_free, and derives_free earlier, + as they were lo longer used. + +2002-08-01 Akim Demaille + + * lib/timevar.c (get_time): Include children time. + * src/lalr.h (LA, LArule): Don't export them: used with the + state_t. + * src/lalr.c (LA, LArule): Static. + * src/lalr.h, src/lalr.c (lalr_free): New. + * src/main.c (main): Call it. + * src/tables.c (pack_vector): Check whether loc is >= to the + table_size, not >. + (pack_tables): Don't free froms, tos, conflict_tos, and pos... + (tables_generate): do it, since that's also it which allocates + them. + Don't free LA and LArule, main does. + +2002-07-31 Akim Demaille + + Separate parser tables computation and output. + + * src/output.c (nvectors, base_t, base, base_ninf, conflict_table) + (conflict_list, conflict_list_cnt, table, check, table_ninf) + (yydefgoto, yydefact, high): Move to... + * src/tables.h, src/tables.c: here. + * src/output.c (vector_number_t, VECTOR_NUMBER_MAX) + (VECTOR_NUMBER_MIN, state_number_to_vector_number) + (symbol_number_to_vector_number, nvectors, BASE_MAX, BASE_MIN) + (froms, tos, conflict_tos, tally, width, action_t, ACTION_MAX) + (ACTION_MIN, actrow, order, nentries, pos, conflrow) + (conflict_list_free, table_size, lowzero, table_grow, conflict_row) + (action_row, save_row, token_actions, save_column, default_goto) + (goto_actions, sort_actions, matching_state, pack_vector) + (table_ninf_remap, pack_table, prepare_actions): Move to... + * src/tables.c: here. + * src/tables.h, src/tables.c(tables_generate, tables_free): New. + * src/output.c (token_actions, output_base, output_conflicts) + (output_check): Merge into... + (prepare_actions): this. + (actions_output): Rename as... + (user_actions_output): this. + * src/main.c (main): Call tables_generate and tables_free. + +2002-07-31 Akim Demaille + + Steal GCC's --time-report support. + + * lib/timevar.c, lib/timevar.h, lib/timevar.def: New, + stolen/adjusted from GCC. + * m4/stage.m4: Remove time related checks. + * m4/timevar.m4: New. + * configure.in: Adjust. + * src/system.h: Adjust to using timevar.h. + * src/getargs.h, src/getargs.c: Support trace_time for + --trace=time. + * src/main.c (stage): Remove. + (main): Replace `stage' invocations with timevar calls. + * src/output.c: Insert pertinent timevar calls. + +2002-07-31 Akim Demaille + + Let --trace have arguments. + + * src/getargs.h (enum trace_e): New. + * src/getargs.c (trace_args, trace_types, trace_argmatch): New. + (long_options, short_options): --trace/-T takes an optional + argument. + Change all the uses of trace_flag to reflect the new flags. + * tests/sets.at (Firsts, Nullable, Broken Closure): Use --trace=sets. + + Strengthen `stage' portability. + + * m4/stage.m4 (BISON_PREREQ_STAGE): New. + * configure.in: Use it. + Don't check for malloc.h and sys/times.h. + * src/system.h: Include them when appropriate. + * src/main.c (stage): Compile only when mallinfo, struct mallinfo, + times and struct tms are available. + +2002-07-30 Akim Demaille + + In verbose parse error message, don't report `error' as an + expected token. + * tests/actions.at (Printers and Destructors): Adjust. + * tests/calc.at (Calculator $1): Adjust. + * data/yacc.c, data/glr.c, data/lalr1.c: When making the verbose + error message, do not report the parser accepts the error token in + that state. + +2002-07-30 Akim Demaille + + Normalize conflict related messages. + + * src/complain.h, src/complain.c (warn, complain): New. + * src/conflicts.c (conflicts_print): Use them. + (conflict_report_yacc): New, extracted from... + (conflicts_print): here. + * tests/conflicts.at, tests/existing.at: Adjust. + +2002-07-30 Akim Demaille + + Report rules which are never reduced by the parser: those hidden + by conflicts. + + * src/LR0.c (save_reductions): Don't make the final state too + different: save its reduction (accept) instead of having a state + without any action (no shift or goto, no reduce). + Note: the final state is now a ``regular'' state, i.e., the + parsers now contain `reduce 0' as default reduction. + Nevertheless, since they decide to `accept' when yystate = + final_state, they still will not reduce rule 0. + * src/print.c (print_actions, print_reduction): Adjust. + * src/output.c (action_row): Track reduced rules. + (token_actions): Report rules never reduced. + * tests/conflicts.at, tests/regression.at: Adjust. + +2002-07-30 Akim Demaille + + `stage' was accidently included in a previous patch. + Initiate its autoconfiscation. + + * configure.in: Look for malloc.h and sys/times.h. + * src/main.c (stage): Adjust. + Report only when trace_flag. + +2002-07-29 Akim Demaille + + * src/state.h, src/state.c (transitions_t): Holds state_t*'s, not + state_number_t. + (errs_t): symbol_t*, not symbol_number_t. + (reductions_t): rule_t*, not rule_number_t. + (FOR_EACH_SHIFT): New. + * src/LR0.c, src/conflicts.c, src/lalr.c, src/output.c + * src/print.c, src/print_graph.c: Adjust. + +2002-07-29 Akim Demaille + + Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $. + + * src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as... + (endtoken, accept): these. + * src/reader.c (reader): Set endtoken's default tag to "$end". + Set undeftoken's tag to "$undefined" instead of "$undefined.". + * doc/bison.texinfo (Table of Symbols): Mention $accept and $end. + Adjust. + +2002-07-29 Akim Demaille + + * src/reduce.c (reduce_grammar): When the language is empty, + complain about the start symbol, not the axiom. + Use its location. + * tests/reduce.at (Empty Language): New. + +2002-07-26 Akim Demaille + + * src/reader.h, src/reader.c (gram_error): ... can't get + yycontrol without making too strong assumptions on the parser + itself. + * src/output.c (prepare_tokens): Use the real 0th value of + token_translations instead of `0'. + * src/parse-gram.y (yyerror): Don't rely on yycontrol being + visible here. + * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc + for the time being: %locations ought to provide it to yyerror. + +2002-07-25 Akim Demaille + + * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1. + * doc/bison.texinfo (Decl Summary): s/$illegal/$undefined./. + * tests/regression.at (Web2c Actions): Adjust. + +2002-07-25 Akim Demaille + + Stop storing rules from 1 to nrules + 1. + + * src/LR0.c, src/closure.c, src/derives.c, src/gram.c, src/lalr.c + * src/nullable.c, src/output.c, src/print.c, src/reader.c + * src/reduce.c: Allocate and free from &rules[0], not &rules[1]. + Iterate from 0 to nrules. + Use rule_number_as_item_number and item_number_as_rule_number. + Adjust to `derive' now containing possibly 0. + * src/gram.h (rule_number_as_item_number, item_number_as_rule_number): + Handle the `- 1' part in rule numbers from/to item numbers. + * src/conflicts.c (log_resolution): Fix the message which reversed + shift and reduce. + * src/output.c (action_row): Initialize default_rule to -1. + (token_actions): Adjust. + * tests/sets.at (Nullable, Firsts): Fix the previously bogus + expected output. + * tests/conflicts.at (Resolved SR Conflicts): Likewise. + +2002-07-25 Akim Demaille + + * data/c.m4 (b4_c_function, b4_c_ansi_args, b4_c_ansi_arg) + (b4_c_knr_arg_names, b4_c_knr_arg_name, b4_c_knr_arg_decls) + (b4_c_knr_arg_decl): New. + * data/yacc.c: Use it to define yysymprint, yydestruct, and + yyreport_parse_error. + +2002-07-25 Akim Demaille + + * data/yacc.c (yyreport_parse_error): New, extracted from... + (yyparse): here. + (yydestruct, yysymprint): Move above yyparse. + Be K&R compliant. + +2002-07-25 Akim Demaille + + * data/c.m4 (b4_ints_in, b4_int_type, b4_int_type_for): New, + replace... + (b4_sint_type, b4_uint_type): these. + * data/yacc.c, data/glr.c, data/lalr1.cc: Use b4_int_type_for. + * tests/regression.at (Web2c Actions): Adjust. + +2002-07-25 Akim Demaille + + * src/gram.h (TIEM_NUMBER_MAX): New. + (item_number_of_rule_number, rule_number_of_item_number): Rename + as... + (rule_number_as_item_number, item_number_as_rule_number): these. + Adjust dependencies. + * src/output.c (vector_number_t, VECTOR_NUMBER_MAX) + (VECTOR_NUMBER_MIN, state_number_to_vector_number) + (symbol_number_to_vector_number): New. + (order): Of vector_number_t* type. + (base_t, BASE_MAX, BASE_MIN): New. + (froms, tos, width, pos, check): Of base_t type. + (action_number_t, ACTION_MIN, ACTION_MAX): New. + (actrow): Of action_number_t type. + (conflrow): Of unsigned int type. + (table_ninf, base_ninf): New. + (GENERATE_MUSCLE_INSERT_TABLE): Also output the `*_min' value. + (muscle_insert_int_table, muscle_insert_base_table) + (muscle_insert_rule_number_table): New. + (prepare_tokens): Output `toknum' as int_table. + (action_row): Returns a rule_number_t. + Use ACTION_MIN, not SHRT_MIN. + (token_actions): yydefact is rule_number_t*. + (table_ninf_remap): New. + (pack_table): Use it for `base' and `table'. + * data/yacc.c, data/glr.c, data/lalr1.cc (YYFLAG): Remove, + replaced with... + (YYPACT_NINF, YYTABLE_NINF): these. + (yypact, yytable): Compute their types instead of hard-coded + `short'. + * tests/regression.at (Web2c Actions): Adjust. + +2002-07-19 Akim Demaille + + * src/scan-gram.l (id): Can start with an underscore. + +2002-07-16 Akim Demaille + + * src/assoc.c, src/asssoc.h (assoc_t, assoc_to_string): New. + Adjust all former `associativity' dependencies. + * src/symtab.c (symbol_new): Default associativity is `undef', not + `right'. + (symbol_check_alias_consistence): Adjust. + +2002-07-09 Akim Demaille + + * doc/bison.texinfo: Properly set the ``header'' part. + Use @dircategory ``GNU programming tools'' as per Texinfo's + documentation. + Use @copying. + +2002-07-09 Akim Demaille + + * lib/quotearg.h: Protect against multiple inclusions. + * src/location.h (location_t): Add a `file' member. + (LOCATION_RESET, LOCATION_PRINT): Adjust. + * src/complain.c (warn_at, complain_at, fatal_at): Drop + `error_one_per_line' support. + +2002-07-09 Akim Demaille + + * src/complain.h, src/complain.c (warn, complain): Remove, unused. + * src/reader.c (lineno): Remove. + Adjust all dependencies. + (get_merge_function): Take a location and use complain_at. + * src/symtab.h, src/symtab.c (symbol_make_alias): Likewise. + * tests/regression.at (Invalid inputs, Mixing %token styles): + Adjust. + +2002-07-09 Akim Demaille + + * src/parse-gram.y (rules_or_grammar_declaration): Add an error + recovery rule, and forbid extensions when --yacc. + (gram_error): Use complain_at. + * src/reader.c (reader): Exit if there were parse errors. + +2002-07-09 Akim Demaille + + * tests/synclines.at (AT_SYNCLINES_COMPILE): New. + (AT_TEST_SYNCLINE): Adjust to unusual GCC outputs. + Reported by R Blake . + +2002-07-09 Akim Demaille + + * data/yacc.c: Output the copyright notive in the header. + +2002-07-03 Akim Demaille + + * src/output.c (froms, tos): Are state_number_t. + (save_column): sp, sp1, and sp2 are state_number_t. + (prepare): Rename `final' as `final_state_number', `nnts' as + `nterms_number', `nrules' as `rules_number', `nstates' as + `states_number', and `ntokens' as `tokens_number'. Remove `nsym', + unused. + * data/yacc.c, data/glr.c, data/lalr1.cc: Adjust. + * data/lalr1.cc (nsym_): Remove, unused. + +2002-07-03 Akim Demaille + + * src/lalr.h, src/lalr.c (goto_number_t): New. + * src/lalr.c (goto_list_t): New. + Propagate them. + * src/nullable.c (rule_list_t): New. + Propagate. + * src/types.h: Remove. + +2002-07-03 Akim Demaille + + * src/closure.c (print_fderives): Use rule_rhs_print. + * src/derives.c (print_derives): Use rule_rhs_print. + (rule_list_t): New, replaces `shorts'. + (set_derives): Add comments. + * tests/sets.at (Nullable, Firsts): Adjust. + +2002-07-03 Akim Demaille + + * src/output.c (prepare_actions): Free `tally' and `width'. + (prepare_actions): Allocate and free `order'. + * src/symtab.c (symbols_free): Free `symbols'. + * src/scan-gram.l (scanner_free): Clear Flex's scanners memory. + * src/output.c (m4_invoke): Move to... + * src/scan-skel.l: here. + (<>): Close yyout, and free its name. + +2002-07-03 Akim Demaille + + Fix some memory leaks, and fix a bug: state 0 was examined twice. + + * src/LR0.c (new_state): Merge into... + (state_list_append): this. + (new_states): Merge into... + (generate_states): here. + (set_states): Don't ensure a proper `errs' state member here, do it... + * src/conflicts.c (conflicts_solve): here. + * src/state.h, src/state.c: Comment changes. + (state_t): Rename member `shifts' as `transitions'. + Adjust all dependencies. + (errs_new): For consistency, also take the values as argument. + (errs_dup): Remove. + (state_errs_set): New. + (state_reductions_set, state_transitions_set): Assert that no + previous value was assigned. + (state_free): New. + (states_free): Use it. + * src/conflicts.c (resolve_sr_conflict): Don't use an `errs_t' as + temporary storage: use `errs' and `nerrs' as elsewhere. + (set_conflicts): Allocate and free this `errs'. + +2002-07-02 Akim Demaille + + * lib/libiberty.h: New. + * lib: Update the bitset implementation from upstream. + * src/closure.c, src/lalr.c, src/output.c, src/print_graph.c, + * src/state.c: Use BITSET_FOR_EACH, not BITSET_EXECUTE. + * src/main.c: Adjust bitset stats calls. + +2002-07-01 Paul Eggert + + * src/scan-gram.l (): Convert to unsigned + char, so that negative chars don't collide with $. + +2002-06-30 Akim Demaille + + Have the GLR tests be `warning' checked, and fix the warnings. + + * data/glr.c (YYFPRINTF): Always define it, not only when YYDEBUG + (yyuserAction, yyreportAmbiguity): `Use' all the arguments. + (yyremoveDeletes): `yyi' and `yyj' are size_t. + Use YYFPRINTF when under if (YYDEBUG) to avoid empty `if' bodies. + (yyaddDeferredAction): static. + (yyglrReduce): yyi, yyk, amd yyposn are size_t. + (yyreportParseError): yyprefix is const. + yytokenp is used only when verbose. + (yy__GNUC__): Replace with __GNUC__. + (yypdumpstack): yyi is size_t. + (yypreference): Un-yy local variables and arguments, to avoid + clashes with `yyr1'. Anyway, we are not in the user name space. + (yytname_size): be an int, as is compared with ints. + * tests/testsuite.at (AT_COMPILE, AT_PARSER_CHECK): New. + Use them. + * tests/cxx-gram.at: Use quotation to protect $1. + Use AT_COMPILE to enable warnings hunts. + Prototype yylex and yyerror. + `Use' argc. + Include `string.h', not `strings.h'. + Produce and prototype stmtMerge only when used. + yylex takes a location. + +2002-06-30 Akim Demaille + + We spend a lot of time in quotearg, in particular when --verbose. + + * src/symtab.c (symbol_get): Store a quoted version of the key. + (symbol_tag_get, symbol_tag_get_n, symbol_tag_print): Remove. + Adjust all callers. + +2002-06-30 Akim Demaille + + * src/state.h (reductions_t): Rename member `nreds' as num. + (errs_t): Rename members `nerrs' and `errs' as `num' and `symbols'. + * src/state.c (ERRS_ALLOC, REDUCTIONS_ALLOC): Use the correct types. + +2002-06-30 Akim Demaille + + * src/state.h, src/state.c (shift_t, SHIFT_SYMBOL, SHIFT_IS_SHIFT) + (SHIFT_IS_GOTO, SHIFT_IS_ERROR, SHIFT_DISABLE, SHIFT_IS_DISABLED) + (shifts_to): Rename as... + (transition_t, TRANSITION_SYMBOL, TRANSITION_IS_TRANSITION) + (TRANSITION_IS_GOTO, TRANSITION_IS_ERROR, TRANSITION_DISABLE) + (TRANSITION_IS_DISABLED, transitions_to): these. + +2002-06-30 Akim Demaille + + * src/print.c (print_shifts, print_gotos): Merge into... + (print_transitions): this. + (print_transitions, print_errs, print_reductions): Align the + lookaheads columns. + (print_core, print_transitions, print_errs, print_state, + print_grammar): Output empty lines separator before, not after. + (state_default_rule_compute): Rename as... + (state_default_rule): this. + * tests/conflicts.at (Defaulted Conflicted Reduction), + (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust. + * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust. + +2002-06-30 Akim Demaille + + Display items as we display rules. + + * src/gram.h, src/gram.c (rule_lhs_print): New. + * src/gram.c (grammar_rules_partial_print): Use it. + * src/print.c (print_core): Likewise. + * tests/conflicts.at (Defaulted Conflicted Reduction), + (Unresolved SR Conflicts): Adjust. + (Unresolved SR Conflicts): Adjust and rename as... + (Resolved SR Conflicts): this, as was meant. + * tests/regression.at (Web2c Report): Adjust. + +2002-06-30 Akim Demaille + + * src/print.c (state_default_rule_compute): New, extracted from... + (print_reductions): here. + Pessimize, but clarify the code. + * tests/conflicts.at (Defaulted Conflicted Reduction): New. + +2002-06-30 Akim Demaille + + * src/output.c (action_row): Let default_rule be always a rule + number. + +2002-06-30 Akim Demaille + + * src/closure.c (print_firsts, print_fderives, closure): + Use BITSET_EXECUTE. + * src/lalr.c (lookaheads_print): Likewise. + * src/state.c (state_rule_lookaheads_print): Likewise. + * src/print_graph.c (print_core): Likewise. + * src/print.c (print_reductions): Likewise. + * src/output.c (action_row): Likewise. + Use SHIFT_IS_DISABLED, SHIFT_IS_SHIFT and SHIFT_SYMBOL. + +2002-06-30 Akim Demaille + + * src/print_graph.c: Use report_flag. + +2002-06-30 Akim Demaille + + * src/lalr.c (traverse, digraph, matrix_print, transpose): Move + to... + * src/relation.h, src/relation.c (traverse, relation_digraph) + (relation_print, relation_transpose): New. + +2002-06-30 Akim Demaille + + * src/state.h, src/state.c (shifts_to): New. + * src/lalr.c (build_relations): Use it. + +2002-06-30 Akim Demaille + + * src/gram.h (rule_number_t, RULE_NUMBER_MAX, int_of_rule_number) + (item_number_of_rule_number, rule_number_of_item_number): New. + * src/LR0.c, src/closure.c, src/derives.c, src/derives.h, + * src/gram.c, src/lalr.c, src/nullable.c, src/output.c, src/print.c, + * src/print_graph.c, src/reader.c, src/reduce.c, src/reduce.h: + Propagate their use. + Much remains to be done, in particular wrt `shorts' from types.h. + +2002-06-30 Akim Demaille + + * src/symtab.c (symbol_new): Initialize the `printer' member. + +2002-06-30 Akim Demaille + + * src/LR0.c (save_reductions): Remove, replaced by... + * src/state.h, src/state.c (state_reductions_set): New. + (reductions, errs): Rename as... + (reductions_t, errs_t): these. + Adjust all dependencies. + +2002-06-30 Akim Demaille + + * src/LR0.c (state_list_t, state_list_append): New. + (first_state, last_state): Now symbol_list_t. + (this_state): Remove. + (new_itemsets, append_states, save_reductions): Take a state_t as + argument. + (set_states, generate_states): Adjust. + (save_shifts): Remove, replaced by... + * src/state.h, src/state.c (state_shifts_set): New. + (shifts): Rename as... + (shifts_t): this. + Adjust all dependencies. + * src/state.h (state_t): Remove the `next' member. + +2002-06-30 Akim Demaille + + * src/vcg.c (quote): Use slot 2, since we often pass symbol tag + escaped in slot 0. + +2002-06-30 Akim Demaille + + Use hash.h for the state hash table. + + * src/LR0.c (STATE_HASH_SIZE, state_hash): Remove. + (allocate_storage): Use state_hash_new. + (free_storage): Use state_hash_free. + (new_state, get_state): Adjust. + * src/lalr.h, src/lalr.c (states): Move to... + * src/states.h (state_t): Remove the `link' member, no longer + used. + * src/states.h, src/states.c: here. + (state_hash_new, state_hash_free, state_hash_lookup) + (state_hash_insert, states_free): New. + * src/states.c (state_table, state_compare, state_hash): New. + * src/output.c (output_actions): Do not free states now, since we + still need to know the final_state number in `prepare', called + afterwards. Do it... + * src/main.c (main): here: call states_free after `output'. + +2002-06-30 Akim Demaille + + * src/state.h, src/state.c (state_new): New, extracted from... + * src/LR0.c (new_state): here. + * src/state.h (STATE_ALLOC): Move to... + * src/state.c: here. + * src/LR0.h, src/LR0.c (nstates, final_state): Move to... + * src/state.h, src/state.c: here. + +2002-06-30 Akim Demaille + + * src/reader.c (gensym): Rename as... + * src/symtab.h, src/symtab.c (dummy_symbol_get): this. + (getsym): Rename as... + (symbol_get): this. + +2002-06-30 Akim Demaille + + * src/state.h (state_number_t, STATE_NUMBER_MAX): New. + * src/LR0.c, src/LR0.h, src/conflicts.c, src/lalr.c, src/lalr.h, + * src/output.c, src/print.c, src/print_graph.c: Propagate. + * src/LR0.h, src/LR0.h (final_state): Is a state_t*. + +2002-06-30 Akim Demaille + + Make the test suite pass with warnings checked. + + * tests/actions.at (Printers and Destructors): Improve. + Avoid unsigned vs. signed issues. + * tests/calc.at: Don't exercise the scanner here, do it... + * tests/input.at (Torturing the Scanner): here. + +2002-06-28 Paul Hilfinger + + * data/glr.c: Correct typo in Emacs-mode directive. Slightly + reorganize first lines parallel to yacc.c. + +2002-06-28 Akim Demaille + + * data/c.m4 (b4_copyright, b4_sint_type, b4_uint_type, b4_token_define) + (b4_token_enum, b4_token_defines): New, factored from... + * data/lalr1.cc, data/yacc.c, glr.c: here. + +2002-06-28 Akim Demaille + + * data/yacc.c (yydestruct, yysymprint): Pacify GCC warnings for + unused variables. + * src/output.c (merger_output): static. + +2002-06-28 Akim Demaille + + * src/reader.h: s/grammer_current_rule_merge_set/grammar_.../. + * src/conflicts.c (conflicts_total_count): `i' is unsigned, to + pacify GCC. + * src/output.c (save_row): Initialize all the variables to pacify GCC. + +2002-06-27 Paul Hilfinger + + Accumulated changelog for new GLR parsing features. + + * src/conflicts.c (count_total_conflicts): Change name to + conflicts_total_count. + * src/conflicts.h: Ditto. + * src/output.c (token_actions): Use the new name. + (output_conflicts): Change conflp => conflict_list_heads, and + confl => conflict_list for better readability. + * data/glr.c: Use the new names. + * NEWS: Add self to GLR announcement. + + * src/reader.c (free_merger_functions): Cleanup: XFREE->free. + + * doc/bison.texinfo (GLR Parsers): Make corrections suggested by + Akim Demaille. + + * data/bison.glr: Change name to glr.c + * data/glr.c: Renamed from bison.glr. + * data/Makefile.am: Add glr.c + + * src/getargs.c: + + * src/symlist.h: Add dprec and merger fields to symbol_list_s. + * src/symlist.c (symbol_list_new): Initialize dprec and merger fields. + + Originally 2002-06-16 Paul Hilfinger + + * data/bison.glr: Be sure to restore the + current #line when returning to the skeleton contents after having + exposed the input file's #line. + + Originally 2002-06-13 Paul Hilfinger + + * data/bison.glr: Bring up to date with changes to bison.simple. + + Originally 2002-06-03 Paul Hilfinger + + * data/bison.glr: Correct definitions that use b4_prefix. + Various reformatting. + (GLRStack): Make yychar (in YYPURE case) and yytokenp as part of stack. + (yyreportParseError, yyrecoverParseError, yyprocessOneStack): remove + yytokenp argument; now part of stack. + (yychar): Define to behave as documented. + (yyclearin): Ditto. + + Originally 2002-05-14 Paul Hilfinger + + * src/reader.h: Add declaration for free_merger_functions. + + * src/reader.c (merge_functions): New variable. + (get_merge_function): New function. + (free_merger_functions): New function. + (readgram): Check for %prec that is not followed by a symbol. + Handle %dprec and %merge declarations. + (packgram): Initialize dprec and merger fields in rules array. + + * src/output.c (conflict_tos, conflrow, conflict_table, conflict_list, + conflict_list_cnt, conflict_list_free): New variables. + (table_grow): Also grow conflict_table. + (prepare_rules): Output dprec and merger tables. + (conflict_row): New function. + (action_row): Output conflict lists for GLR parser. Don't use + default reduction in conflicted states for GLR parser so that there + are spaces for the conflict lists. + (save_row): Also save conflict information. + (token_actions): Allocate conflict list. + (merger_output): New function. + (pack_vector): Pack conflict table, too. + (output_conflicts): New function to output yyconflp and yyconfl. + (output_check): Allocate conflict_tos. + (output_actions): Output conflict tables, also. + (output_skeleton): Output b4_mergers definition. + (prepare): Output b4_max_rhs_length definition. + Use 'bison.glr' as default skeleton for GLR parsers. + + * src/gram.c (glr_parser): New flag. + (grammar_free): Call free_merger_functions. + + * src/conflicts.c (count_rr_conflicts): Augment to optionally count + all pairs of conflicting reductions, rather than just all tokens + causing conflicts. Needed to size conflict tables. + (conflicts_output): Modify call to count_rr_conflicts for new + interface. + (conflicts_print): Ditto. + (count_total_conflicts): New function. + + * src/reader.h (merger_list): New type. + (merge_functions): New variable. + + * src/lex.h (tok_dprec, tok_merge): New token types. + + * src/gram.h (rule_s): Add dprec and merger fields. + (glr_parser): New flag. + + * src/conflicts.h (count_total_conflicts): New function. + + * src/options.c (option_table): Add %dprec, %merge, and %glr-parser. + + * doc/bison.texinfo (Generalized LR Parsing): New section. + (GLR Parsers): New section. + (Language and Grammar): Mention GLR parsing. + (Table of Symbols): Add %dprec, %glr-parser, %merge, GLR + Correct typo ("tge" -> "the"). + + * data/bison.glr: New skeleton for GLR parsing. + + * tests/cxx-gram.at: New tests for GLR parsing. + + * tests/testsuite.at: Include cxx-gram.at. + + * tests/Makefile.am: Add cxx-gram.at. + + * src/parse-gram.y: + + * src/scan-gram.l: Add %dprec, %glr-parser, %merge. + + * src/parse-gram.y: Grammar for %dprec, %merge, %glr-parser. + 2002-06-27 Akim Demaille * src/options.h, src/options.c: Remove. @@ -7291,19 +8222,19 @@ Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. -This file is part of GNU Autoconf. +This file is part of GNU Bison. -GNU Autoconf is free software; you can redistribute it and/or modify +GNU Bison is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. -GNU Autoconf is distributed in the hope that it will be useful, +GNU Bison is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with autoconf; see the file COPYING. If not, write to +along with GNU Bison; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.