X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/77714df234fec3610f18f873b569354599fac17d..caf23d249cfc6d9a807989cab399cd97496ef45d:/NEWS?ds=sidebyside diff --git a/NEWS b/NEWS index 50fb91ef..144d865d 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,19 @@ Bison News Changes in version 1.49b: +* 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 + ambiguities. Contributed by Paul Hilfinger. + +* 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 + 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. @@ -17,6 +30,18 @@ Changes in version 1.49b: user specified that one of her tokens is numbered 256, then error will be mapped onto another number. +* 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 + token. Formerly, it popped the stack until it found a state that + allowed some non-error action other than a default reduction on the + error token. The new behavior has long been the documented behavior, + and has long been required by POSIX. For more details, please see + . + +* 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). @@ -30,6 +55,9 @@ Changes in version 1.49b: Before, Bison reported the useless rules, but, although not used, included them in the parsers. They are now actually removed. +* Useless rules, useless nonterminals + They are now reported, as a warning, with their locations. + * Incorrect `Token not used' On a grammar such as @@ -61,7 +89,7 @@ Changes in version 1.49b: * Semantic parser This old option, which has been broken for ages, is removed. -* New translations +* New translation Croatian, thanks to Denis Lackovic. * Incorrect token definitions @@ -72,6 +100,27 @@ Changes in version 1.49b: the compiler supports ANSI C or is a C++ compiler, as enums. This helps debuggers producing symbols instead of values. +* Reports + In addition to --verbose, bison supports --report=THINGS, which + produces additional information: + - itemset + complete the core item sets with their closure + - lookahead + explicitly associate lookaheads to items + - solved + describe shift/reduce conflicts solving. + Bison used to systematically output this information on top of + the report. Solved conflicts are now attached to their states. + +* Type clashes + Previous versions don't complain when there is a type clash on + the default action if the rule has a mid-rule action, such as in: + + %type bar + %% + bar: '0' {} '0'; + + This is fixed. Changes in version 1.35, 2002-03-25: