]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
* src/symlist.h, src/symlist.c (symbol_list_length): New.
[bison.git] / ChangeLog
index 4a4a1542f643a869a63e0853492fe9882eab4857..3d181d22a8aa012feabfa0c69cffe688a347edd8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2002-06-17  Akim Demaille  <akim@epita.fr>
+
+       * src/symlist.h, src/symlist.c (symbol_list_length): New.
+       * src/scan-gram.l (handle_dollar, handle_at): Compute the
+       rule_length only when needed.
+       * src/output.c (actions_output, token_definitions_output): Output
+       the full M4 block.
+       * src/symtab.c: Don't access directly to the symbol tag, use
+       symbol_tag_get.
+       * src/parse-gram.y: Use symbol_list_free.
+
+       
+2002-06-17  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.h, src/reader.c (symbol_list, symbol_list_new)
+       (symbol_list_prepend, get_type_name): Move to...
+       * src/symlist.h, src/symlist.c (symbol_list_t, symbol_list_new)
+       (symbol_list_prepend, symbol_list_n_type_name_get): here.
+       Adjust all callers.
+       (symbol_list_free): New.
+       * src/scan-gram.l (handle_dollar): Takes a location.
+       * tests/input.at (Invalid $n): Adjust.
+
+       
+2002-06-17  Akim Demaille  <akim@epita.fr>
+
+       * src/reader.h, src/reader.c (symbol_list_new): Export it.
+       (symbol_list_prepend): New.
+       * src/parse-gram.y (%union): `list' is a new member.
+       (symbols.1): New, replaces...
+       (terms_to_prec.1, nterms_to_type.1): these.
+       * src/symtab.h, src/symtab.c (symbol_type_set, symbol_precedence_set)
+       Take a location as additional argument.
+       Adjust all callers.
+
+2002-06-15  Akim Demaille  <akim@epita.fr>
+
+       * src/parse-gram.y: Move %token in the declaration section so that
+       we don't depend upon CVS Bison.
+
+2002-06-15  Akim Demaille  <akim@epita.fr>
+
+       * src/state.h, src/state.c (state_rule_lookaheads_print): New.
+       * src/print.c (print_core): Use it.
+
+2002-06-15  Akim Demaille  <akim@epita.fr>
+
+       * src/conflicts.c (log_resolution): Accept the rule involved in
+       the sr conflicts instead of the lookahead number that points to
+       that rule.
+       (flush_reduce): Accept the current lookahead vector as argument,
+       instead of the index in LA.
+       (resolve_sr_conflict): Accept the current number of lookahead
+       bitset to consider for the STATE, instead of the index in LA.
+       (set_conflicts): Adjust.
+       * src/lalr.c, src/lalr.h, src/state.h: Comment changes.
+
+2002-06-15  Akim Demaille  <akim@epita.fr>
+
+       * src/state.h (state_t): Replace the `lookaheadsp' member, a
+       short, with `lookaheads' (bitsetv), `lookaheads_rule' (rule_t**).
+       Adjust all dependencies.
+       * src/lalr.c (initialize_lookaheads): Split into...
+       (states_lookaheads_count, states_lookaheads_initialize): these.
+       (lalr): Adjust.
+
+2002-06-15  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h, src/gram.c (grammar_rules_partial_print): New, eved
+       out of...
+       (grammar_rules_print): here.
+       * src/reduce.c (reduce_output): Use it.
+       * tests/reduce.at (Useless Rules, Reduced Automaton)
+       (Underivable Rules): Adjust.
+
+2002-06-15  Akim Demaille  <akim@epita.fr>
+
+       Copy BYacc's nice way to report the grammar.
+
+       * src/gram.h, src/gram.c (grammar_rhs_print, grammar_rules_print):
+       New.
+       Don't print the rules' location, it is confusing and useless.
+       (rule_print): Use grammar_rhs_print.
+       * src/print.c (print_grammar): Use grammar_rules_print.
+
+2002-06-15  Akim Demaille  <akim@epita.fr>
+
+       Complete and rationalize `useless thing' warnings.
+
+       * src/symtab.h, src/symtab.c (symbol_tag_get, symbol_tag_get_n)
+       (symbol_tag_print): New.
+       Use them everywhere in place of accessing directly the tag member.
+       * src/gram.h, src/gram.c (rule_print): New.
+       Use it where a rule used to be printed `by hand'.
+       * src/reduce.c (nonterminals_reduce): Report the use nonterminals.
+       (reduce_grammar_tables): Report the useless rules.
+       (reduce_print): Useless things are a warning, not an error.
+       Report it as such.
+       * tests/reduce.at (Useless Nonterminals, Useless Rules):
+       (Reduced Automaton, Underivable Rules): Adjust.
+       * tests/regression.at (Web2c Report, Web2c Report): Adjust.
+       * tests/conflicts.at (Unresolved SR Conflicts)
+       (Solved SR Conflicts): Adjust.
+
+2002-06-15  Akim Demaille  <akim@epita.fr>
+
+       Let symbols have a location.
+
+       * src/symtab.h, src/symtab.c (symbol_t): Location is a new member.
+       (getsym): Adjust.
+       Adjust all callers.
+       * src/complain.h, src/complain.c (complain_at, fatal_at, warn_at):
+       Use location_t, not int.
+       * src/symtab.c (symbol_check_defined): Take advantage of the
+       location.
+       * tests/regression.at (Invalid inputs): Adjust.
+
+2002-06-15  Akim Demaille  <akim@epita.fr>
+
+       * src/parse-gram.y (YYLLOC_DEFAULT, current_lhs_location): New.
+       (input): Don't try to initialize yylloc here, do it in the
+       scanner.
+       * src/scan-gram.l (YY_USER_INIT): Initialize yylloc.
+       * src/gram.h (rule_t): Change line and action_line into location
+       and action_location, of location_t type.
+       Adjust all dependencies.
+       * src/location.h, src/location.c (empty_location): New.
+       * src/reader.h, src/reader.c (grammar_start_symbol_set)
+       (grammar_symbol_append, grammar_rule_begin, grammar_rule_end)
+       (grammar_current_rule_symbol_append)
+       (grammar_current_rule_action_append): Expect a location as argument.
+       * src/reader.c (grammar_midrule_action): Adjust to attach an
+       action's location as dummy symbol location.
+       * src/symtab.h, src/symtab.c (startsymbol_location): New.
+       * tests/regression.at (Web2c Report, Rule Line Numbers): Adjust
+       the line numbers.
+
+2002-06-14  Akim Demaille  <akim@epita.fr>
+
+       Grammar declarations may be found in the grammar section.
+
+       * src/parse-gram.y (rules_or_grammar_declaration): New.
+       (declarations): Each declaration may end with a semicolon, not
+       just...
+       (grammar_declaration): `"%union"'.
+       (grammar): Branch to rules_or_grammar_declaration.
+
+2002-06-14  Akim Demaille  <akim@epita.fr>
+
+       * src/main.c (main): Invoke scanner_free.
+
+2002-06-14  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (m4_invoke): Extracted from...
+       (output_skeleton): here.
+       Free tempfile.
+
+2002-06-14  Akim Demaille  <akim@epita.fr>
+
+       * src/parse-gram.y (directives, directive, gram)
+       (grammar_directives, precedence_directives, precedence_directive):
+       Rename as...
+       (declarations, declaration, grammar, grammar_declaration)
+       (precedence_declaration, precedence_declarator): these.
+       (symbol_declaration): New.
+
+2002-06-14  Akim Demaille  <akim@epita.fr>
+
+       * src/files.c (action_obstack): Remove, unused.
+       (output_obstack): Remove it, and all its dependencies, as it is no
+       longer needed.
+       * src/reader.c (epilogue_set): Build the epilogue in the
+       muscle_obstack.
+       * src/output.h, src/output.c (muscle_obstack): Move to...
+       * src/muscle_tab.h, src/muscle_tab.h: here.
+       (muscle_init): Initialize muscle_obstack.
+       (muscle_free): New.
+       * src/main.c (main): Call it.
+
+2002-06-14  Akim Demaille  <akim@epita.fr>
+
+       * src/location.h: New, extracted from...
+       * src/reader.h: here.
+       * src/Makefile.am (noinst_HEADERS): Merge into
+       (bison_SOURCES): this.
+       Add location.h.
+       * src/parse-gram.y: Use location_t instead of Bison's.
+       * src/reader.h, src/reader.c (prologue_augment, epilogue_set):
+       Use location_t instead of ints.
+
+2002-06-14  Akim Demaille  <akim@epita.fr>
+
+       * data/bison.simple, data/bison.c++: Be sure to restore the
+       current #line when returning to the skeleton contents after having
+       exposed the input file's #line.
+
+2002-06-12  Akim Demaille  <akim@epita.fr>
+
+       * src/scan-gram.l (SC_BRACED_CODE): Don't use `<.*>', it is too
+       eager.
+       * tests/actions.at (Exotic Dollars): New.
+
+2002-06-12  Akim Demaille  <akim@epita.fr>
+
+       * src/scan-gram.l (SC_PROLOGUE): Don't eat characters amongst
+       ['"/] too eagerly.
+       * tests/input.at (Torturing the Scanner): New.
+
+2002-06-11  Akim Demaille  <akim@epita.fr>
+
+       * src/scan-gram.l (YY_OBS_INIT): Remove, replace with...
+       [SC_COMMENT,SC_STRING,SC_CHARACTER,SC_BRACED_CODE,SC_PROLOGUE]
+       [SC_EPILOGUE]: Output the quadrigraphs only when not in a comment.
+       * src/reader.h, src/scan-gram.l (scanner_initialize): this.
+       * src/reader.c (reader): Use it.
+
 2002-06-11  Akim Demaille  <akim@epita.fr>
 
        * src/scan-gram.l (YY_OBS_FINISH): Don't set yylval.
        Adjust all callers.
        (scanner_last_string_free): New.
 
-       
 2002-06-11  Akim Demaille  <akim@epita.fr>
 
        * src/scan-gram.l (YY_INIT, YY_GROW, YY_FINISH): Rename as...