]> git.saurik.com Git - bison.git/blobdiff - NEWS
Fix test failure reported by Tom Lane in
[bison.git] / NEWS
diff --git a/NEWS b/NEWS
index 6fd1cae7bc8e8ba9bf36c4f32f851a67fa6797da..a970b34ef6ac631f6f5898fec1d0c2271794491c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,7 +1,7 @@
 Bison News
 ----------
 
 Bison News
 ----------
 
-Changes in version 2.3+:
+Changes in version 2.3a, 2006-09-13:
 
 * Instead of %union, you can define and use your own union type
   YYSTYPE if your grammar contains at least one <type> tag.
 
 * Instead of %union, you can define and use your own union type
   YYSTYPE if your grammar contains at least one <type> tag.
@@ -12,22 +12,27 @@ Changes in version 2.3+:
 * Locations columns and lines start at 1.
   In accordance with the GNU Coding Standards and Emacs.
 
 * Locations columns and lines start at 1.
   In accordance with the GNU Coding Standards and Emacs.
 
-* You may now declare a default %destructor and %printer:
+* You may now declare per-type and default %destructor's and %printer's:
 
   For example:
 
 
   For example:
 
-     %union { char *string; }
-     %token <string> STRING1
-     %token <string> STRING2
-     %type  <string> string1
-     %type  <string> string2
-     %destructor { free ($$); }
-     %destructor { free ($$); printf ("%d", @$.first_line); } STRING1 string1
-
-  guarantees that, when the parser discards any user-defined symbol, it passes
-  its semantic value to `free'.  However, when the parser discards a `STRING1'
-  or a `string1', it also prints its line number to `stdout'.  It performs only
-  the second `%destructor' in this case, so it invokes `free' only once.
+    %union { char *string; }
+    %token <string> STRING1
+    %token <string> STRING2
+    %type  <string> string1
+    %type  <string> string2
+    %union { char character; }
+    %token <character> CHR
+    %type  <character> chr
+    %destructor { free ($$); } %symbol-default
+    %destructor { free ($$); printf ("%d", @$.first_line); } STRING1 string1
+    %destructor { } <character>
+
+  guarantees that, when the parser discards any user-defined symbol that has a
+  semantic type tag other than `<character>', it passes its semantic value to
+  `free'.  However, when the parser discards a `STRING1' or a `string1', it
+  also prints its line number to `stdout'.  It performs only the second
+  `%destructor' in this case, so it invokes `free' only once.
 
 * Except for LALR(1) parsers in C with POSIX Yacc emulation enabled (with `-y',
   `--yacc', or `%yacc'), Bison no longer generates #define statements for
 
 * Except for LALR(1) parsers in C with POSIX Yacc emulation enabled (with `-y',
   `--yacc', or `%yacc'), Bison no longer generates #define statements for