]> git.saurik.com Git - bison.git/commit - tests/input.at
Finish implementation of per-type %destructor/%printer. Discussed
authorJoel E. Denny <jdenny@ces.clemson.edu>
Mon, 4 Sep 2006 22:20:52 +0000 (22:20 +0000)
committerJoel E. Denny <jdenny@ces.clemson.edu>
Mon, 4 Sep 2006 22:20:52 +0000 (22:20 +0000)
commitb2a0b7ca70f9490693d517d10c9c4a64c9fc1af0
tree175f2fecfee684216cefd56161cf9e0467123d3e
parent3be03b13e5fd9cc9ed119f26e429e6ab1dd3568d
Finish implementation of per-type %destructor/%printer.  Discussed
starting at
<http://lists.gnu.org/archive/html/bison-patches/2006-02/msg00064.html>
and
<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00091.html>.
* NEWS (2.3+): Add a description of this feature to the default
%destructor/%printer description.
* doc/bison.texinfo (Freeing Discarded Symbols): Likewise.
* src/symlist.c (symbol_list_destructor_set, symbol_list_printer_set):
Invoke semantic_type_destructor_set or semantic_type_printer_set when a
list node contains a semantic type.
* src/symtab.c, src/symtab.h: Extend with a table that associates
semantic types with their %destructor's and %printer's.
(semantic_type_from_uniqstr, semantic_type_get,
semantic_type_destructor_set, semantic_type_printer_set): New functions
composing the public interface of that table.
(symbol_destructor_get, symbol_destructor_location_get,
symbol_printer_get, symbol_printer_location_get):  If there's no
per-symbol %destructor/%printer, look up the per-type before trying
the default.
* tests/actions.at (Per-type %printer and %destructor): New test case.
* tests/input.at (Default %printer and %destructor redeclared):
Extend to check that multiple occurrences of %symbol-default in a
single %destructor/%printer declaration is an error.
(Per-type %printer and %destructor redeclared, Unused values with
per-type %destructor): New test cases.
ChangeLog
NEWS
doc/bison.texinfo
src/symlist.c
src/symtab.c
src/symtab.h
tests/actions.at
tests/input.at