X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/676385e29c4aedfc05d20daf1ef20cd4ccc84856..3b7d4eb2cd076ddc05a3e96db79ffa21e99ad720:/NEWS diff --git a/NEWS b/NEWS index 144d865d..699fe44c 100644 --- a/NEWS +++ b/NEWS @@ -1,35 +1,51 @@ Bison News ---------- -Changes in version 1.49b: +Changes in version 1.50a: + +* Bison should now work on 64-bit hosts. + +* Indonesian translation thanks to Tedi Heriyanto. + +Changes in version 1.50, 2002-10-04: * GLR parsing The declaration %glr-parser causes Bison to produce a Generalized LR (GLR) parser, capable of handling almost any context-free grammar, ambiguous or not. The new declarations - %dprec and %merge on grammar rules allow parse-time resolution of + %dprec and %merge on grammar rules allow parse-time resolution of ambiguities. Contributed by Paul Hilfinger. + Unfortunately Bison 1.50 does not work properly on 64-bit hosts + like the Alpha, so please stick to 32-bit hosts for now. + * Output Directory When not in Yacc compatibility mode, when the output file was not - specified, runnning `bison foo/bar.y' created `foo/bar.c'. It + specified, running `bison foo/bar.y' created `foo/bar.c'. It now creates `bar.c'. * Undefined token The undefined token was systematically mapped to 2 which prevented - the use of 2 from the user. This is no longer the case. + the use of 2 by the user. This is no longer the case. * Unknown token numbers - If yylex returned a code out of range, yyparse could die. This is + If yylex returned an out of range value, yyparse could die. This is no longer the case. * Error token - According to POSIX, the error token should be numbered as 256. + According to POSIX, the error token must be 256. Bison extends this requirement by making it a preference: *if* the user specified that one of her tokens is numbered 256, then error will be mapped onto another number. +* Verbose error messages + They no longer report `..., expecting error or...' for states where + error recovery is possible. + +* End token + Defaults to `$end' instead of `$'. + * Error recovery now conforms to documentation and to POSIX When a Bison-generated parser encounters a syntax error, it now pops the stack until it finds a state that allows shifting the error @@ -42,9 +58,11 @@ Changes in version 1.49b: * Traces Popped tokens and nonterminals are now reported. -* Large grammars - Large grammars are now supported (large token numbers, large grammar - size (= sum of the LHS and RHS lengths), large LALR tables). +* Larger grammars + Larger grammars are now supported (larger token numbers, larger grammar + size (= sum of the LHS and RHS lengths), larger LALR tables). + Formerly, many of these numbers ran afoul of 16-bit limits; + now these limits are 32 bits on most hosts. * Explicit initial rule Bison used to play hacks with the initial rule, which the user does @@ -58,6 +76,10 @@ Changes in version 1.49b: * Useless rules, useless nonterminals They are now reported, as a warning, with their locations. +* Rules never reduced + Rules that can never be reduced because of conflicts are now + reported. + * Incorrect `Token not used' On a grammar such as @@ -80,7 +102,7 @@ Changes in version 1.49b: * Token end-of-file The token end of file may be specified by the user, in which case, the user symbol is used in the reports, the graphs, and the verbose - error messages instead of `$', which remains being the defaults. + error messages instead of `$end', which remains being the default. For instance %token YYEOF 0 or @@ -89,16 +111,17 @@ Changes in version 1.49b: * Semantic parser This old option, which has been broken for ages, is removed. -* New translation +* New translations + Brazilian Portuguese, thanks to Alexandre Folle de Menezes. Croatian, thanks to Denis Lackovic. * Incorrect token definitions - When fed with `%token 'a' "A"', Bison used to output `#define 'a' 65'. + When given `%token 'a' "A"', Bison used to output `#define 'a' 65'. * Token definitions as enums Tokens are output both as the traditional #define's, and, provided the compiler supports ANSI C or is a C++ compiler, as enums. - This helps debuggers producing symbols instead of values. + This lets debuggers display names instead of integers. * Reports In addition to --verbose, bison supports --report=THINGS, which @@ -121,6 +144,8 @@ Changes in version 1.49b: bar: '0' {} '0'; This is fixed. + +* GNU M4 is now required when using Bison. Changes in version 1.35, 2002-03-25: @@ -136,7 +161,6 @@ Changes in version 1.35, 2002-03-25: This kludge also addresses some C++ problems when the stack was extended. - Changes in version 1.34, 2002-03-12: