X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/82b6d266fdd393132bf7073acaea31f4f624b223..458be8e0ed0ff8f792bc16c20c7cd18c3645d559:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 3ed3d477..125627c9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,3810 @@ +2002-05-06 Akim Demaille + + * src/LR0.c (new_state, get_state): Instead of using the global + `kernel_size' and `kernel_base', have two new arguments: + `core_size' and `core'. + Adjust callers. + + +2002-05-06 Akim Demaille + + * src/reader.c (packgram): No longer end `ritem' with a 0 + sentinel: it is not used. + + +2002-05-05 Akim Demaille + + New experimental feature: display the lookaheads in the report and + graph. + + * src/print (print_core): When --trace-flag, display the rules + lookaheads. + * src/print_graph.c (print_core): Likewise. + Swap the arguments. + Adjust caller. + +2002-05-05 Akim Demaille + + * tests/torture.at (Many lookaheads): New test. + +2002-05-05 Akim Demaille + + * src/output.c (GENERATE_OUTPUT_TABLE): Replace with... + (GENERATE_MUSCLE_INSERT_TABLE): this. + (output_int_table, output_unsigned_int_table, output_short_table) + (output_token_number_table, output_item_number_table): Replace with... + (muscle_insert_int_table, muscle_insert_unsigned_int_table) + (muscle_insert_short_table, muscle_insert_token_number_table) + (muscle_insert_item_number_table): these. + Adjust all callers. + (prepare_tokens): Don't free `translations', since... + * src/reader.h, src/reader.c (grammar_free): do it. + Move to... + * src/gram.h, src/gram.c (grammar_free): here. + * data/bison.simple, data/bison.c++: b4_token_number_max is now + b4_translate_max. + +2002-05-05 Akim Demaille + + * src/output.c (output_unsigned_int_table): New. + (prepare_rules): `i' is unsigned. + `prhs', `rline', `r2' are unsigned int. + Rename muscle `rhs_number_max' as `rhs_max'. + Output muscles `prhs_max', `rline_max', and `r2_max'. + Free rline and r1. + * data/bison.simple, data/bison.c++: Adjust to use these muscles + to compute types instead of constant types. + * tests/regression.at (Web2c Actions): Adjust. + +2002-05-04 Akim Demaille + + * src/symtab.h (SALIAS, SUNDEF): Rename as... + (USER_NUMBER_ALIAS, USER_NUMBER_UNDEFINED): these. + Adjust dependencies. + * src/output.c (token_definitions_output): Be sure not to output a + `#define 'a'' when fed with `%token 'a' "a"'. + * tests/regression.at (Token definitions): New. + +2002-05-03 Paul Eggert + + * data/bison.simple (b4_token_defines): Also define YYTOKENTYPE + for K&R C. + +2002-05-03 gettextize + + * Makefile.am (SUBDIRS): Remove intl. + (EXTRA_DIST): Add config/config.rpath. + +2002-05-03 Akim Demaille + + * data/bison.simple (m4_if): Don't output empty enums. + And actually, output valid enum definitions :(. + +2002-05-03 Akim Demaille + + * configure.bat: Remove, completely obsolete. + * Makefile.am (EXTRA_DIST): Adjust. + Don't distribute config.rpath... + * config/Makefile.am (EXTRA_DIST): Do it. + +2002-05-03 Akim Demaille + + * configure.in (GETTEXT_VERSION): New. + Suggested by Bruno Haible for the forthcoming Gettext 0.10.3. + +2002-05-03 Akim Demaille + + * data/bison.simple (b4_token_enum): New. + (b4_token_defines): Use it to output tokens both as #define and + enums. + Suggested by Paul Eggert. + * src/output.c (token_definitions_output): Don't output spurious + white spaces. + +2002-05-03 Akim Demaille + + * data/m4sugar/m4sugar.m4: Update from CVS Autoconf. + +2002-05-02 Robert Anisko + + * data/bison.c++: Adapt expansion of $s and @s to the C++ parser. + Update the stack class, give a try to deque as the default container. + +2002-05-02 Akim Demaille + + * data/bison.simple (yyparse): Do not implement @$ = @1. + (YYLLOC_DEFAULT): Adjust to do it. + * doc/bison.texinfo (Location Default Action): Fix. + +2002-05-02 Akim Demaille + + * src/reader.c (parse_braces): Merge into... + (parse_action): this. + +2002-05-02 Akim Demaille + + * configure.in (ALL_LINGUAS): Remove. + * po/LINGUAS, hr.po: New. + +2002-05-02 Akim Demaille + + Remove the so called hairy (semantic) parsers. + + * src/system.h (EXT_GUARD_C, EXT_STYPE_H): Remove. + * src/gram.h, src/gram.c (semantic_parser): Remove. + (rule_t): Remove the guard and guard_line members. + * src/lex.h (token_t): remove tok_guard. + * src/options.c (option_table): Remove %guard and %semantic_parser + support. + * src/output.c, src/output.h (guards_output): Remove. + (prepare): Adjust. + (token_definitions_output): Don't output the `T' + tokens (???). + (output_skeleton): Don't output the guards. + * src/files.c, src/files.c (attrsfile): Remove. + * src/reader.c (symbol_list): Remove the guard and guard_line + members. + Adjust dependencies. + (parse_guard): Remove. + * data/bison.hairy: Remove. + * doc/bison.texinfo (Environment Variables): Remove occurrences of + BISON_HAIRY. + +2002-05-02 Akim Demaille + + * src/reader.c (copy_at, copy_dollarm parse_braces, parse_action) + (parse_guard): Rename the formal argument `stack_offset' as + `rule_length', which is more readable. + Adjust callers. + (copy_at, copy_dollar): Instead of outputting the hard coded + values of $$, $n and so forth, output invocation to b4_lhs_value, + b4_lhs_location, b4_rhs_value, and b4_rhs_location. + Note: this patch partially drops `semantic-parser' support: it + always does `rule_length - n', where semantic parsers ought to + always use `-n'. + * data/bison.simple, data/bison.c++ (b4_lhs_value) + (b4_lhs_location, b4_rhs_value, and b4_rhs_location: New. + +2002-05-02 Akim Demaille + + * configure.in (AC_INIT): Bump to 1.49b. + (AM_INIT_AUTOMAKE): Short invocation. + +2002-05-02 Akim Demaille + + Version 1.49a. + +2002-05-01 Akim Demaille + + * src/skeleton.h: Remove. + +2002-05-01 Akim Demaille + + * src/skeleton.h: Fix the #endif. + Reported by Magnus Fromreide. + +2002-04-26 Paul Eggert + + * data/bison.simple (YYSTYPE_IS_TRIVIAL, YYLTYPE_IS_TRIVIAL): + Define if we define YYSTYPE and YYLTYPE, respectively. + (YYCOPY): Fix [] quoting problem in the non-GCC case. + +2002-04-25 Robert Anisko + + * src/scan-skel.l: Postprocess quadrigraphs. + + * src/reader.c (copy_character): New function, used to output + single characters while replacing `[' and `]' with quadrigraphs, to + avoid troubles with M4 quotes. + (copy_comment): Output characters with copy_character. + (read_additionnal_code): Likewise. + (copy_string2): Likewise. + (copy_definition): Likewise. + + * tests/calc.at: Exercise M4 quoting. + +2002-04-25 Akim Demaille + + * tests/sets.at (AT_EXTRACT_SETS): Sed portability issue: no space + between `!' and the command. + Reported by Paul Eggert. + +2002-04-24 Robert Anisko + + * tests/calc.at: Exercise prologue splitting. + + * data/bison.simple, data/bison.c++: Use `b4_pre_prologue' and + `b4_post_prologue' instead of `b4_prologue'. + + * src/output.c (prepare): Add the `pre_prologue' and `post_prologue' + muscles. + (output): Free pre_prologue_obstack and post_prologue_obstack. + * src/files.h, src/files.c (attrs_obstack): Remove. + (pre_prologue_obstack, post_prologue_obstack): New. + * src/reader.c (copy_definition): Add a parameter to specify the + obstack to fill, instead of using attrs_obstack unconditionally. + (read_declarations): Pass pre_prologue_obstack to copy_definition if + `%union' has not yet been seen, pass post_prologue_obstack otherwise. + +2002-04-23 Paul Eggert + + * data/bison.simple: Remove unnecessary commentary and white + space differences from 1_29-branch. + Depend on YYERROR_VERBOSE, not defined (YYERROR_VERBOSE). + + (union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYCOPY, + YYSTACK_RELOCATE): Do not define if yyoverflow is defined, or + if this is a C++ parser and YYSTYPE or YYLTYPE has nontrivial + constructors or destructors. + + (yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack. + +2002-04-23 Akim Demaille + + * tests/sets.at (AT_EXTRACT_SETS): Don't use 8 char long sed labels. + * tests/synclines.at (AT_TEST_SYNCLINE): Be robust to GCC's + location with columns. + * tests/conflicts.at (%nonassoc and eof): Don't use `error.h'. + All reported by Paul Eggert. + +2002-04-22 Akim Demaille + + * src/reduce.c (dump_grammar): Move to... + * src/gram.h, src/gram.c (grammar_dump): here. + Be sure to separate long item numbers. + Don't read the members of a rule's prec if its nil. + +2002-04-22 Akim Demaille + + * src/output.c (table_size, table_grow): New. + (MAXTABLE): Remove, replace uses with table_size. + (pack_vector): Instead of dying when the table is too big, grow it. + +2002-04-22 Akim Demaille + + * data/bison.simple (yyr1): Its type is that of a token number. + * data/bison.c++ (r1_): Likewise. + * tests/regression.at (Web2c Actions): Adjust. + +2002-04-22 Akim Demaille + + * src/reader.c (token_translations_init): 256 is now the default + value for the error token, i.e., it will be assigned another + number if the user assigned 256 to one of her tokens. + (reader): Don't force 256 to error. + * doc/bison.texinfo (Symbols): Adjust. + * tests/torture.at (AT_DATA_HORIZONTAL_GRAMMAR) + (AT_DATA_TRIANGULAR_GRAMMAR): Number the tokens as 1, 2, 3 + etc. instead of 10, 20, 30 (which was used to `jump' over error + (256) and undefined (2)). + +2002-04-22 Akim Demaille + + Propagate more token_number_t. + + * src/gram.h (token_number_as_item_number) + (item_number_as_token_number): New. + * src/output.c (GENERATE_OUTPUT_TABLE): New. + Use it to create output_item_number_table and + output_token_number_table. + * src/LR0.c, src/derives.c, src/gram.c, src/gram.h, src/lalr.c, + * src/lex.c, src/nullable.c, src/output.c, src/print.c, + * src/print_graph.c, src/reader.c, src/reduce.c, src/state.h, + * src/symtab.c, src/symtab.h: Use token_number_t instead of shorts. + +2002-04-22 Akim Demaille + + * src/output.h, src/output.c (get_lines_number): Remove. + +2002-04-19 Akim Demaille + + * doc/bison.texinfo (Actions): Make clear that `|' is not the same + as Lex/Flex'. + (Debugging): More details about enabling the debugging features. + (Table of Symbols): Describe $$, $n, @$, and @n. + Suggested by Tim Josling. + +2002-04-19 Akim Demaille + + * doc/bison.texinfo: Remove the uses of the obsolete @refill. + +2002-04-10 Akim Demaille + + * src/system.h: Rely on HAVE_LIMITS_H. + Suggested by Paul Eggert. + +2002-04-09 Akim Demaille + + * tests/calc.at (_AT_CHECK_CALC_ERROR): Receive as argument the + full stderr, and strip it according to the bison options, instead + of composing the error message from different bits. + This makes it easier to check for several error messages. + Adjust all the invocations. + Add an invocation exercising the error token. + Add an invocation demonstrating a stupid error message. + (_AT_DATA_CALC_Y): Follow the GCS: initial column is 1, not 0. + Adjust the tests. + Error message are for stderr, not stdout. + +2002-04-09 Akim Demaille + + * src/gram.h, src/gram.c (error_token_number): Remove, use + errtoken->number. + * src/reader.c (reader): Don't specify the user token number (2) + for $undefined, as it uselessly prevents using it. + * src/gram.h (token_number_t): Move to... + * src/symtab.h: here. + (state_t.number): Is a token_number_t. + * src/print.c, src/reader.c: Use undeftoken->number instead of + hard coded 2. + (Even though this 2 is not the same as above: the number of the + undeftoken remains being 2, it is its user token number which + might not be 2). + * src/output.c (prepare_tokens): Rename the `maxtok' muscle with + `user_token_number_max'. + Output `undef_token_number'. + * data/bison.simple, data/bison.c++: Use them. + Be sure to map invalid yylex return values to + `undef_token_number'. This saves us from gratuitous SEGV. + + * tests/conflicts.at (Solved SR Conflicts) + (Unresolved SR Conflicts): Adjust. + * tests/regression.at (Web2c Actions): Adjust. + +2002-04-08 Akim Demaille + + * data/bison.c++: s/b4_item_number_max/b4_rhs_number_max/. + Adding #line. + Remove the duplicate `typedefs'. + (RhsNumberType): Fix the declaration and various other typos. + Use __ofile__. + * data/bison.simple: Use __ofile__. + * src/scan-skel.l: Handle __ofile__. + +2002-04-08 Akim Demaille + + * src/gram.h (item_number_t): New, the type of item numbers in + RITEM. Note that it must be able to code symbol numbers as + positive number, and the negation of rule numbers as negative + numbers. + Adjust all dependencies (pretty many). + * src/reduce.c (rule): Remove this `short *' pointer: use + item_number_t. + * src/system.h (MINSHORT, MAXSHORT): Remove. + Include `limits.h'. + Adjust dependencies to using SHRT_MAX and SHRT_MIN. + (shortcpy): Remove. + (MAXTABLE): Move to... + * src/output.c (MAXTABLE): here. + (prepare_rules): Use output_int_table to output rhs. + * data/bison.simple, data/bison.c++: Adjust. + * tests/torture.at (Big triangle): Move the limit from 254 to + 500. + * tests/regression.at (Web2c Actions): Ajust. + + Trying with bigger grammars shows various phenomena: at 3000 (28Mb + of grammar file) bison is killed by my system, at 2000 (12Mb) bison + passes, but produces negative #line number, once fixed, GCC is + killed while compiling 14Mb, at 1500 (6.7 Mb of grammar, 8.2Mb of + C), it passes. + * src/state.h (state_h): Code input lines on ints, not shorts. + +2002-04-08 Akim Demaille + + * src/reduce.c (reduce_grammar): First reduce the nonterminals, + and then the grammar. + +2002-04-08 Akim Demaille + + * src/system.h: No longer using strndup. + +2002-04-07 Akim Demaille + + * src/muscle_tab.h (MUSCLE_INSERT_LONG_INT): New. + * src/output.c (output_table_data): Return the longest number. + (prepare_tokens): Output `token_number_max'). + * data/bison.simple, data/bison.c++ (b4_sint_type, b4_uint_type): + New. + Use them to define yy_token_number_type/TokenNumberType. + Use this type for yytranslate. + * tests/torture.at (Big triangle): Push the limit from 124 to + 253. + * tests/regression.at (Web2c Actions): Adjust. + +2002-04-07 Akim Demaille + + * tests/torture.at (Big triangle): New. + (GNU AWK Grammar, GNU Cim Grammar): Move to... + * tests/existing.at: here. + +2002-04-07 Akim Demaille + + * src/gram.h, src/gram.c (nitems): Remove, it is an alias of + nritems. + Adjust dependencies. + +2002-04-07 Akim Demaille + + * src/reader.c: Normalize increments to prefix form. + +2002-04-07 Akim Demaille + + * src/reader.c, symtab.c: Remove debugging code. + +2002-04-07 Akim Demaille + + Rename all the `bucket's as `symbol_t'. + + * src/gram.c, src/gram.h, src/lex.c, src/lex.h, src/output.c, + * src/reader.c, src/reader.h, src/reduce.c, src/state.h, + * src/symtab.c, src/symtab.h (bucket): Rename as... + (symbol_t): this. + (symbol_list_new, bucket_check_defined, bucket_make_alias) + (bucket_check_alias_consistence, bucket_pack, bucket_translation) + (bucket_new, bucket_free, hash_compare_bucket, hash_bucket) + (buckets_new, buckets_free, buckets_do): Rename as... + (symbol_list_new, symbol_check_defined, symbol_make_alias) + (symbol_check_alias_consistence, symbol_pack, symbol_translation) + (symbol_new, symbol_free, hash_compare_symbol_t, hash_symbol_t) + (symbols_new, symbols_free, symbols_do): these. + +2002-04-07 Akim Demaille + + Use lib/hash for the symbol table. + + * src/gram.c (ntokens): Initialize to 1, to reserve a slot for + EOF. + * src/lex.c (lex): Set the `number' member of new terminals. + * src/reader.c (bucket_check_defined, bucket_make_alias) + (bucket_check_alias_consistence, bucket_translation): New. + (reader, grammar_free, readgram, token_translations_init) + (packsymbols): Adjust. + (reader): Number the predefined tokens. + * src/reduce.c (inaccessable_symbols): Just use hard coded numbers + for predefined tokens. + * src/symtab.h (bucket): Remove all the hash table related + members. + * src/symtab.c (symtab): Replace by... + (bucket_table): this. + (bucket_new, bucket_free, hash_compare_bucket, hash_bucket) + (buckets_new, buckets_do): New. + +2002-04-07 Akim Demaille + + * src/gram.c (nitems, nrules, nsyms, ntokens, nvars, nritems) + (start_symbol, max_user_token_number, semantic_parser) + (error_token_number): Initialize. + * src/reader.c (grammar, start_flag, startval, typed, lastprec): + Initialize. + (reader): Don't. + (errtoken, eoftoken, undeftoken, axiom): Extern. + +2002-04-07 Akim Demaille + + * src/gram.h (rule_s): prec and precsym are now pointers + to the bucket giving the priority/associativity. + Member `associativity' removed: useless. + * src/reduce.c, src/conflicts.c: Adjust. + +2002-04-07 Akim Demaille + + * src/lalr.c, src/LR0.c, src/closure.c, src/gram.c, src/reduce.c: + Properly escape the symbols' TAG when outputting them. + +2002-04-07 Akim Demaille + + * src/lalr.h (LA): Is a bitsetv, not bitset*. + +2002-04-07 Akim Demaille + + * src/lalr.h, src/lalr.c (LAruleno): Replace with... + (LArule): this, which is an array to rule_t*. + * src/print.c, src/conflicts.c: Adjust. + +2002-04-07 Akim Demaille + + * src/gram.h (rule_t): Rename `number' as `user_number'. + `number' is a new member. + Adjust dependencies. + * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number. + +2002-04-07 Akim Demaille + + As a result of the previous patch, it is no longer needed + to reorder ritem itself. + + * src/reduce.c (reduce_grammar_tables): Don't sort RITEM. + +2002-04-07 Akim Demaille + + Be sure never to walk through RITEMS, but use only data related to + the rules themselves. RITEMS should be banished. + + * src/output.c (output_token_translations): Rename as... + (prepare_tokens): this. + In addition to `translate', prepare the muscles `tname' and + `toknum', which were handled by... + (output_rule_data): this. + Remove, and move the remainder of its outputs into... + (prepare_rules): this new routines, which also merges content from + (output_gram): this. + (prepare_rules): Be sure never to walk through RITEMS. + (output_stos): Rename as... + (prepare_stos): this. + (output): Always invoke prepare_states, after all, just don't use it + in the output if you don't need it. + +2002-04-07 Akim Demaille + + * src/LR0.c (new_state): Display `nstates' as the name of the + newly created state. + Adjust to initialize first_state and last_state if needed. + Be sure to distinguish the initial from the final state. + (new_states): Create the itemset of the initial state, and use + new_state. + * src/closure.c (closure): Now that the initial state has its + items properly set, there is no need for a special case when + creating `ruleset'. + + As a result, now the rule 0, reducing to $axiom, is visible in the + outputs. Adjust the test suite. + + * tests/conflicts.at (Solved SR Conflicts) + (Unresolved SR Conflicts): Adjust. + * tests/regression.at (Web2c Report, Rule Line Numbers): Idem. + * tests/conflicts.at (S/R in initial): New. + +2002-04-07 Akim Demaille + + * src/LR0.c (allocate_itemsets): Don't loop over ritem: loop over + the RHS of the rules. + * src/output.c (output_gram): Likewise. + +2002-04-07 Akim Demaille + + * src/gram.h (rule_t): `lhs' is now a pointer to the symbol's + bucket. + Adjust all dependencies. + * src/reduce.c (nonterminals_reduce): Don't forget to renumber the + `number' of the buckets too. + * src/gram.h: Include `symtab.h'. + (associativity): Move to... + * src/symtab.h: here. + No longer include `gram.h'. + +2002-04-07 Akim Demaille + + * src/gram.h, src/gram.c (rules_rhs_length): New. + (ritem_longest_rhs): Use it. + * src/gram.h (rule_t): `number' is a new member. + * src/reader.c (packgram): Set it. + * src/reduce.c (reduce_grammar_tables): Move the useless rules at + the end of `rules', and count them out of `nrules'. + (reduce_output, dump_grammar): Adjust. + * src/print.c (print_grammar): It is no longer needed to check for + the usefulness of a rule, as useless rules are beyond `nrules + 1'. + * tests/reduce.at (Reduced Automaton): New test. + +2002-04-07 Akim Demaille + + * src/reduce.c (inaccessable_symbols): Fix a buglet: because of a + lacking `+ 1' to nrules, Bison reported as useless a token if it + was used solely to set the precedence of the last rule... + +2002-04-07 Akim Demaille + + * data/bison.c++, data/bison.simple: Don't output the current file + name in #line, to avoid useless diffs between two identical + outputs under different names. + +2002-04-07 Akim Demaille + + * src/closure.c, src/print.c, src/reader.c, src/reduce.c: + Normalize loops to using `< nrules + 1', not `<= nrules'. + +2002-04-07 Akim Demaille + + * TODO: Update. + +2002-04-07 Akim Demaille + + * src/output.c, src/reader.c, src/symtab.c, src/symtab.h: Rename + bucket.value as bucket.number. + +2002-04-07 Akim Demaille + + * src/closure.c, src/derives.c, src/gram.h, src/lalr.c, + * src/nullable.c, src/output.c, src/print.c, src/print_graph.c, + * src/reader.c, src/reduce.c: Let rule_t.rhs point directly to the + RHS, instead of being an index in RITEMS. + +2002-04-04 Paul Eggert + + * doc/bison.texinfo: Update copyright date. + (Rpcalc Lexer, Symbols, Token Decl): Don't assume ASCII. + (Symbols): Warn about running Bison in one character set, + but compiling and/or running in an incompatible one. + Warn about character code 256, too. + +2002-04-03 Paul Eggert + + * src/bison.data (YYSTACK_ALLOC): Depend on whether + YYERROR_VERBOSE is nonzero, not whether it is defined. + + Merge changes from bison-1_29-branch. + +2002-03-20 Paul Eggert + + Merge fixes from Debian bison_1.34-1.diff. + + * configure.in (AC_PREREQ): 2.53. + +2002-03-20 Akim Demaille + + * src/conflicts.c (log_resolution): Argument `resolution' is const. + +2002-03-19 Paul Eggert + + * src/bison.simple (YYCOPY): New macro. + (YYSTACK_RELOCATE): Use it. + Remove Type arg; no longer needed. All callers changed. + (yymemcpy): Remove; no longer needed. + + * Makefile.am (AUTOMAKE_OPTIONS): 1.6. + * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove. + +2002-03-19 Akim Demaille + + Test and fix the #line outputs. + + * tests/atlocal.at (GCC): New. + * tests/synclines.at (AT_TEST_SYNCLINE): New macro. + (Prologue synch line, ,%union synch line, Postprologue synch line) + (Action synch line, Epilogue synch line): New tests. + * src/reader.c (parse_union_decl): Define the muscle stype_line. + * data/bison.simple, data/bison.c++: Use it. + +2002-03-19 Akim Demaille + + * tests/regression.at (%nonassoc and eof, Unresolved SR Conflicts) + (Solved SR Conflicts, %expect not enough, %expect right) + (%expect too much): Move to... + * tests/conflicts.at: this new file. + +2002-03-19 Akim Demaille + + * data/m4sugar/m4sugar.m4: Update from CVS Autoconf. + * data/bison.simple, data/bison.c++: Handle the `#define' part, so + that we can move to enums for instance. + * src/output.c (token_definitions_output): Output a list of + `token-name, token-number' instead of the #define. + (output_skeleton): Name this list `b4_tokens', not `b4_tokendefs'. + +2002-03-14 Akim Demaille + + Use Gettext 0.11.1. + +2002-03-09 Robert Anisko + + * data/bison.c++: Make the user able to add members to the generated + parser by subclassing. + +2002-03-05 Robert Anisko + + * src/reader.c (read_additionnal_code): `c' should be an integer, not + a character. + Reported by Nicolas Tisserand and Nicolas Burrus. + +2002-03-04 Robert Anisko + + * src/reader.c: Warn about lacking semi-colons, do not complain. + +2002-03-04 Robert Anisko + + * data/bison.c++: Remove a debug line. + +2002-03-04 Robert Anisko + + * data/bison.c++: Unmerge value as yylval and value as yyval. Unmerge + location as yylloc and location as yyloc. Use YYLLOC_DEFAULT, and + provide a default implementation. + +2002-03-04 Akim Demaille + + * tests/input.at (Invalid $n, Invalid @n): Add the ending `;'. + * tests/output.at (AT_CHECK_OUTPUT): Likewise. + * tests/headers.at (AT_TEST_CPP_GUARD_H): Ditto. + * tests/semantic.at (Parsing Guards): Similarly. + * src/reader.at (readgram): Complain if the last rule is not ended + with a semi-colon. + +2002-03-04 Akim Demaille + + * src/warshall.h, src/warshall.c (bitmatrix_print): Move to... + * src/closure.c: here. + (set_firsts): Use bitsetv_reflexive_transitive_closure instead of + RTC. + * src/warshall.h, src/warshall.c: Remove. + * tests/sets.at (Broken Closure): Adjust. + +2002-03-04 Akim Demaille + + * src/output.c (output_skeleton): tempdir is const. + bytes_read is unused. + +2002-03-04 Akim Demaille + + * lib/bbitset.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c, + * lib/bitsetv.h, lib/ebitset.c, lib/lbitset.c, lib/sbitset.c: + Update. + From Michael Hayes. + +2002-03-04 Akim Demaille + + * src/closure.c (closure): `r' is unused. + +2002-03-04 Akim Demaille + + * tests/sets.at (Broken Closure): Add the ending `;'. + * src/reader.at (readgram): Complain if a rule is not ended with a + semi-colon. + +2002-03-04 Akim Demaille + + * src/conflicts.c (set_conflicts): Use bitset_disjoint_p. + (count_sr_conflicts): Use bitset_count. + * src/reduce.c (inaccessable_symbols): Ditto. + (bits_size): Remove. + * src/warshall.h, src/warshall.c: Convert to bitsetv. + +2002-03-04 Akim Demaille + + * src/closure.c, src/conflicts.c, src/lalr.c, src/print.c, + * src/reduce.c: Remove the `bitset_zero's following the + `bitset_create's, as now it is performed by the latter. + +2002-03-04 Akim Demaille + + * lib/bitset.c, lib/bitset.h, lib/bitsetv.c, lib/bitsetv.h, + * lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, lib/lbitset.h, + * lib/sbitset.c, lib/sbitset.h, lib/bbitset.h: Update from the + latest sources from Michael. + +2002-03-04 Akim Demaille + + * src/output.c (output): Don't free the grammar. + * src/reader.c (grammar_free): New. + * src/main.c (main): Call it and don't free symtab here. + +2002-03-04 Akim Demaille + + * src/lex.c (parse_percent_token): Be sure to 0-end token_buffer + before returning. + Reported by Benoit Perrot. + +2002-03-04 Akim Demaille + + Use bitset operations when possible, not loops over bits. + + * src/conflicts.c (set_conflicts, count_sr_conflicts): Use + bitset_or. + * src/print.c (print_reductions): Use bitset_and, bitset_andn. + * src/reduce.c (useless_nonterminals): Formatting changes. + * src/warshall.c (TC): Use bitset_or. + +2002-03-04 Akim Demaille + + * src/lalr.h, src/lalr.c (tokensetsize): Remove, unused. + * src/system.h (BITS_PER_WORD, WORDSIZE, SETBIT, RESETBIT, BITISSET): + Ditto. + +2002-03-04 Akim Demaille + + * src/lalr.c (F): Now a bitset*. + Adjust all dependencies. + +2002-03-04 Akim Demaille + + * src/conflicts.c (shiftset, lookaheadset): Now bitset. + Adjust all dependencies. + +2002-03-04 Akim Demaille + + * src/L0.c, src/LR0.h (nstates): Be size_t. + Adjust comparisons (signed vs unsigned). + * src/conflics.c, src/lalr.c, src/lalr.h, src/output.c (LA): Now a + bitset*. + Adjust all dependencies. + +2002-03-04 Akim Demaille + + * src/closure.c (firsts): Now, also a bitset. + Adjust all dependencies. + (varsetsize): Remove, now unused. + * src/warshall.h, src/warshall.c: Now work on arrays of bitsets. + +2002-03-04 Akim Demaille + + * src/print.c: Convert to use bitset.h, not hand coded iterations + over ints. + +2002-03-04 Akim Demaille + + * src/reduce.c: Convert to use bitset.h, not hand coded BSet. + +2002-03-04 Akim Demaille + + * src/closure.c (ruleset): Be a bitset. + (rulesetsize): Remove. + +2002-03-04 Akim Demaille + + * lib/bitset-int.h, lib/bitset.c, lib/bitset.h, lib/bitsetv.c, + * lib/bitsetv.h, lib/ebitset.c, lib/ebitset.h, lib/lbitset.c, + * lib/lbitset.h, lib/sbitset.c, lib/sbitset.h: New. + * src/closure.c (fderives): Be an array of bitsets. + +2002-02-28 Robert Anisko + + * data/bison.c++: Merge the two generated headers. Insert a copyright + notice in each output file. + +2002-02-28 Akim Demaille + + * data/bison.c++: Copy the prologue of bison.simple to fetch + useful M4 definitions, such as b4_header_guard. + +2002-02-25 Akim Demaille + + * src/getargs.c (version): Give the name of the authors, and use a + translator friendly scheme for the bgr + copyright notice. + +2002-02-25 Akim Demaille + + * src/output.c (header_output): Remove, now handled completely via + M4. + +2002-02-25 Akim Demaille + + * m4/m4.m4: New, from CVS Autoconf. + * configure.in: Invoke it. + * src/output.c (output_skeleton): Use its result instead of the + hard coded name. + +2002-02-25 Akim Demaille + + * lib/tempname.c, lib/mkstemp.c, m4/mkstemp.m4: New, stolen from + Fileutils 4.1.5. + * configure.in: Invoke UTILS_FUNC_MKSTEMP. + * src/output.c (output_skeleton): Use mkstemp to create a real + temporary file. + Move the filling of `skeleton' and its muscle to... + (prepare): here. + (output): Move the definition of the prologue muscle to... + (prepare): here. + * src/system.h (DEFAULT_TMPDIR): New. + +2002-02-14 Paul Eggert + + Remove the support for C++ namespace cleanliness; it was + causing more problems than it was curing, since it didn't work + properly on some nonstandard C++ compilers. This can wait + for a proper C++ parser. + + * NEWS: Document this. + * doc/bison.texinfo (Bison Parser, Debugging): Remove special mention + of C++, as it's treated like C now. + * src/bison.simple (YYSTD): Remove. + (YYSIZE_T, YYFPRINTF, YYPARSE_PARAM_ARG, YYPARSE_PARAM_DECL): + Treat C++ just like Standard C instead of trying to support + namespace cleanliness. + +2002-02-14 Akim Demaille + + * tests/regression.at (else): Adjust to Andreas' change. + +2002-02-14 Akim Demaille + + * lib/Makefile.am (EXTRA_DIST): Ship strnlen.c. + +2002-02-13 Andreas Schwab + + * src/output.c (output_rule_data): Don't output NULL, it might + not be defined yet. + +2002-02-11 Robert Anisko + + * data/bison.c++ (YYDEBUG, YYERROR_VERBOSE): After the prologue. + (Copyright notice): Update. + +2002-02-11 Akim Demaille + + * tests/regression.at (%nonassoc and eof): Don't include + nonportable headers. + +2002-02-08 Robert Anisko + + * data/bison.c++: Correct error recovery. Make the user able to + initialize the starting location. + +2002-02-07 Akim Demaille + + * tests/input.at: New. + +2002-02-07 Robert Anisko + + * data/bison.c++: Replace some direct m4 expansions by constants. Be + more consistent when naming methods and variables. Put preprocessor + directives around tables only needed for debugging. + +2002-02-07 Robert Anisko + + * data/bison.c++ (yy::b4_name::print_): New method, replaces yyprint in + C++ parsers. + (yy::b4_name::parse): Use print_. + +2002-02-07 Robert Anisko + + * data/bison.c++ (yy::b4_name::parse): Error recovery is back. + +2002-02-07 Robert Anisko + + * data/bison.c++ (yy::b4_name::error_): New method, replaces yyerror in + C++ parsers. + (yy::b4_name::parse): Build verbose error messages, and use error_. + +2002-02-06 Robert Anisko + + * data/bison.c++: Fix m4 quoting in comments. + +2002-02-06 Robert Anisko + + * data/bison.c++: Adjust the parser code. Fix some muscles that were + not expanded by m4. + +2002-02-05 Akim Demaille + + * data/bison.c++: Adjust to the M4 back end. + More is certainly needed. + +2002-02-05 Akim Demaille + + Give a try to M4 as a back end. + + * lib/readpipe.c: New, from wdiff. + * src/Makefile.am (DEFS): Define PKGDATADIR, not BISON_SIMPLE and + BISON_HAIRY. + * src/system.h (BISON_HAIRY, BISON_SIMPLE): Remove the DOS and VMS + specific values. Now it is m4 that performs the lookup. + * src/parse-skel.y: Remove. + * src/muscle_tab.c, src/muscle_tab.h (muscles_m4_output): New. + * src/output.c (actions_output, guards_output) + (token_definitions_output): No longer keeps track of the output + line number, hence remove the second argument. + (guards_output): Check against the guard member of a rule, not the + action member. + Adjust callers. + (output_skeleton): Don't look for the skeleton location, let m4 do + that. + Create `/tmp/muscles.m4'. This is temporary, a proper temporary + file will be used. + Invoke `m4' on m4sugar.m4, muscles.m4, and the skeleton. + (prepare): Given that for the time being changesyntax is not + usable in M4, rename the muscles using `-' to `_'. + Define `defines_flag', `output_parser_name' and `output_header_name'. + * src/output.h (actions_output, guards_output) + (token_definitions_output): Adjust prototypes. + * src/scan-skel.l: Instead of scanning the skeletons, it now + processes the output of m4: `__oline__' and `#output'. + * data/bison.simple: Adjust to be used by M4(sugar). + * tests/Makefile.am: Use check_SCRIPTS to make sure `bison' is up + to date. + * tests/bison.in: Use the secrete envvar `BISON_PKGDATADIR' + instead of the dead `BISON_SIMPLE' and `BISON_HAIRY'. + * data/m4sugar/m4sugar.m4, data/m4sugar/version.m4: New, + shamelessly stolen from CVS Autoconf. + +2002-02-05 Akim Demaille + + * lib/hash.c, lib/hash.h: Replace with Fileutils 4.1's version. + * configure.in: Check for the declarations of free and malloc. + * src/muscle_tab.c: Adjust. + +2002-02-05 Akim Demaille + + * src/muscle_tab.c (muscle_init): Don't default to NULL muscle + which have no values. + +2002-02-05 Akim Demaille + + * src/bison.simple, src/bison.hairy, src/bison.c++: Move to... + * data/: here. + +2002-01-29 Paul Eggert + + * src/bison.simple (YYSIZE_T): Do not define merely because + YYSTACK_USE_ALLOCA is nonzero or alloca or _ALLOCA_H are defined. + On some platforms, does not declare YYSTD (size_t). + +2002-01-27 Akim Demaille + + Fix `%nonassoc and eof'. + + * src/state.c (errs_dup): Aaaah! The failure was due to bytes + which were not properly copied! Replace + memcpy (res->errs, src->errs, src->nerrs); + with + memcpy (res->errs, src->errs, src->nerrs * sizeof (src->errs[0])); + !!! + * tests/regression.at (%nonassoc and eof): Adjust to newest + Autotest: `.' is not in the PATH. + +2002-01-27 Akim Demaille + + * tests/sets.at (AT_EXTRACT_SETS): New. + (Nullable): Use it. + (Firsts): New. + +2002-01-26 Akim Demaille + + * tests/actions.at, tests/calc.at, tests/headers.at, + * tests/torture.at: Adjust to the newest Autotest which no longer + forces `.' in the PATH. + +2002-01-25 Akim Demaille + + * tests/regression.at (%nonassoc and eof): New. + Suggested by Robert Anisko. + +2002-01-24 Akim Demaille + + Bison dumps core when trying to complain about broken input files. + Reported by Cris van Pelt. + + * src/lex.c (parse_percent_token): Be sure to set token_buffer. + * tests/regression.at (Invalid input: 1, Invalid input: 2): Merge + into... + (Invalid inputs): Strengthen: exercise parse_percent_token. + +2002-01-24 Robert Anisko + + * src/Makefile.am: Add bison.c++. + * src/bison.c++: New skeleton. + +2002-01-21 Paolo Bonzini + + * po/it.po: New. + +2002-01-21 Kees Zeelenberg + + * src/files.c (skeleton_find) [MSDOS]: Fix cp definition. + +2002-01-20 Marc Autret + + * src/files.c (compute_output_file_names): Fix + +2002-01-20 Marc Autret + + * tests/output.at: New test. + * src/files.c (compute_base_names): Don't map extensions when + the YACC flag is set, use defaults. + Reported by Evgeny Stambulchik. + +2002-01-20 Marc Autret + + * src/system.h: Need to define __attribute__ away for non-GCC + compilers as well (i.e. the vendor C compiler). + Suggested by Albert Chin-A-Young. + +2002-01-11 Tim Van Holder + + * lib/hash.h, lib/hash.c: Renamed __P to PARAMS and used the + canonical definition. + * src/system.h: Use the canonical definition for PARAMS (avoids + a conflict with the macro from lib/hash.h). + +2002-01-11 Akim Demaille + + * configure.in: Use AC_FUNC_STRNLEN. + Fixes the failures observed on AIX 4.3 by H.Merijn Brand. + +2002-01-09 Akim Demaille + + * src/files.c, src/files.h (output_infix): New. + (tab_extension): Remove. + (compute_base_names): Compute the former, drop the latter. + * src/output.c (prepare): Insert the muscles `output-infix', and + `output-suffix'. + * src/parse-skel.y (string, string.1): New. + (section.header): Use it. + (section.yacc): Remove. + (prefix): Remove too. + * src/scan-skel.l: Adjust. + * src/bison.simple, src/bison.hairy: Adjust. + +2002-01-09 Akim Demaille + + * configure.in (WERROR_CFLAGS): Compute it. + * src/Makefile.am (CFLAGS): Pass it. + * tests/atlocal.in (CFLAGS): Idem. + * src/files.c: Fix a few warnings. + (get_extension_index): Remove, unused. + +2002-01-08 Akim Demaille + + * src/getargs.c (AS_FILE_NAME): New. + (getargs): Use it to convert DOSish file names. + * src/files.c (base_name): Rename as full_base_name to avoid + clashes with `base_name ()'. + (filename_split): New. + (compute_base_names): N-th rewrite, using filename_split. + +2002-01-08 Akim Demaille + + * lib/basename.c, lib/dirname.h, lib/dirname.c, lib/memrchr.c: + New, stolen from the Fileutils 4.1. + * lib/Makefile.am (libbison_a_SOURCES): Adjust. + * configure.in: Check for the presence of memrchr, and of its + prototype. + +2002-01-07 Tim Van Holder + + * lib/hash.h (__P): Added definition for this macro. + * src/Makefile.am: Add parse-skel.c and scan-skel.c to + BUILT_SOURCES, to ensure they are generated first. + * src/parse-skel.y: Use YYERROR_VERBOSE instead of + %error-verbose to allow bootstrapping with bison 1.30x. + +2002-01-06 Akim Demaille + + * src/reader.c (parse_braces): Don't fetch the next char, the + convention is to fetch on entry. + * tests/torture.at (GNU Cim Grammar): Reintroduce their weird + 'switch' without a following semicolon. + * tests/regression.at (braces parsing): New. + +2002-01-06 Akim Demaille + + Bison is dead wrong in its RR conflict reports. + + * tests/torture.at (GNU Cim Grammar): New. + * src/conflicts.c (count_rr_conflicts): Fix. + +2002-01-06 Akim Demaille + + Creating package.m4 from configure.ac causes too many problems. + + * tests/Makefile.am (package.m4): Create it by hand, + AC_CONFIG_TESTDIR no longer does in the most recent CVS Autoconf. + +2002-01-06 Akim Demaille + + * src/Makefile.am (bison_SOURCES): Add parse-skel.h and + skeleton.h. + +2002-01-04 Paul Eggert + + * doc/bison.texinfo (Debugging): + Remove YYSTDERR; it's no longer defined or used. + Also, s/cstdio.h/cstdio/. + +2002-01-03 Akim Demaille + + * tests/bison.in, tests/atlocal.in: Adjust to CVS Autoconf. + +2002-01-03 Akim Demaille + + * src/parse-skel.y (process_skeleton): Don't bind the parser's + tracing code to --trace, wait for a better --trace option, with + args. + +2002-01-03 Akim Demaille + + * src/bison.simple (YYSTDERR): Remove, replace `stderr'. + The ISO C++ standard is extremely clear about it: stderr is + considered a macro, not a regular symbol (see table 94 `Header + synopsis', [lib.c.files] 27.8.2 C Library files). + Therefore std:: does not apply to it. It still does with fprintf. + Also, s/cstdio.h/cstdio/. + +2002-01-03 Akim Demaille + + * lib/quotearg.c: Use `#include "..."' instead of `#include <...>' + for non system headers. + +2002-01-02 Akim Demaille + + Equip the skeleton chain with location tracking, runtime trace, + pure parser and scanner. + + * src/parse-skel.y: Request a pure parser, locations, and prefix + renaming. + (%union): Having several members with the same type does not help + type mismatches, simplify. + (YYPRINT, yyprint): New. + (yyerror): ``Rename'' (there is a #define yyerror skel_error) as... + (skel_error): this. + Handle locations. + * src/scan-skel.l: Adjust to these changes. + * src/skeleton.h (LOCATION_RESET, LOCATION_LINES, LOCATION_STEP) + (LOCATION_PRINT, skel_control_t): New. + +2001-12-30 Akim Demaille + + * src/parse-skel.y: Get rid of the shift/reduce conflict: + replace `gb' with BLANKS. + * src/scan-skel.l: Adjust. + +2001-12-30 Akim Demaille + + * src/system.h: We don't need nor want bcopy. + Throw away MS-DOS crap: we don't need getpid. + * configure.in: We don't need strndup. It was even causing + problems: because Flex includes the headers *before* us, + _GNU_SOURCE is not defined by config.h, and therefore strndup was + not visible. + * lib/xstrndup.c: New. + * src/scan-skel.l: Use it. + Be sure to initialize yylval.muscle member when scanning a MUSCLE. + * src/parse-skel.y: Use %directives instead of #defines. + +2001-12-30 Akim Demaille + + * src/skeleton.h: New. + * src/output.c (output_parser, output_master_parser): Remove, dead + code. + * src/output.h (get_lines_number, actions_output, guards_output) + (token_definitions_output): Prototype them. + * src/parse-skel.y: Add the license notice. + Include output.h and skeleton.h. + (process_skeleton): Returns void, and takes a single parameter. + * src/scan-skel.l: Add the license notice. + Include skeleton.h. + Don't use %option yylineno: it seems that then Flex imagines + REJECT has been used, and therefore it won't reallocate its + buffers (which makes no other sense to me than a bug). It results + in warnings for `unused: yy_flex_realloc'. + +2001-12-30 Robert Anisko + + * src/muscle_tab.h (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING) + (MUSCLE_INSERT_PREFIX): ...to there. + * src/output.c (MUSCLE_INSERT_INT, MUSCLE_INSERT_STRING) + (MUSCLE_INSERT_PREFIX): Move from here... + + * src/bison.hairy: Add a section directive. Put braces around muscle + names. This parser skeleton is still broken, but Bison should not + choke on a bad muscle 'syntax'. + * src/bison.simple: Add a section directive. Put braces around muscle + names. + + * src/files.h (strsuffix, stringappend): Add declarations. + (tab_extension): Add declaration. + (short_base_name): Add declaration. + + * src/files.c (strsuffix, stringappend): No longer static. These + functions are used in the skeleton parser. + (tab_extension): New. + (compute_base_names): Use the computations done in this function + to guess if the generated parsers should have '.tab' in their + names. + (short_base_name): No longer static. + + * src/output.c (output_skeleton): New. + (output): Disable call to output_master_parser, and give a try to + a new skeleton handling system. + (guards_output, actions_output): No longer static. + (token_definitions_output, get_lines_number): No longer static. + + * configure.in: Use AM_PROG_LEX and AC_PROG_YACC. + + * src/Makefile.am (bison_SOURCES): Add scan-skel.l and + parse-skel.y. + + * src/parse-skel.y: New file. + * src/scan-skel.l: New file. + +2001-12-29 Akim Demaille + + %name-prefix is broken. + + * src/files.c (spec_name_prefix): Initialize to NULL, not to "yy". + Adjust all dependencies. + * tests/headers.at (export YYLTYPE): Strengthen this test: use + %name-prefix. + + Renaming yylval but not yylloc is not consistent. Now we do. + + * src/bison.simple: Prefix yylloc if used. + * doc/bison.texinfo (Decl Summary): Document that. + +2001-12-29 Akim Demaille + + * doc/bison.texinfo: Promote `%long-directive' over + `%long_directive'. + Remove all references to fixed-output-files, yacc is enough. + +2001-12-29 Akim Demaille + + * src/bison.simple: Define YYDEBUG and YYERROR_VERBOSE *after* the + user prologue. These are defaults. + * tests/actions.at (Mid-rule actions): Make sure the user can + define YYDEBUG and YYERROR_VERBOSE. + +2001-12-29 Akim Demaille + + * src/output.c (header_output): Don't forget to export YYLTYPE and + yylloc. + * tests/headers.at (export YYLTYPE): New, make sure it does. + * tests/regression.at (%union and --defines, Invalid CPP headers): + Move to... + * tests/headers.at: here. + +2001-12-29 Akim Demaille + + * src/gram.h (rule_s): Member `assoc' is of type `associativity'. + +2001-12-29 Akim Demaille + + * tests/actions.at (Mid-rule actions): Output on a single line + instead of several. + +2001-12-29 Akim Demaille + + * doc/bison.texinfo: Formatting changes. + +2001-12-29 Akim Demaille + + Don't store the token defs in a muscle, just be ready to output it + on command. Now possible via `symbols'. Fixes a memory leak. + + * src/output.c (token_definitions_output): New. + (output_parser, header_output): Use it. + * src/reader.c (symbols_save): Remove. + +2001-12-29 Akim Demaille + + * src/bison.simple: Do not provide a default for YYSTYPE and + YYLTYPE before the user's prologue. Otherwise it's hardly... a + default. + +2001-12-29 Akim Demaille + + Mid-rule actions are simply... ignored! + + * src/reader.c (readgram): Be sure to attach mid-rule actions to + the empty-rule associated to the dummy symbol, not to the host + rule. + * tests/actions.at (Mid-rule actions): New. + +2001-12-29 Akim Demaille + + Memory leak. + + * src/reader.c (reader): Free grammar. + +2001-12-29 Akim Demaille + + Memory leak. + + * src/LR0.c (new_itemsets): Don't allocate `shift_symbol' here, + since it allocates it for each state, although only one is needed. + (allocate_storage): Do it here. + +2001-12-29 Akim Demaille + + * src/options.h, src/options.c (create_long_option_table): Rename + as... + (long_option_table_new): this, with a clearer prototype. + (percent_table): Remove, unused, + * src/getargs.c (getargs): Adjust. + +2001-12-29 Akim Demaille + + * src/LR0.c, src/conflicts.c, src/lalr.c, src/lalr.h, src/output.c + * src/print.c, src/print_graph.c, src/state.h: Rename state_table + as states. + +2001-12-29 Akim Demaille + + * src/lalr.c (build_relations): Rename `states' as `states1'. + Sorry, I don't understand exactly what it is, no better name... + +2001-12-29 Akim Demaille + + * src/closure.c, src/conflicts.c, src/derives.c, src/gram.c + * src/gram.h, src/lalr.c, src/nullable.c, src/output.c, src/print.c + * src/print_graph.c, src/reader.c, src/reduce.c: Rename rule_table + as rules. + +2001-12-29 Akim Demaille + + * src/gram.c (rprec, rprecsym, rassoc): Remove, unused since long + ago. + +2001-12-29 Akim Demaille + + * src/reader.c, src/reader.h (user_toknums): Remove. + Adjust all users to use symbols[i]->user_token_number. + +2001-12-29 Akim Demaille + + * src/gram.c, src/gram.h (sprec, sassoc): Remove. + Adjust all users to use symbols[i]->prec or ->assoc. + +2001-12-29 Akim Demaille + + * src/reader.c, src/reader.h (tags): Remove. + Adjust all users to use symbols[i]->tag. + +2001-12-29 Akim Demaille + + * src/gram.h, src/gram.c (symbols): New, similar to state_table + and rule_table. + * src/reader.c (packsymbols): Fill this table. + Drop sprec. + * src/conflicts.c (resolve_sr_conflict): Adjust. + * src/reduce.c (reduce_grammar): Adjust: just sort symbols, a + single table. + Use symbols[i]->tag instead of tags[i]. + +2001-12-29 Akim Demaille + + * tests/calc.at (_AT_DATA_CALC_Y): Also use %union. + In addition, put a comment in there, to replace... + * tests/regression.at (%union and C comments): Remove. + +2001-12-29 Akim Demaille + + * tests/regression.at (Web2c Actions): Blindly move the actual + output as expected output. The contents *seem* right to me, but I + can't pretend reading perfectly parser tables... Nonetheless, all + the other tests pass correctly, the table look OK, even though the + presence of `$axiom' is to be noted: AFAICS it is useless (but + harmless). + +2001-12-29 Akim Demaille + + * src/reader.c (readgram): Don't add the rule 0 if there were no + rules read. In other words, add it _after_ having performed + grammar sanity checks. + Fixes the `tests/regression.at (Invalid input: 1)' Failure. + +2001-12-29 Akim Demaille + + * tests/regression.at (Web2c Report): Catch up: the rule 0 is now + visible, and some states have now a different number. + +2001-12-29 Akim Demaille + + * src/reader.c (readgram): Bind the initial rule's lineno to that + of the first rule. + * tests/regression.at (Rule Line Numbers, Unresolved SR Conflicts): + (Solved SR Conflicts): Adjust rule 0's line number. + +2001-12-29 Akim Demaille + + Fix the `GAWK Grammar' failure. + + * src/LR0.c (final_state): Initialize to -1 so that we do compute + the reductions of the first state which was mistakenly confused + with the final state because precisely final_state was initialized + to 0. + * tests/sets.at (Nullable): Adjust: state 0 does have lookaheads, + now noticed by Bison. + * tests/regression.at (Rule Line Numbers): Adjust: state 0 does + have a reduction on $default. + +2001-12-29 Akim Demaille + + * src/gram.c (ritem_print): Be sure to subtract 1 when displaying + rule line numbers. + * src/closure.c (print_closure): Likewise. + * src/derives.c (print_derives): Likewise. + * tests/sets.at (Nullable): Adjust: the rule numbers are correct + now. + +2001-12-29 Akim Demaille + + * src/lalr.c (lookaheads_print): New. + (lalr): Call it when --trace-flag. + * tests/sets.at (Nullable): Adjust: when tracing, the lookaheads + are dumped. + +2001-12-29 Akim Demaille + + * src/derives.c (print_derives): Be sure to use `>= 0', not `> 0', + when walking through ritem, even via rule->rhs. + * src/reduce.c (dump_grammar, useful_production, reduce_output) + (useful_production, useless_nonterminals): Likewise. + (reduce_grammar_tables): Likewise, plus update nritems. + * src/nullable.c (set_nullable): Likewise. + * src/lalr.c (build_relations): Likewise. + * tests/sets.at (Nullable): Adjust. + Fortunately, now, the $axiom is no longer nullable. + +2001-12-29 Akim Demaille + + * src/LR0.c (generate_states): Use nritems, not nitems, nor using + the 0-sentinel. + * src/gram.c (ritem_longest_rhs): Likewise. + * src/reduce.c (nonterminals_reduce): Likewise. + * src/print_graph.c (print_graph): Likewise. + * src/output.c (output_rule_data): Likewise. + * src/nullable.c (set_nullable): Likewise. + +2001-12-29 Akim Demaille + + * src/output.c: Comment changes. + +2001-12-27 Paul Eggert + + * src/bison.simple (YYSTACK_ALLOC, YYSIZE_T): Remove special + cases for non-GNU systems like AIX, HP-UX, SGI, Sun, and + Sparc, as they were causing more porting problems than the + (minor) performance improvement was worth. + + Also, catch up with 1.31's YYSTD. + +2001-12-27 Akim Demaille + + * src/output.c (output_gram): Rely on nritems, not the + 0-sentinel. See below. + Use -1 as separator, not 0. + * src/bison.simple (yyparse): Subtract 1 to the rule numbers. + Rely on -1 as separator in yyrhs, instead of 0. + * tests/calc.at (AT_CHECK_CALC): Now, the parsers no longer issue + twice `Now at end of input', therefore there are two lines less to + expect. + +2001-12-27 Akim Demaille + + * tests/regression.at (Unresolved SR Conflicts): + (Solved SR Conflicts, Rule Line Numbers): Adjust to the changes + below. + +2001-12-27 Akim Demaille + + * src/LR0.c (new_state): Recognize the final state by the fact it + is reached by eoftoken. + (insert_start_shifting_state, insert_eof_shifting_state) + (insert_accepting_state, augment_automaton): Remove, since now + these states are automatically computed from the initial state. + (generate_states): Adjust. + * src/print.c: When reporting a rule number to the user, substract + 1, so that the axiom rule is rule 0, and the first user rule is 1. + * src/reduce.c: Likewise. + * src/print_graph.c (print_core): For the time being, just as for + the report, depend upon --trace-flags to dump the full set of + items. + * src/reader.c (readgram): Once the grammar read, insert the rule + 0: `$axiom: START-SYMBOL $'. + * tests/set.at: Adjust: rule 0 is now displayed, and since the + number of the states has changed (the final state is no longer + necessarily the last), catch up. + +2001-12-27 Akim Demaille + + Try to make the use of the eoftoken valid. Given that its value + is 0 which was also used as a sentinel in ritem, (i) make sure >= 0 + is used instead of > 0 where appropriate, (ii), depend upon nritems + instead of the 0-sentinel. + + * src/gram.h, src/gram.c (nritems): New. + Expected to be duplication of nitems, but for the time being... + * src/reader.c (packgram): Assert nritems and nitems are equal. + * src/LR0.c (allocate_itemsets, new_itemsets): Adjust. + * src/closure.c (print_closure, print_fderives): Likewise. + * src/gram.c (ritem_print): Likewise. + * src/print.c (print_core, print_grammar): Likewise. + * src/print_graph.c: Likewise. + +2001-12-27 Akim Demaille + + * src/main.c (main): If there are complains after grammar + reductions, then output the report anyway if requested, then die. + * src/symtab.c (bucket_new): Initialize `value' to -1, not 0. + * src/reader.c (eoftoken): New. + (parse_token_decl): If the token being defined has value `0', it + is the eoftoken. + (packsymbols): No longer hack `tags' to insert `$' by hand. + Be sure to preserve the value of the eoftoken. + (reader): Make sure eoftoken is defined. + Initialize nsyms to 0: now eoftoken is created just like the others. + * src/print.c (print_grammar): Don't special case the eof token. + * src/regression.at: Adjust: `$' has value 0, not -1, which was a + lie anyway, albeit pleasant. + * tests/calc.at: Exercise error messages with eoftoken. + Change the grammar so that empty input is invalid. + Adjust expectations. + When yyungeting, be sure to use a valid yylloc: use last_yylloc. + +2001-12-27 Akim Demaille + + * configure.in: Check the protos of strchr ans strspn. + Replace strchr if needed. + * src/system.h: Provide the protos of strchr, strspn and memchr if + missing. + * lib/strchr.c: New. + * src/reader.c (symbols_save): Use strchr. + +2001-12-27 Akim Demaille + + * src/print.c, src/print_graph.c (escape): New. + Use it to quote the TAGS outputs. + * src/print_graph.c (print_state): Now errors are in red, and + reductions in green. + Prefer high to wide: output the state number on a line of its own. + +2001-12-27 Akim Demaille + + * src/state.h, src/state.c (reductions_new): New. + * src/LR0.c (set_state_table): Let all the states have a + `reductions', even if reduced to 0. + (save_reductions): Adjust. + * src/lalr.c (initialize_LA, initialize_lookaheads): Adjust. + * src/print.c (print_reductions, print_actions): Adjust. + * src/output.c (action_row): Adjust. + +2001-12-27 Akim Demaille + + * src/state.h, src/state.c (errs_new, errs_dup): New. + * src/LR0.c (set_state_table): Let all the states have an errs, + even if reduced to 0. + * src/print.c (print_errs, print_reductions): Adjust. + * src/output.c (output_actions, action_row): Adjust. + * src/conflicts.c (resolve_sr_conflict): Adjust. + +2001-12-27 Akim Demaille + + * src/lalr.c (set_goto_map, initialize_F): Use SHIFT_SYMBOL. + +2001-12-27 Akim Demaille + + * src/conflicts.c, src/conflicts.h (print_reductions): Move to... + * src/print.c: here. + (lookaheadset, shiftset): New, used as additional storage by + print_reductions. + (print_results): Adjust. + (print_shifts, print_gotos, print_errs): New, extracted from... + (print_actions): here. + * src/print_graph.c (print_actions): Remove dead code. + +2001-12-27 Akim Demaille + + * src/reader.c (copy_dollar, copy_at): Better checking of `n' in + `$n' and `@n'. + +2001-12-27 Akim Demaille + + * src/lalr.c (add_lookback_edge): Use state_t instead of ints. + (build_relations): Adjust. + +2001-12-27 Akim Demaille + + * src/lalr.c (set_goto_map): Remove a wrong but benign loop + duplication. + +2001-12-27 Akim Demaille + + * src/reader.c (packgram): Catch nitems overflows. + +2001-12-27 Akim Demaille + + * src/files.c, src/files.h (guard_obstack): Remove. + * src/output.c (output): Adjust. + * src/reader.c (parse_braces): New, factoring... + (copy_action, copy_guard): these two which are renamed as... + (parse_action, parse_guard): these. + As a voluntary consequence, using braces around guards is now + mandatory. + +2001-12-27 Akim Demaille + + * src/gram.h (rule_t): `guard' and `guard_line' are new members. + * src/reader.c (symbol_list): `guard' and `guard_line' are new + members. + (symbol_list_new): Adjust. + (copy_action): action_line is the first line, not the last. + (copy_guard): Just as for actions, store the `action' only, not + the switch/case/break flesh. + Don't parse the user action that might follow the guard, let... + (readgram): do it, i.e., now, there can be an action after a + guard. + In other words the guard is just explicitly optional. + (packgram): Adjust. + * src/output.c (guards_output): New. + (output_parser): Call it when needed. + (output): Also free the guard and attrs obstacks. + * src/files.c, src/files.h (obstack_save): Remove. + (output_files): Remove. + As a result, if one needs the former `.act' file, using an + appropriate skeleton which requires actions and guards is now + required. + * src/main.c (main): Adjust. + * tests/semantic.at: New. + * tests/regression.at: Use `input.y' as input file name. + Avoid 8+3 problems by requiring input.c when the test needs the + parser. + +2001-12-27 Akim Demaille + + * src/reader.c (symbol_list_new): Be sure to initialize all the + fields. + +2001-12-27 Akim Demaille + + All the hacks using a final pseudo state are now useless. + + * src/LR0.c (set_state_table): state_table holds exactly nstates. + * src/lalr.c (nLA): New. + (initialize_LA, compute_lookaheads, initialize_lookaheads): Use it + instead of lookaheadsp from the pseudo state (nstate + 1). + +2001-12-27 Akim Demaille + + * src/output.c (action_row, token_actions): Use a state_t instead + of a integer, and nlookaheads instead of the following state's + lookaheadsp. + +2001-12-27 Akim Demaille + + * src/conflicts.c (log_resolution, flush_shift) + (resolve_sr_conflict, set_conflicts, solve_conflicts) + (count_sr_conflicts, count_rr_conflicts, conflicts_output) + (conflicts_print, print_reductions): Use a state_t instead of an + integer when referring to a state. + As much as possible, depend upon nlookaheads, instead of the + `lookaheadsp' member of the following state (since lookaheads of + successive states are successive, the difference between state n + 1 + and n served as the number of lookaheads for state n). + * src/lalr.c (add_lookback_edge): Likewise. + * src/print.c (print_core, print_actions, print_state) + (print_results): Likewise. + * src/print_graph.c (print_core, print_actions, print_state) + (print_graph): Likewise. + * src/conflicts.h: Adjust. + +2001-12-27 Akim Demaille + + * src/bison.hairy: Formatting/comment changes. + ANSIfy. + Remove `register' indications. + Add plenty of `static'. + +2001-12-27 Akim Demaille + + * src/output.c (prepare): Drop the muscle `ntbase' which + duplicates ntokens. + * src/bison.simple: Formatting/comment changes. + Use YYNTOKENS only, which is documented, but not YYNTBASE, which + is an undocumented synonym. + +2001-12-22 Akim Demaille + + * src/output.c (output_table_data): Change the prototype to use + `int' for array ranges: some invocations do pass an int, not a + short. + Reported by Wayne Green. + +2001-12-22 Akim Demaille + + Some actions of web2c.y are improperly triggered. + Reported by Mike Castle. + + * src/lalr.c (traverse): s/F (i)[k] = F (j)[k]/F (j)[k] = F (i)[k]/. + * tests/regression.at (Web2c): Rename as... + (Web2c Report): this. + (Web2c Actions): New. + +2001-12-22 Akim Demaille + + Reductions in web2c.y are improperly reported. + Reported by Mike Castle. + + * src/conflicts.c (print_reductions): Fix. + * tests/regression.at (Web2c): New. + +2001-12-18 Akim Demaille + + Some host fail on `assert (!"foo")', which expands to + ((!"foo") ? (void)0 : __assert("!"foo."", __FILE__, __LINE__)) + Reported by Nelson Beebee. + + * src/output.c, src/vcg.c: Replace `assert (!"it succeeded")' with + `#define it_succeeded 0' and `assert (it_succeeded)'. + +2001-12-17 Marc Autret + + * src/bison.simple: Don't hard code the skeleton line and filename. + * src/output.c (output_parser): Rename 'line' as 'output_line'. + New line counter 'skeleton_line' (skeleton-line muscle). + +2001-12-17 Paul Eggert + + * NEWS, doc/bison.texinfo, doc/bison.1, doc/bison.rnh: Document that + YYDEBUG must be defined to a nonzero value. + + * src/bison.simple (yytname): Do not assume that the user defines + YYDEBUG to a properly parenthesized expression. + +2001-12-17 Akim Demaille + + * src/state.h (state_t): Rename lookaheads as lookaheadsp. + nlookaheads is a new member. + Adjust all users. + * src/lalr.h (nlookaheads): Remove this orphan declaration. + * src/lalr.c (initialize_lookaheads): Set nlookaheads for each + state. + +2001-12-17 Akim Demaille + + * src/files.h, src/files.c (open_files, close_files): Remove. + * src/main.c (main): Don't open/close files, nor invoke lex_free, + let... + * src/reader.c (reader): Do it. + +2001-12-17 Akim Demaille + + * src/conflicts.c (print_reductions): Formatting changes. + +2001-12-17 Akim Demaille + + * src/conflicts.c (flush_shift): Also adjust lookaheadset. + (flush_reduce): New. + (resolve_sr_conflict): Adjust. + +2001-12-17 Akim Demaille + + * src/output.c (output_obstack): Be static and rename as... + (format_obstack): this, to avoid any confusion with files.c's + output_obstack. + * src/reader.h (muscle_obstack): Move to... + * src/output.h: here, since it's defined in output.c. + +2001-12-17 Akim Demaille + + * src/output.c (action_row, save_column, default_goto) + (sort_actions, matching_state, pack_vector): Better variable + locality. + +2001-12-17 Akim Demaille + + * src/output.c: Various formatting changes. + +2001-12-17 Akim Demaille + + * src/files.c (output_files): Free the output_obstack. + * src/main.c (main): Call print and print_graph conditionally. + * src/print.c (print): Work unconditionally. + * src/print_graph.c (print_graph): Work unconditionally. + * src/conflicts.c (log_resolution): Output only if verbose_flag. + +2001-12-16 Marc Autret + + * src/output.c (actions_output): Fix. When we use %no-lines, + there is one less line per action. + +2001-12-16 Marc Autret + + * src/bison.simple: Remove a useless #line directive. + s/#line %%line %%skeleton/#line %%line "%%parser-file-name"/'. + * src/output.c (get_lines_number): New. + (output_parser): Adjust, now takes care about the lines of a + output muscles. + Fix line numbering. + (actions_output): Computes the number of lines taken by actions. + (output_master_parser): Insert new skeleton which is the name of + the output parser file name. + +2001-12-15 Marc Autret + + * src/bison.simple [YYERROR_VERBOSE]: Restore backward compatibility. + +2001-12-15 Marc Autret + + * src/output.c (output_gram): Keep track of the hairy one. + +2001-12-15 Akim Demaille + + Make `make distcheck' work. + + * lib/Makefile.am (INCLUDES): Add top_srcdir/intl, since hash uses + system.h which uses libgettext.h. + +2001-12-15 Akim Demaille + + * src/nullable.c (set_nullable): Useless rules must be skipped, + otherwise, since we range over their symbols, we might look at a + nonterminal which no longer ``exists'', i.e., it is not counted in + `nvars', hence we overflow our arrays. + +2001-12-15 Akim Demaille + + The header can also be produced directly, without any obstack! + Yahoo! + + * src/files.c, src/files.h (defines_obstack): Remove. + (compute_header_macro): Global. + (defines_obstack_save): Remove. + * src/reader.c (parse_union_decl): No longer output to + defines_obstack: its content can be found in the `stype' muscle + anyway. + (output_token_translations): Merge into... + (symbols_output): this. + Rename as... + (symbols_save): this. + (reader): Adjust. + * src/output.c (header_output): New. + (output): Call it. + +2001-12-15 Akim Demaille + + * src/reader.c (parse_union_decl): Instead of handling two obstack + simultaneously, use one to define the `stype' muscle, and use the + value of the latter to fill defines_obstack. + (copy_comment): Remove. + (copy_comment2): Work for a single obstack. + Rename as... + (copy_comment): this. + +2001-12-15 Akim Demaille + + * src/lex.c, src/lex.h (xgetc): No longer static. + * src/reader.c (parse_union_decl): Revamp. + +2001-12-15 Akim Demaille + + Still making progress in separating Bison into (i) input, (ii) + process, (iii) output: now we can directly output the parser file + without using table_obstack at all. + + * src/files.c, src/files.h (table_obstack): Bye bye. + (parser_file_name): New. + * src/files.c (compute_output_file_names): Compute it. + * src/output.c (actions_output, output_parser) + (output_master_parser): To a file instead of an obstack. + +2001-12-15 Akim Demaille + + Attach actions to rules, instead of pre-outputting them to + actions_obstack. + + * src/gram.h (rule_t): action and action_line are new members. + * src/reader.c (symbol_list): Likewise. + (copy_action): Save the actions within the rule. + (packgram): Save them in rule_table. + * src/output.c (actions_output): New. + (output_parser): Use it on `%%actions'. + (output_rule_data): Don't free rule_table. + (output): Do it. + (prepare): Don't save the `action' muscle. + * src/bison.simple: s/%%action/%%actions/. + +2001-12-15 Akim Demaille + + * src/reader.c (copy_action): When --yacc, don't append a `;' + to the user action: let it fail if lacking. + Suggested by Arnold Robbins and Tom Tromey. + +2001-12-14 Akim Demaille + + * src/lex.c (literalchar): Simply return the char you decoded, non + longer mess around with obstacks and int pointers. + Adjust all callers. + +2001-12-14 Akim Demaille + + * src/lex.c (literalchar): Don't escape the special characters, + just decode them, and keep them as char (before, eol was output as + the 2 char string `\n' etc.). + * src/output.c (output_rule_data): Use quotearg to output the + token strings. + +2001-12-13 Paul Eggert + + * src/bison.simple (YYSIZE_T, YYSTACK_ALLOC, YYSTACK_FREE): + Do not infringe on the global user namespace when using C++. + (YYFPRINTF, YYSTDERR): New macros, needed for the above. + All uses of `fprintf' and `stderr' changed. + + * doc/bison.texinfo: Document YYFPRINTF, YYSTDERR. + +2001-12-13 Akim Demaille + + The computation of nullable is broken: it doesn't handle empty + RHS's properly. + + * tests/torture.at (GNU AWK Grammar): New. + * tests/sets.at (Nullable): New. + * src/nullable.c (set_nullable): Instead of blindly looping over + `ritems', loop over the rules, and then over their rhs's. + + Work around Autotest bugs. + + * src/warshall.c (bitmatrix_print): Don't use `+--+' as table + frame, because Autotest understand lines starting with a `+' as + traces from the shell. Then, they are not processed properly. + Admittedly an Autotest bug, but we don't have time to wait for + Autotest to catch up. + * tests/regression.at (Broken Closure): Adjust to the new table + frames. + Move to... + * tests/sets.at: here. + +2001-12-13 Akim Demaille + + * src/closure.c (closure): Use nrules instead of playing tricks + with BITS_PER_WORD. + +2001-12-13 Akim Demaille + + * src/print.c (print_actions): Output the handling of `$' as the + traces do: shifting the token EOF. Before EOF was treated as a + nonterminal. + * tests/regression.at: Adjust some tests. + * src/print_graph.c (print_core): Complete the set of items via + closure. The next-to-final and final states are still unsatisfying, + but that's to be addressed elsewhere. + No longer output the rule numbers, but do output the state number. + A single loop for the shifts + gotos is enough, but picked a + distinct color for each. + (print_graph): Initialize and finalize closure. + +2001-12-13 Akim Demaille + + * src/reader.c (readgram): Remove dead code, an strip useless + braces. + (get_type): Remove, unused. + +2001-12-12 Akim Demaille + + * src/complain.h, src/complain.c: Remove error_one_per_line, rely + on that of lib/error.c. + +2001-12-12 Akim Demaille + + Some hosts don't like `/' in includes. + + * src/system.h: Include libgettext.h without qualifying the path. + * src/Makefile.am (INCLUDES): Add $(top_srcdir)/intl, remove + $(top_srcdir). + +2001-12-11 Marc Autret + + * src/output.c (output_parser): Remove useless muscle. + +2001-12-11 Marc Autret + + * src/bison.simple: Remove #line just before %%epilogue. It + is now handled in ... + * src/reader.c (read_additionnal_code): Add the output of a + #line for the epilogue. + +2001-12-10 Marc Autret + + * src/reader.c (copy_definition): Re-use CPP-outed code which + replace precedent remove. + * src/bison.simple: Remove #line before %%prologue because + %%input-line is wrong at this time. + +2001-12-10 Marc Autret + + * src/reader.c (symbols_output): Clean up. + * src/output.c (output_gram, output): Clean up. + +2001-12-10 Akim Demaille + + * src/lalr.c (initialize_lookaheads): New. Extracted from... + * src/LR0.c (set_state_table): here. + * src/lalr.c (lalr): Call it. + +2001-12-10 Akim Demaille + + * src/state.h (shifts): Remove the `number' member: shifts are + attached to state, hence no longer need to be labelled with a + state number. + +2001-12-10 Akim Demaille + + Now that states have a complete set of members, the linked list of + shifts is useless: just fill directly the state's shifts member. + + * src/state.h (shifts): Remove the `next' member. + * src/LR0.c (first_state, last_state): Remove. + Adjust the callers. + (augment_automaton): Don't look for the shifts that must be added + a shift on EOF: it is those of the state we looked for! But now, + since shifts are attached, it is no longer needed to looking + merely by its id: its number. + +2001-12-10 Akim Demaille + + * src/LR0.c (augment_automaton): Better variable locality. + Remove an impossible branch: if there is a state corresponding to + the start symbol being shifted, then there is shift for the start + symbol from the initial state. + +2001-12-10 Akim Demaille + + * src/LR0.c (augment_automaton): Call `insert_eof_shifting_state' + only when appropriate: when insert_start_shifting_state' is not + invoked. + * tests/regression.at (Rule Line Numbers): Adjust. + +2001-12-10 Akim Demaille + + * src/LR0.c (augment_automaton): Now that all states have shifts, + merge the two cases addition shifts to the initial state. + +2001-12-10 Akim Demaille + + * src/lalr.c (set_state_table): Move to... + * src/LR0.c: here. + * src/lalr.c (lalr): Don't call it... + * src/LR0.c (generate_states): do it. + * src/LR0.h (first_state): Remove, only the table is used. + +2001-12-10 Akim Demaille + + * src/LR0.h (first_shift, first_reduction): Remove. + * src/lalr.c: Don't use first_shift: find shifts through the + states. + +2001-12-10 Akim Demaille + + * src/LR0.c: Attach shifts to states as soon as they are + computed. + * src/lalr.c (set_state_table): Instead of assigning shifts to + state, just assert that the mapping was properly done. + +2001-12-10 Akim Demaille + + * src/LR0.c (insert_start_shift): Rename as... + (insert_start_shifting_state): this. + (insert_eof_shifting_state, insert_accepting_state): New. + (augment_automaton): Adjust. + Better locality of the variables. + When looking if the start_symbol is shifted from the initial + state, using `while (... symbol != start_symbol ...)' sounds + better than `while (... symbol < start_symbol ...)': If fail + to see how the order between symbols could be relevant! + +2001-12-10 Akim Demaille + + * src/getargs.h: Don't declare `spec_name_prefix' and + `spec_file_prefix', declared by src/files.h. + * src/files.c, src/files.h: Default for spec_name_prefix is "yy". + * src/muscle_tab.c (muscle_init): Default prefix to NULL. + * src/output.c (prepare): Adjust. + * src/reader.c (symbols_output): Likewise. + * src/vmsgetargs.c: Vaguely adjust, but who cares? + +2001-12-10 Akim Demaille + + * src/muscle_tab.c (muscle_init): NULL is a better default than + `"0"'. + +2001-12-10 Akim Demaille + + * src/reader.c (reader): Calling symbols_output once is enough. + +2001-12-10 Akim Demaille + + Now that states have a complete set of members, the linked list of + reductions is useless: just fill directly the state's reductions + member. + + * src/state.h (struct reductions): Remove member `number' and + `next'. + * src/LR0.c (first_reduction, last_reduction): Remove. + (save_reductions): Don't link the new reductions, store them in + this_state. + * src/lalr.c (set_state_table): No need to attach reductions to + states, it's already done. + * src/output.c (output_actions): No longer free the shifts, then + the reductions, then the states: free all the states and their + members. + +2001-12-10 Akim Demaille + + * src/options.c (OPTN, DRTV, BOTH): New. + (option_table): Use them. + + * src/muscle_tab.c: Don't include xalloc.h and string.h: that's + the job of system.h. + * src/options.c: Don't include stdio.h and xalloc.h for the same + reasons. + +2001-12-10 Akim Demaille + + * src/output.c (output, prepare): Make sure the values of the + muscles `action' and `prologue' are 0-terminated. + +2001-12-10 Akim Demaille + + Clean up GCC warnings. + + * src/reader.c (copy_action): `buf' is not used. + (parse_skel_decl): Be static. + * src/muscle_tab.c (mhash1, mhash2, muscle_insert): Preserve `const'. + * src/options.h (create_long_option_table): Have a real prototype. + * lib/hash.c, lib/hash.h (hash_insert, hash_insert_at, hash_delete) + (hash_delete_at): Return const void *. + Adjust casts to preserve the const. + +2001-12-10 Akim Demaille + + * configure.in: Require 2.52g. + M4 is not needed, but AUTOM4TE is. + * m4/m4.m4: Remove. + * tests/Makefile.am: Adjust. + +2001-12-10 Akim Demaille + + One structure for states is enough, even though theoretically + there are LR(0) states and LALR(1) states. + + * src/lalr.h (state_t): Remove. + (state_table): Be state_t **, not state_t *. + * src/state.h (core, CORE_ALLOC): Rename as... + (state_t, STATE_ALLOC): this. + Add the LALR(1) members: shifts, reductions, errs. + * src/LR0.c (state_table): Rename as... + (state_hash): this, to avoid name clashes with the global + `state_table'. + * src/print_graph.c, src/LR0.c, src/LR0.h, src/conflicts.c + * src/lalr.c, src/lalr.h, src/output.c, src/print.c: Adjust. + +2001-12-10 Akim Demaille + + Bison dumps core on bash.y. + Reported by Pascal Bart. + + * src/warshall.c (bitmatrix_print): New. + (TC): Use it. + When performing a transitive closure R(i, j) && R(j, k) => R(i, k), + j must be the outer loop. + * tests/regression.at (Broken Closure): New. + +2001-12-05 Akim Demaille + + * tests/atlocal.in (CPPFLAGS): Do not leave a space between -I and + its argument. + Reported by Peter Hámorský. + +2001-12-05 Akim Demaille + + * src/conflicts.c (err_table): Remove. + (resolve_sr_conflict): Adjust. + * src/lalr.h (state_t.reduction_table, state_t.shift_table): + Rename as... + (state_t.reductions, state_t.shifts): this. + +2001-12-05 Akim Demaille + + * src/reduce.c (reduce_grammar_tables): No longer disable the + removal of useless rules via CPP but via `if (0)', so that the + compiler still check the code is valid. + For instance, it should have noticed `rline' no longer exists: use + the `line' member of rule_t. + * src/gram.c (dummy, rline): Remove, unused. + +2001-12-05 Akim Demaille + + * src/output.c (pack_vector): Use assert, not berror. + * src/main.c (berror): Remove, unused. + +2001-12-05 Akim Demaille + + New experimental feature: if --verbose --trace output all the + items of a state, not only its kernel. + + * src/print.c (print_core): If `trace_flag', then invoke closure + before outputting the items of the state (print_core is no longer + a correct name them). + (print_results): Invoke new_closure/free_closure if needed. + +2001-12-05 Akim Demaille + + * src/LR0.c (new_itemsets): Use nshifts only, not shiftcount. + * src/closure.c, src/closure.h (itemsetsize): Rename as... + (nitemset): for consistency with the rest of the project. + +2001-12-05 Akim Demaille + + * src/closure.c (print_closure): Improve. + (closure): Use it for printing input and output. + +2001-12-05 Akim Demaille + + * src/closure.c (FIRSTS, FDERIVES): Adjust to reality: they are + indexed by nonterminals. + +2001-12-05 Akim Demaille + + * src/warshall.c (TC, RTC): De-obsfucate (source reduced to 22% of + what it was!). + * src/warshall.h: Remove accidental duplication of the content. + +2001-12-05 Akim Demaille + + * src/closure.c (set_fderives): De-obfuscate. + +2001-12-05 Akim Demaille + + * src/closure.c (print_firsts, print_fderives): De-obfuscate. + +2001-12-05 Akim Demaille + + * src/closure.c (set_firsts): De-obfuscate. + +2001-12-05 Akim Demaille + + * src/output.c (action_row): De-obfuscate + using the good o' techniques: arrays not pointers, variable + locality, BITISSET, RESETBIT etc. + +2001-12-05 Akim Demaille + + Pessimize the code to simplify it: from now on, all the states + have a valid SHIFTS, which NSHIFTS is possibly 0. + + * src/LR0.c (shifts_new): Be global and move to.. + * src/state.c, src/state.h: here. + * src/conflicts, src/lalr.c, src/output.c, src/print.c, + * src/print_graph: Adjust. + +2001-12-05 Akim Demaille + + * src/state.h (SHIFT_DISABLE, SHIFT_IS_DISABLED): New. + * src/conflicts.c: Use it. + Restore a few missing `if (!SHIFT_IS_DISABLED)' which were + incorrectly ``simplified''. + +2001-12-05 Akim Demaille + + * src/conflicts.c (flush_shift, resolve_sr_conflict): De-obfuscate + using the good o' techniques: arrays not pointers, variable + locality, BITISSET, RESETBIT etc. + +2001-12-05 Akim Demaille + + * src/state.h (SHIFT_SYMBOL): New. + * src/conflicts.c: Use it to deobfuscate. + +2001-12-05 Akim Demaille + + * src/conflicts.c (count_sr_conflicts, count_rr_conflicts) + (print_reductions): De-obfuscate using the good o' techniques: + arrays not pointers, variable locality, BITISSET. + +2001-12-05 Akim Demaille + + * src/conflicts.c (print_reductions): Arrays, not pointers. + Use BITISSET. + +2001-12-05 Akim Demaille + + * src/conflicts.c (print_reductions): Pessimize, but clarify. + +2001-12-05 Akim Demaille + + * src/conflicts.c (print_reductions): Improve variable locality. + +2001-12-05 Akim Demaille + + * src/conflicts.c (print_reductions): Pessimize, but clarify. + +2001-12-05 Akim Demaille + + * src/conflicts.c (print_reductions): Improve variable locality. + +2001-12-05 Akim Demaille + + * src/state.h (SHIFT_IS_ERROR, SHIFT_IS_GOTO, SHIFT_IS_SHIFT): New. + * src/lalr.c: Use them. + +2001-12-05 Akim Demaille + + * src/LR0.c (augment_automaton): Formatting changes. + Better variable locality. + +2001-12-05 Akim Demaille + + * src/lalr.c (matrix_print): New. + (transpose): Use it. + Use arrays instead of pointers. + +2001-12-05 Akim Demaille + + * src/lalr.c (maxrhs): Move to... + * src/gram.c, src/gram.h (ritem_longest_rhs): here. + * src/lalr.c (build_relations): Adjust. + +2001-12-05 Akim Demaille + + * src/lalr.c (transpose): Free the memory allocated to the + argument, as it is replaced by the results by the unique caller. + (build_relations): Merely invoke transpose: it handles the memory + deallocation. + Improve variable locality. + Avoid variables used as mere abbreviations. + (compute_lookaheads): Use arrays instead of pointers. + +2001-12-05 Akim Demaille + + * src/lalr.c (initialize_F): Improve variable locality. + Avoid variables used as mere abbreviations. + +2001-12-05 Akim Demaille + + * src/derives.c (print_derives): Display the ruleno. + * src/lalr.c (initialize_F, transpose): Better variable locality + to improve readability. + Avoid variables used as mere abbreviations. + +2001-12-05 Akim Demaille + + * src/lalr.c (traverse): Use arrays instead of pointers. + +2001-12-05 Akim Demaille + + * src/nullable.c (set_nullable): Use a for loop to de-obfuscate + the handling of squeue. + `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'. + +2001-12-05 Akim Demaille + + Because useless nonterminals are now kept alive (instead of being + `destroyed'), we now sometimes examine them, and store information + related to them. Hence we need to know their number, and adjust + memory allocations. + + * src/reduce.c, src/reduce.h (nuseless_nonterminals): No longer + static. + * src/LR0.c (allocate_itemsets): The memory allocated to + `symbol_count' was used for two different purpose: once to count + the number of occurrences of each symbol, and later reassigned to + `shift_symbol', containing the symbol that can be shifted from a + given state. + Deobfuscate, i.e., allocate, use and free `symbol_count' here + only, and... + (new_itemsets): Allocate `shift_symbol' here. + (allocate_itemsets): symbol_count includes useless nonterminals. + Make room for them. + (free_storage): Use `free', not `XFREE', for pointers that cannot + be null. + +2001-12-05 Akim Demaille + + * src/nullable.c (set_nullable): Deobfuscate the handling of + ritem. + `symbol >= 0' is wrong now, use `rule_table[ruleno].useful'. + +2001-12-05 Akim Demaille + + * src/gram.c, src/gram.h (ritem_print): New. + * src/gram.c (dummy): Remove, now there is actual code in gram.c. + (This useless function was defined only to work around VMS linkers + that can't handle compilation units with variables only). + * src/reduce.c (dump_grammar): Use it to trace the construction of + ritem. + +2001-12-04 Paul Eggert + + * src/bison.simple (union yyalloc): Change member names + to be the same as the stack names. + (yyparse): yyptr is now union yyalloc *, not char *. + (YYSTACK_RELOCATE): Likewise. This avoids a GCC warning, + and may generate better code on some machines. + (yystpcpy): Use prototype if __STDC__ is defined, not just + if __cplusplus is defined. + +2001-11-30 Akim Demaille + + * configure.in (WARNING_CFLAGS): Add -Werror when possible. + (CFLAGS): Do not include the WARNING_CFLAGS here, since GNU + Gettext doesn't compile cleanly, and dies with -Werror. + * src/Makefile.am, lib/Makefile.am, tests/atlocal.in (CFLAGS): + Include WARNING_CFLAGS here. + * lib/xstrdup.c: Include xalloc.h, so that xstrdup be declared + before being defined. + +2001-11-27 Paul Eggert + + * lib/quotearg.h (quotearg_n, quotearg_n_style): + First arg is int, not unsigned. + * lib/quotearg.c (quotearg_n, quotearg_n_style): Likewise. + (SIZE_MAX, UINT_MAX): New macros. + (quotearg_n_options): Abort if N is negative. + Avoid overflow check on hosts where size_t is 64 bits and int + is 32 bits, as overflow is impossible there. + Fix off-by-one typo that caused unnecessary reallocation. + +2001-11-29 Paul Eggert + + Name space cleanup in generated parser. + + * doc/bison.texinfo (Bison Parser): Discuss system headers + and their effect on the user name space. + + * src/bison.simple: + (YYSTACK_ALLOC, YYSTACK_FREE, union yyalloc, YYSTACK_GAP_MAX, + YYSTACK_BYTES, YYSTACK_RELOCATE): Do not define unless necessary, + i.e. unless ! defined (yyoverflow) || defined (YYERROR_VERBOSE). + + (YYSIZE_T): New macro. Use it instead of size_t, to avoid infringing + on user names when possible. + + (YYSTACK_USE_ALLOCA): Do not define; just use any existing defn. + Simplify test for whather exists. + + (): Include if we will use malloc, and if standard C or C++. + + (): Include if YYDEBUG. + + (yymemcpy): Renamed from __yy_memcpy. Do not define unless + ! defined (yyoverflow) && ! defined (yymemcpy). + + (yymemcpy, yyparse): Rename local variables as needed so that + they all begin with 'yy'. + + (yystrlen, yystpcpy): New functions. + + (YY_DECL_NON_LSP_VARIABLES): Renamed from _YY_DECL_VARIABLES. + All uses changed. + + (yyparse): size_t -> YYSIZE_T. Use yystrlen and yystpcpy + instead of relying on string.h functions. Use YYSTACK_ALLOC + and YYSTACK_FREE instead of malloc and free. + +2001-11-30 Akim Demaille + + * src/bison.simple (YYSTYPE, YYLTYPE): Move their definitions + before their first uses. + (YYBISON, YYPURE): Move to the top of the output. + +2001-11-30 Akim Demaille + + * tests/reduce.at (Useless Nonterminals): Fix. + +2001-11-30 Akim Demaille + + * src/bison.simple (YYSTACK_FREE): Use `do {;} while (0)' as empty + if body instead of `;' to pacify GCC's warnings. + +2001-11-30 Akim Demaille + + Instead of mapping the LHS of unused rules to -1, keep the LHS + valid, but flag the rules as invalid. + + * src/gram.h (rule_t): `useful' is a new member. + * src/print.c (print_grammar): Adjust. + * src/derives.c (set_derives): Likewise. + * src/reader.c (packgram, reduce_output): Likewise. + * src/reduce.c (reduce_grammar_tables): Likewise. + * tests/reduce.at (Underivable Rules, Useless Rules): New. + +2001-11-30 Akim Demaille + + * src/reduce.c (reduce_output): Formatting changes. + * src/print.c (print_results, print_grammar): Likewise. + * tests/regression.at (Rule Line Numbers) + (Solved SR Conflicts, Unresolved SR Conflicts): Adjust. + +2001-11-30 Akim Demaille + + * src/reduce.c (nonterminals_reduce): Instead of throwing away + useless nonterminals, move them at the end of the symbol arrays. + (reduce_output): Adjust. + * tests/reduce.at (Useless Nonterminals): Adjust. + +2001-11-30 Akim Demaille + + * src/reduce.c: Various comment/formatting changes. + (nonterminals_reduce): New, extracted from... + (reduce_grammar_tables): here. + (reduce_grammar): Call nonterminals_reduce. + +2001-11-29 Paul Eggert + + * src/bison.simple (YYSTACK_REALLOC): Remove. + (YYSTACK_ALLOC): Resurrect this macro, with its old meaning. + (YYSTACK_FREE, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE): + New macros. + (union yyalloc): New type. + (__yy_memcpy): Last arg is size_t, not unsigned int, to remove + an arbitrary restriction on hosts where size_t is wider than int. + + (yyparse): Don't dump core if alloca or malloc fails; instead, report + a parser stack overflow. Allocate just one block of memory for all + three stacks, instead of allocating three blocks; this typically is + faster and reduces fragmentation. + + Do not limit the number of items in the stack to a value that fits + in 'int', as this is an arbitrary limit on hosts with 64-bit + size_t and 32-bit int. + +2001-11-29 Marc Autret + + * tests/calc.at [AT_DATA_CALC_Y]: Use %error-verbose instead + of defining YYERROR_VERBOSE. + [AT_DATA]: $4 is now out of C declarations in the prologue. + +2001-11-28 Marc Autret + + * src/reader.c (parse_dquoted_param): New. + (parse_skel_decl): Use it. + * src/lex.h: Add its prototype. + * src/lex.c (literalchar): Become not static. + +2001-11-28 Marc Autret + + * src/output.h: And put its extern declaration here. + * src/output.c (error_verbose): Define here. + (prepare): Echo name modification. + * src/getargs.h: Clean its extern declaration. + * src/getargs.c (error_verbose_flag): Remove. + (getargs): Remove case 'e'. + * src/options.c (option_table): 'error-verbose' is now seen as simple + percent option. + Include output.h. + + * src/reader.c (read_declarations): Remove case tok_include. + (parse_include_decl): Remove. + * src/lex.h (token_t): Remove tok_include. + * src/options.c (option_table): 'include' is now a simple command line + option. + +2001-11-28 Marc Autret + + * src/bison.simple: Adjust muscle names. + * src/muscle_tab.c (muscle_init): Also rename the muscles. + * src/output.c (prepare): s/_/-/ for the muscles names. + (output_parser): When scanning for a muscle, allow '-' instead of '_'. + +2001-11-28 Marc Autret + + * src/bison.simple: Fix debug. + [YYERROR_VERBOSE]: Re-integrate as an internal macro. + +2001-11-28 Akim Demaille + + * src/LR0.c (shifts_new): New. + (save_shifts, insert_start_shift, augment_automaton): Use it. + +2001-11-28 Akim Demaille + + * src/closure.c (closure): `b' and `ruleno' denote the same value: + keep ruleno only. + +2001-11-28 Akim Demaille + + * src/closure.c (closure): Instead of looping over word in array + then bits in words, loop over bits in array. + +2001-11-28 Akim Demaille + + * src/closure.c (closure): No longer optimize the special case + where all the bits of `ruleset[r]' are set to 0, to make the code + clearer. + +2001-11-28 Akim Demaille + + * src/closure.c (closure): `r' and `c' are new variables, used to + de-obfuscate accesses to RULESET and CORE. + +2001-11-28 Akim Demaille + + * src/reduce.c (reduce_print): Use ngettext. + (dump_grammar): Improve the trace accuracy. + +2001-11-28 Akim Demaille + + * src/reduce.c (dump_grammar): Don't translate trace messages. + +2001-11-28 Akim Demaille + + * tests/reduce.at (Useless Terminals, Useless Nonterminals): New. + * src/reduce.c (reduce_grammar_tables): Do not free useless tags, + as all tags are free'ed afterwards. + From Enrico Scholz. + +2001-11-27 Paul Eggert + + * src/bison.simple (YYSTACK_REALLOC): Fix typo that caused us to + use alloca when we didn't want to, and vice versa. + +2001-11-27 Marc Autret + + * src/muscle_tab.c (muscle_init): Remove 'verbose' muscle + initialization. + * src/output.c (prepare): Remove its update. + +2001-11-27 Marc Autret + + * tests/torture.at [AT_DATA]: Remove YYERROR_VERBOSE definition. + Use %error-verbose. + +2001-11-27 Marc Autret + + * src/bison.simple: Remove YYERROR_VERBOSE using. + Use %%error_verbose. + (yyparse): Likewise. + * src/output.c (prepare): Give its final value. + * src/muscle_tab.c (muscle_init): Init new muscle 'error_verbose'. + * src/getargs.h: Add its extern declaration. + * src/getargs.c (error_verbose_flag): New int. + (getargs): Update to catch new case. + * src/options.c (option_table): 'error-verbose' is a new option. + (shortopts): Update. + +2001-11-27 Akim Demaille + + * src/system.h: Use intl/libgettext.h. + * src/Makefile.am (INCLUDES): Add -I $(top_srcdir). + +2001-11-27 Akim Demaille + + * tests/torture.at (Exploding the Stack Size with Malloc): + s/YYSTACK_USE_ALLOCA_ALLOCA/YYSTACK_USE_ALLOCA/. + +2001-11-27 Akim Demaille + + * src/files.c: Include error.h. + Reported by Hans Aberg. + +2001-11-26 Marc Autret + + * src/reader.c (parse_include_decl): New, not yet implemented. + (read_declarations): Add case tok_include. + * src/getargs.h (include): Add its extern definition. + * src/getargs.c (include): New const char *. + (getargs): Add case '-I'. + * src/options.c (option_table): Add include as command line and + percent option. + * src/lex.h (token_t): Add tok_include. + +2001-11-26 Akim Demaille + + * src/reader.c (readgram): Make sure rules for mid-rule actions + have a lineno equal to that of their host rule. + Reported by Hans Aberg. + * tests/regression.at (Rule Line Numbers): New. + +2001-11-26 Akim Demaille + + * src/LR0.c (allocate_itemsets): kernel_size contains ints, not + size_ts. + +2001-11-26 Akim Demaille + + * src/complain.c, src/complain.h (error): Remove, provided by + lib/error.[ch]. + +2001-11-26 Akim Demaille + + * src/reader.c (read_declarations): Don't abort on tok_illegal, + issue an error message. + * tests/regression.at (Invalid %directive): New. + Reported by Hans Aberg. + +2001-11-26 Akim Demaille + + * configure.in: Invoke AC_FUNC_OBSTACK and AC_FUNC_ERROR_AT_LINE. + * lib/Makefile.am (libbison_a_SOURCES): Adjust. + +2001-11-26 Akim Demaille + + * src/conflicts.c (conflicts_print): Don't complain at all when + there are no reduce/reduce conflicts, and as many shift/reduce + conflicts as expected. + * tests/regression.at (%expect right): Adjust. + +2001-11-23 Akim Demaille + + * lib/alloca.c: Update, from fileutils. + +2001-11-23 Akim Demaille + + * lib/Makefile.am (libbison_a_LIBADD): Add @ALLOCA@. + +2001-11-23 Akim Demaille + + * src/system.h: Include alloca.h. + * src/main.c (main) [C_ALLOCA]: Call alloca (0). + +2001-11-23 Akim Demaille + + * src/print_graph.c (print_actions): Remove `rule', unused. + * src/LR0.c (kernel_size): Contain `int' instead of `size_t' to + pacify GCC's signed < unsigned warnings. + * src/closure.c (itemsetsize): Likewise. + * src/reader.c (symbol_list_new): Static. + +2001-11-23 Akim Demaille + + Attaching lineno to buckets is stupid, since only one copy of each + symbol is kept, only the line of the first occurrence is kept too. + + * src/symtab.h, src/symtab.c (bucket): Remove the line member. + * src/reader.c (rline_allocated): Remove, unused. + (symbol_list): Have a `line' member. + (symbol_list_new): New. + (readgram): Use it. + * src/print.c (print_grammar): Output the rule line numbers. + * tests/regression.at (Solved SR Conflicts) + (Unresolved SR Conflicts): Adjust. + Reported by Hans Aberg. + +2001-11-22 Marc Autret + + * src/bison.simple [YYERROR_VERBOSE]: Force its value to be 1 or 0. + +2001-11-22 Marc Autret + + * src/muscle_tab.c (muscle_init): Remove initialization of + skeleton muscle. + * src/output.c (output_master_parser): Do it here. + +2001-11-20 Akim Demaille + + * po/sv.po: New. + * configure.in (ALL_LINGUAS): Adjust. + * po/POTFILE.in: Remove `nullable.c' and `derives.c' which no + longer contains strings to translate. + +2001-11-19 Akim Demaille + + * src/conflicts.c (conflicts_print): Add a missing \n. + +2001-11-19 Akim Demaille + + * src/nullable.c (nullable_print): New. + (set_nullable): Call it when tracing. + Better locality of variables. + +2001-11-19 Akim Demaille + + * src/print.c (print_actions): Better locality of variables. + +2001-11-19 Akim Demaille + + * src/derives.c (print_derives): Fix and enrich. + * src/closure.c (print_fderives): Likewise. + +2001-11-19 Akim Demaille + + * src/closure.c (itemsetend): Remove, replaced with... + (itemsetsize): new. + +2001-11-19 Akim Demaille + + * src/LR0.c (kernel_end): Remove, replaced with... + (kernel_size): new. + +2001-11-19 Akim Demaille + + * src/conflicts.c (set_conflicts): Use arrays instead of pointers + to clarify. + +2001-11-19 Akim Demaille + + * src/closure.c (closure): Use arrays instead of pointers to clarify. + +2001-11-19 Akim Demaille + + * src/closure.c, src/derives.c, src/nullable.c: Adjust various + trace messages. + * src/LR0.c: Likewise. + (allocate_itemsets): Use arrays instead of pointers to clarify. + +2001-11-19 Akim Demaille + + * src/getargs.c (statistics_flag): Replace with... + (trace_flag): New. + (longopts): Accept --trace instead of --statistics. + * src/getargs.h, src/options.c: Adjust. + * src/LR0.c, src/closure.c, src/derives.c, src/nullable.c, + * src/reduce.c: Use trace_flags instead of the CPP conditional TRACE. + +2001-11-19 Akim Demaille + + * src/LR0.c (new_itemsets, get_state): Use more arrays and fewer + pointers to clarify the code. + (save_reductions, save_shifts): Factor common parts of alternatives. + +2001-11-19 Akim Demaille + + * src/LR0.c (new_state, get_state): Complete TRACE code. + * src/closure.c: Include `reader.h' to get `tags', needed by the + trace code. + Rename the conditional DEBUG as TRACE. + Output consistently TRACEs to stderr, not stdout. + * src/derives.c: Likewise. + * src/reduce.c: (inaccessable_symbols): Using if is better style + than goto. + Use `#if TRACE' instead of `#if 0' for tracing code. + +2001-11-19 Akim Demaille + + * src/system.h (LIST_FREE, shortcpy): New. + * src/LR0.c: Use them. + * src/output.c (free_itemsets, free_reductions, free_shifts): + Remove, replaced by LIST_FREE. + +2001-11-19 Akim Demaille + + * src/state.h (CORE_ALLOC, SHIFTS_ALLOC, ERRS_ALLOC) + (REDUCTIONS_ALLOC): New. + * src/LR0.c, src/conflicts.c: Use them to de-obfuscate memory + allocation. + +2001-11-19 Akim Demaille + + * src/LR0.c (new_state): Complete trace code. + * src/nullable.c (set_nullable): Don't translate traces. + +2001-11-19 Akim Demaille + + * src/print_graph.c (print_core): Better locality of variables. + * src/print.c (print_core): Likewise. + +2001-11-19 Akim Demaille + + * src/vcg.c: You do the output, so you are responsible of the + handling of VCG syntax, in particular: use quotearg. + * src/print_graph.c: Don't. + (print_actions): Don't output the actions as part of the nodes, + since that's the job of the edges. + (print_state): Don't output by hand: fill the node description, + and ask for its output. + +2001-11-19 Akim Demaille + + * src/bison.simple (yyparse): When verbosely reporting an error, + no longer put additional quotes around token names. + * tests/calc.at: Adjust. + +2001-11-19 Akim Demaille + + * src/symtab.h, src/symtab.c: `line' is a new member of `bucket'. + * src/reader.c (record_rule_lines, rline, rline_allocated): Remove. + * src/output.c: Adjust. + +2001-11-19 Akim Demaille + + * src/gram.h (rprec, rprecsym, rassoc): Remove, now part of... + (rule_t): this. + * src/conflicts.c, src/reader.c, src/reduce.c: Adjust. + +2001-11-19 Akim Demaille + + * src/gram.h (rule_t): New. + (rule_table): New. + (rrhs, rlhs): Remove, part of state_t. + * src/print_graph.c, src/closure.c, src/conflicts.c, src/derives.c, + * src/lalr.c, src/nullable.c, src/output.c, src/print.c, + * src/reader.c, src/reduce.c: Adjust. + +2001-11-19 Akim Demaille + + * src/reader.c (symbols_output): New, extracted from... + (packsymbols): Here. + (reader): Call it. + +2001-11-19 Akim Demaille + + * src/lalr.c (set_maxrhs, maxrhs): Remove, replaced with... + (maxrhs): this new function. + +2001-11-19 Akim Demaille + + * src/lalr.c (F): New macro to access the variable F. + Adjust. + +2001-11-19 Akim Demaille + + * src/lalr.h (LA): New macro to access the variable LA. + * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c: + * src/lalr.c: Adjust. + +2001-11-19 Akim Demaille + + * src/lalr.c (initialize_LA): Only initialize LA. Let... + (set_state_table): handle the `lookaheads' members. + +2001-11-19 Akim Demaille + + * src/lalr.h (lookaheads): Removed array, whose contents is now + a member of... + (state_t): this structure. + * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c: + Adjust. + +2001-11-19 Akim Demaille + + * src/lalr.h (consistent): Removed array, whose contents is now + a member of... + (state_t): this structure. + * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c: + Adjust. + +2001-11-19 Akim Demaille + + * src/lalr.h (reduction_table, shift_table): Removed arrays, whose + contents are now members of... + (state_t): this structure. + * src/output.c, src/lalr.c, src/print_graph.c, src/conflicts.c: + Adjust. + +2001-11-19 Akim Demaille + + * src/lalr.h (state_t): New. + (state_table): Be a state_t * instead of a core **. + (accessing_symbol): Remove, part of state_t. + * src/lalr.c: Adjust. + (set_accessing_symbol): Merge into... + (set_state_table): this. + * src/print_graph.c, src/conflicts.c: Adjust. + +2001-11-14 Akim Demaille + + * tests/calc.at, tests/output.at, tests/regression.at, + * tests/testsuite.at, tests/torture.at: Rely on Autotest 2.52g: + now the tests are run in private dirs, therefore AC_CLEANUP and + family can be simplified to 0-ary. + * tests/atlocal.in: Now that we run `elsewhere' than in tests/, + use abs. path to find config.h. + * tests/calc.at (AT_CHECK_CALC): Don't try to check the compiler's + stderr, there can be way too much random noise. + Instead pass -Werror to GCC and rely on the exit status. + Reported by Wolfram Wagner. + +2001-11-14 Akim Demaille + + * src/bison.simple (yyparse): Let yyls1, yyss1 and yyvs1 be + defined only if yyoverflow is defined, to avoid `warning: unused + variable `yyvs1''. + Reported by The Test Suite. + +2001-11-14 Akim Demaille + + * src/print.c: Include reduce.h. + Reported by Hans Aberg. + +2001-11-14 Akim Demaille + + * src/lex.c, src/lex.h (token_buffer, unlexed_token_buffer): + Revert a previous patch: these are really const. + * src/conflicts.c (conflict_report): Additional useless pair of + braces to pacify GCC's warnings for `if () if () {} else {}'. + * src/lex.c (parse_percent_token): Replace equal_offset with + arg_offset. + arg is const. + Be sure to strdup `arg' when used, since there is no reason for + token_buffer not to change. + +2001-11-14 Akim Demaille + + * src/system.h (EXIT_SUCCESS, EXIT_FAILURE): Ensure a proper + definition. + * src/main.c (main): Use them. + Suggested by Hans Aberg. + +2001-11-12 Akim Demaille + + * src/system.h (ngettext): Now that we use ngettext, be sure to + provide a default definition when NLS are not used. + +2001-11-12 Akim Demaille + + * doc/bison.texinfo: Use `$' as shell prompt, not `%'. + Use @kbd to denote user input. + (Language and Grammar): ANSIfy the example. + Adjust its layout for info/notinfo. + (Location Tracking Calc): Output error messages to stderr. + Output locations in a more GNUtically correct way. + Fix a couple of Englishos. + Adjust @group/@end group pairs. + +2001-11-12 Akim Demaille + + %expext was not functioning at all. + + * src/conflicts.c (expected_conflicts): Set to -1. + (conflict_report): Use ngettext. + (conflicts_print): Check %expect and make its violation an error. + * doc/bison.texinfo (Expect Decl): Adjust. + * configure.in (AM_GNU_GETTEXT): Ask for ngettext. + * tests/regression.at (%expect not enough, %expect right) + (%expect too much): New. + +2001-11-12 Akim Demaille + + * tests/regression.at (Conflicts): Rename as... + (Unresolved SR Conflicts): this. + (Solved SR Conflicts): New. + +2001-11-12 Akim Demaille + + * src/reduce.c (print_results): Rename as... + (reduce_output): This. + Output to OUT, passed as argument, instead of output_obstack. + (dump_grammar): Likewise. + (reduce_free): New. + Also free V1. + (reduce_grammar): No longer call reduce_output, since... + * src/print.c (print_results): do it. + * src/main.c (main): Call reduce_free; + +2001-11-12 Akim Demaille + + * src/conflicts.c (print_reductions): Accept OUT as argument. + Output to it, not to output_obstack. + * src/print.c (print_actions): Adjust. + +2001-11-12 Akim Demaille + + * src/conflicts.c (count_sr_conflicts, count_rr_conflicts): Return + the result instead of using... + (src_total, rrc_total, src_count, rrc_count): Remove. + (any_conflicts): Remove. + (print_conflicts): Split into... + (conflicts_print, conflicts_output): New. + * src/conflicts.h: Adjust. + * src/main.c (main): Invoke both conflicts_output and conflicts_print. + * src/print.c (print_grammar): Issue `\n' between two rules. + * tests/regression.at (Conflicts): New. + Reported by Tom Lane. + +2001-11-12 Akim Demaille + + * tests/regression.at (Invalid input): Remove, duplicate with + ``Invalid input: 1''. + +2001-11-12 Akim Demaille + + * tests/torture.at (AT_DATA_STACK_TORTURE) + (Exploding the Stack Size with Alloca) + (Exploding the Stack Size with Malloc): New. + +2001-11-12 Akim Demaille + + * src/bison.simple (YYSTACK_REALLOC): New. + (yyparse) [!yyoverflow]: Use it and free the old stack. + Reported by Per Allansson. + +2001-11-12 Pascal Bart + + * src/bison.simple: Define type yystype instead of YYSTYPE, and + define CPP macro, which substitute YYSTYPE by yystype. + * src/reader.c (parse_union_decl): Output yystype/YYSTYPE as we do + with yyltype/YYLTYPE. This allows inclusion of the generated + header within the parser if the compiler, such as GGC, accepts + multiple equivalent #defines. + From Akim. + +2001-11-05 Akim Demaille + + * src/reader.c (symbols_output): New, extracted from... + (packsymbols): here. + (reader): Adjust. + +2001-11-05 Akim Demaille + + * src/lex.c (parse_percent_token): s/quotearg/quote/. + +2001-11-05 Akim Demaille + + * tests/regression.at (AT_TEST_CPP_GUARD_H): Adjust the clean up + pattern. + +2001-11-05 Akim Demaille + + * src/options.h (struct option_table_struct): set_flags is void*. + * src/options.c (longopts): Support `--output' and `%output'. + (usage): Adjust. + * src/lex.h (tok_setopt): Remove, replaced with... + (tok_intopt, tok_stropt): these new guys. + * src/lex.c (getopt.h): Not needed. + (token_buffer, unlexed_token_buffer): Not const. + (percent_table): Promote `-' over `_' in directive names. + Active `%name-prefix', `file-prefix', and `output'. + (parse_percent_token): Accept possible arguments to directives. + Promote `-' over `_' in directive names. + +2001-11-04 Akim Demaille + + * doc/bison.texinfo (Decl Summary): Split the list into + `directives for grammars' and `directives for bison'. + Sort'em. + Add description of `%name-prefix', `file-prefix', and `output'. + Promote `-' over `_' in directive names. + (Bison Options): s/%locactions/%locations/. Nice Freudian slip. + Simplify the description of `--name-prefix'. + Promote `-' over `_' in directive names. + Promote `--output' over `--output-file'. + Fix the description of `--defines'. + * tests/output.at: Exercise %file-prefix and %output. + +2001-11-02 Akim Demaille + + * doc/refcard.tex: Update. + +2001-11-02 Akim Demaille + + * src/symtab.h (SUNDEF): New. + * src/symtab.c (bucket_new): Init user_token_number to SUNDEF to + stand for `uninitialized', instead of 0. + * src/reader.c (packsymbols, parse_thong_decl): Adjust. + * src/lex.c (lex): Adjust. + + * tests/calc.at (_AT_DATA_CALC_Y): Declare a token for EOF. + Number it 0. + Let yylex return it instead of a plain 0. + Reported by Dick Streefland. + +2001-11-02 Akim Demaille + + * tests/regression.at (Mixing %token styles): New test. + +2001-11-02 Akim Demaille + + * src/reader.c (parse_thong_decl): Formatting changes. + (token_translations_init): New, extracted from... + (packsymbols): Here. + Adjust. + +2001-11-01 Akim Demaille + + * tests/regression.at (AT_TEST_CPP_GUARD_H): New. + Check that `9foo.y' produces correct cpp guards. + * src/files.c (compute_header_macro): Prepend `BISON_' to CPP + guards. + Reported by Wwp. + +2001-11-01 Akim Demaille + + * tests/regression.at (Invalid input: 2): New. + * src/lex.c (unlexed_token_buffer): New. + (lex, unlex): Adjust: when unlexing, be sure to save token_buffer + too. + Reported by Wwp. + +2001-11-01 Akim Demaille + + * tests/calc.at: Catch up with 1.30. + * configure.in: Bump to 1.49a. + Adjust to newer Autotest. + +2001-10-19 Pascal Bart + + * src/conflicts.c: Move global variables rrc_total and src_total ... + (print_conflicts): here. + * src/output.c (output): Free global variable user_toknums. + * src/lex.c (token_obstack): Become static. + +2001-10-18 Akim Demaille + + * tests/atlocal.in (GCC): Add. + * tests/calc.at: s/m4_match/m4_bmatch/. + s/m4_patsubst/m4_bpatsubst/. + (AT_CHECK_CALC): Check the compiler's stderr only if it's GCC. + * configure.in: AC_SUBST(GCC). + +2001-10-14 Marc Autret + + * src/options.c (create_long_option_table): Fix. + +2001-10-10 Akim Demaille + + * src/bison.simple: Be sure to set YYSTACK_USE_ALLOCA. + +2001-10-04 Akim Demaille + + * src/reader.c (parse_union_decl): Push the caracters in + union_obstack, not attrs_obstack. + +2001-10-04 Akim Demaille + + Merge in the branch 1.29. + + * src/reader.c (packsymbols): Use a temporary obstack for + `%%tokendef', since output_stack is already used elsewhere. + + 2001-10-02 Akim Demaille + + Bump 1.29d. + + 2001-10-02 Akim Demaille + + Version 1.29c. + + 2001-10-02 Akim Demaille + + * tests/regression.at (Invalid CPP headers): New. + From Alexander Belopolsky. + * src/files.c (compute_header_macro): Map non alnum chars to `_'. + + 2001-10-02 Akim Demaille + + * tests/regression.at (Invalid input): New. + * src/lex.c (lex): Be sure to set `token_buffer' in any case. + Reported by Shura. + + 2001-10-02 Akim Demaille + + * tests/calc.at: Now that --debug works, the tests must be adjusted. + + 2001-10-02 Akim Demaille + + * src/output.c (output_parser): Assert `skeleton'. + * src/files.c (skeleton_find): Look harder for skeletons on DOSish + systems. + From Shura. + + 2001-10-01 Marc Autret + + * src/lex.h: Echo modifications. + * src/lex.c (unlex): Parameter is now token_t. + From Hans Aberg. + + 2001-10-01 Marc Autret + + * src/main.c: Include lex.h. + From Hans Aberg. + + 2001-09-29 Akim Demaille + + * src/getargs.c (longopts): `--debug' is `-t', not `-d'. + + 2001-09-28 Akim Demaille + + * tests/testsuite.at: Update to newer Autotest. + * tests/Makefile.am (EXTRA_DIST): bison is not to be shipped. + + 2001-09-27 Akim Demaille + + Position independent wrapper. + + * tests/bison: Remove. + * tests/bison.in: New. + * configure.in: Adjust. + + 2001-09-27 Paul Eggert + + Port quotearg fixes from tar 1.13.24. + + * lib/quotearg.c: BSD/OS 4.1 wchar.h requires FILE and struct + tm to be declared. + (HAVE_MBSINIT): Undef if !HAVE_MBRTOWC. + (mbsinit): Define to 1 if !defined mbsinit && !HAVE_MBSINIT. + + * m4/Makefile.am (EXTRA_DIST): Add mbrtowc.m4. + * m4/mbrtowc.m4: New file. + * m4/prereq.m4 (jm_PREREQ_QUOTEARG): Check for mbsinit and stddef.h. + Use jm_FUNC_MBRTOWC instead of AC_CHECK_FUNCS(mbrtowc). + + 2001-09-27 Akim Demaille + + Bump to 1.29c. + + 2001-09-27 Akim Demaille + + Version 1.29b. + + 2001-09-25 Akim Demaille + + * src/system.h: Include `xalloc.h'. + Remove it from the C files. + * src/files.c (output_files): Free the obstacks. + * src/lex.c (init_lex): Rename as... + (lex_init): this. + (lex_free): New. + * src/main.c (main): Use it. + + 2001-09-24 Marc Autret + + * src/vcg.c (open_edge, close_edge, open_node, close_node): Change + to output informations in fout (FILE*). + (open_graph, close_graph): Likewise. + (output_graph, output_edge, output_node): Likewise. + * src/vcg.h: Update function prototypes. + * src/print_graph.c (print_graph): Open output graph file. + (print_actions): Adjust. + * src/files.h: Remove extern declaration. + * src/files.c: Remove graph_obstack declaration. + (open_files): Remove graph_obstack initialization. + (output_files): Remove graph_obstack saving. + + 2001-09-24 Marc Autret + + * src/files.c (compute_output_file_names): Fix. + + 2001-09-24 Marc Autret , + Akim Demaille + + * src/reader.c (reader): Remove call to free_symtab (). + * src/main.c (main): Call it here. + Include symtab.h. + * src/conflicts.c (initialize_conflicts): Rename as... + (solve_conflicts): this. + * src/print.c (print_core, print_actions, print_state) + (print_grammar): Dump to a file instead a `output_obstack'. + (print_results): Dump `output_obstack', and then proceed with the + FILE *. + * src/files.c (compute_output_file_names, close_files): New. + (output_files): Adjust. + * src/main.c (main): Adjust. + + 2001-09-23 Marc Autret + + * src/files.c (compute_header_macro): Computes header macro name + from spec_defines_file when given. + + 2001-09-23 Marc Autret + + * src/files.c (output_files): Add default extensions. + + 2001-09-22 Akim Demaille + + * src/conflicts.c (finalize_conflicts): Rename as... + (free_conflicts): this. + + 2001-09-22 Akim Demaille + + * src/gram.c (gram_free): Rename back as... + (dummy): this. + (output_token_translations): Free `token_translations'. + * src/symtab.c (free_symtab): Free the tag field. + + 2001-09-22 Akim Demaille + + Remove `translations' as it is always set to true. + + * src/gram.h: Adjust. + * src/reader.c (packsymbols, parse_token_decl): Adjust + * src/print.c (print_grammar): Adjust. + * src/output.c (output_token_translations): Adjust. + * src/lex.c (lex): Adjust. + * src/gram.c: Be sure the set pointers to NULL. + (dummy): Rename as... + (gram_free): this. + + 2001-09-22 Akim Demaille + + * configure.in: Invoke AM_LIB_DMALLOC. + * src/system.h: Use dmalloc. + * src/LR0.c: Be sure to have pointers initialized to NULL. + (allocate_itemsets): Allocate kernel_items only if needed. + + 2001-09-22 Akim Demaille + + * configure.in: Bump to 1.29b. + * tests/Makefile.am (DISTCLEANFILES): Add package.m4. + * tests/calc.at (_AT_DATA_CALC_Y): #undef malloc so that we don't + need xmalloc.c in calc.y. + From Pascal Bart. + + 2001-09-21 Akim Demaille + + Version 1.29a. + * Makefile.maint, config/config.guess, config/config.sub, + * config/missing: Update from masters. + * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): No longer depend + upon package.m4. + * configure.in (ALL_LINGUAS): Add `tr'. + + 2001-09-21 Akim Demaille + + * tests/Makefile.am (package.m4): Move to... + ($(srcdir)/$(TESTSUITE)): here. + + 2001-09-20 Akim Demaille + + * src/complain.c: No longer try to be standalone: use system.h. + Don't assume __STDC__ is defined to 1. Just test if it is defined. + * src/complain.h: Likewise. + * src/reduce.c (useless_nonterminals, inaccessable_symbols): + Remove the unused variable `n'. + From Albert Chin-A-Young. + + 2001-09-18 Marc Autret + + * doc/bison.1: Update. + * doc/bison.texinfo (Bison Options): Update --defines and --graph + descriptions. + (Option Cross Key): Update. + Add --graph. + + 2001-09-18 Marc Autret + + * tests/regression.at: New test (comment in %union). + + 2001-09-18 Marc Autret + + * src/reader.c (parse_union_decl): Do not output '/'. Let copy_comment + do that. + Reported by Keith Browne. + + 2001-09-18 Marc Autret + + * tests/output.at: Add tests for --defines and --graph. + + 2001-09-18 Marc Autret + + * tests/output.at: Removes tests of %{header,src}_extension features. + + 2001-09-18 Akim Demaille + + * tests/Makefile.am (package.m4): New. + * tests/calc.at (_AT_CHECK_CALC): Just run `calc input'. + (_AT_CHECK_CALC_ERROR): Likewise. + Factor the `, ' part of verbose error messages. + + 2001-09-18 Marc Autret + + * src/getargs.c (longopts): Declare --defines and --graph as options + with optional arguments. + * src/files.h: Add extern declarations. + * src/files.c (spec_graph_file, spec_defines_file): New. + (output_files): Update. + Remove CPP-outed code. + + 2001-09-18 Marc Autret + + Turn off %{source,header}_extension feature. + + * src/files.c (compute_exts_from_gf): Update. + (compute_exts_from_src): Update. + (output_files): CPP-out useless code. + * src/files.h: Remove {header,source}_extension extern declarations. + * src/reader.c (parse_dquoted_param): CPP-out. + (parse_header_extension_decl): Remove. + (parse_source_extension_decl): Remove. + (read_declarations): Remove cases tok_{hdrext,srcext}. + * src/lex.c (percent_table): Remove {header,source}_extension entries. + * src/lex.h (token_t): Remove tok_hdrext and tok_srcext. + + 2001-09-10 Akim Demaille + + * tests/output.at (AT_CHECK_BISON_FLAGS, AT_CHECK_BISON_PERCENT): + (AT_CHECK_BISON_PERCENT_FLAGS): Merge into... + (AT_CHECK_OUTPUT): this. + Merely check ls' exit status, its output is useless. + + 2001-09-10 Akim Demaille + + * tests/calc.at: Use m4_match. + (_AT_DATA_CALC_Y): Check `yyin != NULL', not `stdin != NULL'. + + 2001-09-10 Marc Autret , + Akim Demaille + + * src/vcg.h (graph_s): color, textcolor, bordercolor are now + enum color_e. + * src/print_graph.c (print_graph): Initalize graph.layoutalgorithm + to `normal'. + * src/reader.c (parse_token_decl): Initialize token with tok_eof. + * src/lex.h: Adjust prototype. + (token_t): Add `tok_undef'. + * src/lex.c (struct percent_table_struct): Retval is now a token_t. + (parse_percent_token): Now returns token_t. + Add default statement in switch. + (lex): Separate `c' as an input variable, from the token_t result + part. + (unlexed): Is a token_t. + + 2001-09-10 Akim Demaille + + * configure.in: Bump to 1.29a. + + 2001-09-07 Akim Demaille + + Version 1.29. + + 2001-08-30 Akim Demaille + + * tests/atgeneral.m4, tests/atconfig.in, tests/suite.at: Remove. + * m4/atconfig.m4: Remove. + * tests/testsuite.at, tests/atlocal.in, tests/output.at, + * tests/bison: New. + * tests/regression.at, tests/calc.at: Use m4_define, AT_BANNER, + m4_if, m4_patsubst, and m4_regexp. + * tests/calc.at (_AT_CHECK_CALC, _AT_CHECK_CALC_ERROR): Use an + `input' file instead of echo. + + 2001-08-29 Akim Demaille + + Bump to 1.28e. + + 2001-08-29 Akim Demaille + + Version 1.28d. + + 2001-08-29 Paul Eggert + + * src/bison.simple (yyparse): Don't take the address of an + item before the start of an array, as that doesn't conform to + the C Standard. + + 2001-08-29 Robert Anisko + + * doc/bison.texinfo (Location Tracking Calc): New node. + + 2001-08-29 Paul Eggert + + * src/output.c (output): Do not define const, as this now + causes more problems than it cures. + + 2001-08-29 Akim Demaille + + * doc/bison.texinfo: Modernize `@node' and `@top' use: just name + the nodes. + Be sure to tag the `detailmenu'. + + 2001-08-29 Akim Demaille + + * Makefile.maint (do-po-update): Wget refuses to overwrite files: + download in a tmp dir. + + 2001-08-28 Marc Autret + + * config/depcomp: New file. + + 2001-08-28 Marc Autret + + * doc/bison.1 (mandoc): Adjust. + From Juan Manuel Guerrero. + + 2001-08-28 Marc Autret + + * src/print_graph.c (print_state): Fix. + + 2001-08-27 Marc Autret + + * src/vcg.h (classname_s, infoname_s, node_s): Constify the + char * members. + Echo modifications to the functions prototypes. + * src/vcg.c (add_classname, add_infoname): Adjust arguments. + + 2001-08-27 Marc Autret + + * src/vcg.c: Include `xalloc.h'. + (add_colorentry): New. + (add_classname): New. + (add_infoname): New. + * src/vcg.h: Add new prototypes. + + 2001-08-27 Akim Demaille + + * Makefile.maint: Sync. again with CVS Autoconf. + + 2001-08-27 Akim Demaille + + * Makefile.maint: Formatting changes. + (po-update, cvs-update, update): New targets. + (AMTAR): Remove. + + 2001-08-27 Akim Demaille + + * Makefile.am (AUTOMAKE_OPTIONS): 1.5. + * Makefile.maint: Sync. with CVS Autoconf. + + 2001-08-27 Marc Autret + + * src/vcg.h (struct infoname_s): New. + (struct colorentry_s): New. + (graph_s): New fields {vertical,horizontal}_order in structure. + Add `infoname' field. + Add `colorentry' field; + * src/vcg_defaults.h (G_VERTICAL_ORDER): New. + (G_HORIZONTAL_ORDER): New. + (G_INFONAME): New. + (G_COLORENTRY): New. + * src/vcg.c (output_graph): Add output of {vertical,horizontal}_order. + Add output of `infoname'. + Add output of `colorentry'. + + 2001-08-27 Marc Autret + + * src/reader.c (parse_dquoted_param): Rename variable `index' to `i'. + This one shadowed a global parameter. + + 2001-08-24 Marc Autret + + * src/print_graph.c (node_output_size): Declared POSIX `size_t' type, + instead of `unsigned'. + (print_state): Do not call obstack_object_size () in obstack_grow () + to avoid macro variables shadowing. + + 2001-08-23 Marc Autret + + * src/lex.c (percent_table): Typo: s/naem/name/. + Add graph option. + Normalize new options declarations. + + 2001-08-20 Pascal Bart + + * tests/suite.at: Exercise %header_extension and %source_extension. + + 2001-08-16 Marc Autret + + * src/reader.c (parse_dquoted_param): New. + (parse_header_extension_decl): Use it. + (parse_source_extension_decl): Likewise. + + 2001-08-16 Marc Autret + + * src/vcg.c: Remove includes of `complain.h' and `xalloc.h'. + (get_xxxx_str): Use assert () instead of complain (). + Remove return invokations in default cases. + (get_decision_str): Modify default behaviour. Remove second argument. + Echo modifications on calls. + (output_graph): Fix. + + 2001-08-16 Marc Autret + + * src/getargs.c (usage): Update with ``-g, --graph''. + + 2001-08-16 Marc Autret + + * doc/bison.texinfo (Bison Options): Add items `-g', `--graph'. + (Option Cross Key): Likewise. + * doc/bison.1: Update. + +2001-09-25 Pascal Bart + + * src/output.c (output_master_parser): Don't finish action_obstack. + (output_parser): Don't care about the muscle action, here. + (prepare): Copy the action_obstack in the action muscle. + (output): Free action_obstack. + +2001-09-23 Pascal Bart + + * src/reader.c (parse_union_decl): Add new obstack union_obstack. Which + will contain `%union' declaration. + (parse_union_decl): Delete #line directive output. + (parse_union_decl): Substitute /attrs_obstack/union_obstack for all + informations about %union. + (parse_union_decl): Copy the union_obstack in the muscle stype. + * src/bison.simple: Add new #line directive. + Add typdef %%stype YYSTYPE. + +2001-09-23 Pascal Bart + + * src/bison.simple: Add new `#line' directive. + +2001-09-22 Pascal Bart + + * src/bison.simple: New `#line' directive. + * src/output.c (output_parser): Support new dynamic muscle input_line. + +2001-09-22 Marc Autret + + * src/output.c (output_master_parser): New. + (output_parser): Be more re-entrant. + +2001-09-21 Marc Autret + + * src/reader.c (copy_definition, parse_union_decl): Update and use + `linef' muscle. + (copy_action): Likewise. + Use obstack_1grow (). + * src/muscle_tab.c (muscle_init): Add muscle `linef'. + +2001-09-21 Marc Autret + + * src/options.c (option_table): Adjust. + * src/lex.c (parse_percent_token): Fix. + +2001-09-20 Pascal Bart + + * src/options.c (symtab.h): Include it, need by lex.h. + 2001-09-20 Pascal Bart * src/lex.c (parse_percent_token): Change type of variable `tx', which @@ -43,7 +3850,7 @@ * src/output.c (output): Delete call to reader_output_yylsp. * src/reader.c (reader): Likewise. * src/reader.h: Delete declaration of reader_output_yylsp. - + 2001-09-02 Marc Autret * src/reader.c: Include muscle_tab.h. @@ -53,9 +3860,9 @@ (read_declarations, copy_action, read_additionnal_code, : Updated with correct variables and functions names. (packsymbols, reader): Likewise. - + * src/reader.h (muscle_obstack): Extern declaration update. - + * src/output.c: Include muscle_tab.h In all functions using macro_insert, change by using muscle_insert (). (macro_obstack): Rename muscle_obstack. @@ -67,7 +3874,7 @@ * src/muscle_tab.h: Update double inclusion macros. (macro_entry_s): Rename muscle_entry_s. Update prototypes. - + * src/muscle_tab.c: Include muscle_tab.h. Rename macro_tabble to muscle_table. (mhash1, mhash2, mcmp): Use muscle_entry. @@ -82,7 +3889,7 @@ 2001-09-02 Marc Autret Now the files macro_tab.[ch] are named muscle_tab.[ch]. - + * src/muscle_tab.c, src/muscle_tab.h: Add files. 2001-09-02 Marc Autret @@ -91,7 +3898,7 @@ 2001-09-01 Pascal Bart - * src/reader.c (copy_guard): Use muscle to specify the `#line' + * src/reader.c (copy_guard): Use muscle to specify the `#line' filename. 2001-09-01 Marc Autret @@ -117,10 +3924,10 @@ and insert the `prefix' muscles. * src/macrotab.c (macro_init): Likewise. (macro_init): Initialization prefix directive by `yy'. - * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval, + * src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval, %%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar, yylval, yydebug, yyerror, yynerrs and yyparse. - New directive `#define' to substitute yydebug, ... with option + New directive `#define' to substitute yydebug, ... with option name_prefix. 2001-08-31 Pascal Bart @@ -131,11 +3938,11 @@ 2001-08-31 Pascal Bart , Marc Autret - * src/reader.c (read_additionnal_code): Rename %%user_code to + * src/reader.c (read_additionnal_code): Rename %%user_code to %%epilogue. * src/output.c (output): Rename %%declarations to %%prologue. * src/bison.simple: Echo modifications. - + 2001-08-31 Marc Autret * src/reader.c (readgram): CleanUp. @@ -146,7 +3953,7 @@ 2001-08-31 Pascal Bart - * src/reader.c (reader): Delete obsolete call to function + * src/reader.c (reader): Delete obsolete call to function output_trailers and output_headers. * src/output.h: Remove obsolete functions prototypes of output_headers and output_trailers. @@ -154,7 +3961,7 @@ 2001-08-30 Pascal Bart * src/main.c: Include macrotab.h. - * src/macrotab.h (macro_entry_s): Constify fields. + * src/macrotab.h (macro_entry_s): Constify fields. Adjust functions prototypes. * src/macrotab.c (macro_insert): Constify key and value. (macro_find): Constify key. @@ -167,7 +3974,7 @@ 2001-08-30 Marc Autret * src/reader.c (parse_skel_decl): New. - (read_declarations): Add case `tok_skel', call parse_skel_decl (). + (read_declarations): Add case `tok_skel', call parse_skel_decl (). * src/lex.h (token_t): New token `tok_skel'. * src/lex.c (percent_table): Add skeleton option entry. Standardize. @@ -188,7 +3995,7 @@ 2001-08-28 Pascal Bart - * src/output.c (output): Copy attrs_obstack in the '%%definitions' + * src/output.c (output): Copy attrs_obstack in the '%%definitions' directive. * src/bison.simple: Add `%%definitions'. @@ -466,7 +4273,7 @@ * src/files.h (graph_obstack): New extern declaration. * src/Makefile.am: Add new source files. -2001-08-06 Marc Autret +2001-08-06 Marc Autret * src/print_graph.c, src/print_graph.h (graph): New. * src/vcg.h: New file. @@ -2663,3 +6470,23 @@ 1987-12-16 Richard Stallman * REFERENCES: entered into RCS +----- + +Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. + +This file is part of GNU Autoconf. + +GNU Autoconf 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, +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 +the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA.