X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/3508ce361ba6e5c62c592d0caf039d316ed7f84f..cf8067530b3e075230051d459782a1074db5b211:/NEWS diff --git a/NEWS b/NEWS index 6fd1cae7..a970b34e 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,7 @@ 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 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. -* You may now declare a default %destructor and %printer: +* You may now declare per-type and default %destructor's and %printer's: For example: - %union { char *string; } - %token STRING1 - %token STRING2 - %type string1 - %type 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 STRING1 + %token STRING2 + %type string1 + %type string2 + %union { char character; } + %token CHR + %type chr + %destructor { free ($$); } %symbol-default + %destructor { free ($$); printf ("%d", @$.first_line); } STRING1 string1 + %destructor { } + + guarantees that, when the parser discards any user-defined symbol that has a + semantic type tag other than `', 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