]> git.saurik.com Git - bison.git/commit
Whether the default %destructor/%printer applies to a particular symbol
authorJoel E. Denny <jdenny@ces.clemson.edu>
Thu, 24 Aug 2006 01:26:07 +0000 (01:26 +0000)
committerJoel E. Denny <jdenny@ces.clemson.edu>
Thu, 24 Aug 2006 01:26:07 +0000 (01:26 +0000)
commit3508ce361ba6e5c62c592d0caf039d316ed7f84f
tree89a057b9bb381c9981e7e64cd61a0be62c4f8ba6
parent9350499cfce9122ebb065a582ab17e321b2e8ff3
Whether the default %destructor/%printer applies to a particular symbol
isn't a question of whether the user *declares* that symbol (in %token,
for example).  It's a question of whether the user by any means
*defines* the symbol at all (by simply using a char token, for
example).  $end is defined by Bison whereas any other token with token
number 0 is defined by the user.  The error token is always defined by
Bison regardless of whether the user declares it with %token, but we
may one day let the user define error as a nonterminal instead.
* NEWS (2.3+): Say "user-defined" instead of "user-declared".
* doc/bison.texinfo (Freeing Discarded Symbols): Likewise, and document
the meaning of "user-defined".
* tests/actions.at (Default %printer and %destructor for user-declared
end token): Rename to...
(Default %printer and %destructor for user-defined end token): ...
this.

* src/symtab.c (symbol_destructor_get, symbol_printer_get): In the
computation of whether to apply the default, don't maintain a list of
every Bison-defined symbol.  Instead, just check for a first character
of '$', which a user symbol cannot have, and check for the error token.
ChangeLog
NEWS
doc/bison.texinfo
src/symtab.c
tests/actions.at