Home | History | Annotate | Download | only in bison
      1 Bison News
      2 ----------
      3 
      4 Changes in version 2.3, 2006-06-05:
      5 
      6 * GLR grammars should now use `YYRECOVERING ()' instead of `YYRECOVERING',
      7   for compatibility with LALR(1) grammars.
      8 
      9 * It is now documented that any definition of YYSTYPE or YYLTYPE should
     10   be to a type name that does not contain parentheses or brackets.
     11 
     12 Changes in version 2.2, 2006-05-19:
     13 
     14 * The distribution terms for all Bison-generated parsers now permit
     15   using the parsers in nonfree programs.  Previously, this permission
     16   was granted only for Bison-generated LALR(1) parsers in C.
     17 
     18 * %name-prefix changes the namespace name in C++ outputs.
     19 
     20 * The C++ parsers export their token_type.
     21 
     22 * Bison now allows multiple %union declarations, and concatenates
     23   their contents together.
     24 
     25 * New warning: unused values
     26   Right-hand side symbols whose values are not used are reported,
     27   if the symbols have destructors.  For instance:
     28 
     29      exp: exp "?" exp ":" exp { $1 ? $1 : $3; }
     30 	| exp "+" exp
     31 	;
     32 
     33   will trigger a warning about $$ and $5 in the first rule, and $3 in
     34   the second ($1 is copied to $$ by the default rule).  This example
     35   most likely contains three errors, and could be rewritten as:
     36 
     37      exp: exp "?" exp ":" exp
     38 	    { $$ = $1 ? $3 : $5; free ($1 ? $5 : $3); free ($1); }
     39 	| exp "+" exp
     40 	    { $$ = $1 ? $1 : $3; if ($1) free ($3); }
     41 	;
     42 
     43   However, if the original actions were really intended, memory leaks
     44   and all, the warnings can be suppressed by letting Bison believe the
     45   values are used, e.g.:
     46 
     47      exp: exp "?" exp ":" exp { $1 ? $1 : $3; (void) ($$, $5); }
     48 	| exp "+" exp         { $$ = $1; (void) $3; }
     49 	;
     50 
     51   If there are mid-rule actions, the warning is issued if no action
     52   uses it.  The following triggers no warning: $1 and $3 are used.
     53 
     54      exp: exp { push ($1); } '+' exp { push ($3); sum (); };
     55 
     56   The warning is intended to help catching lost values and memory leaks.
     57   If a value is ignored, its associated memory typically is not reclaimed.
     58 
     59 * %destructor vs. YYABORT, YYACCEPT, and YYERROR.
     60   Destructors are now called when user code invokes YYABORT, YYACCEPT,
     61   and YYERROR, for all objects on the stack, other than objects
     62   corresponding to the right-hand side of the current rule.
     63 
     64 * %expect, %expect-rr
     65   Incorrect numbers of expected conflicts are now actual errors,
     66   instead of warnings.
     67 
     68 * GLR, YACC parsers.
     69   The %parse-params are available in the destructors (and the
     70   experimental printers) as per the documentation.
     71 
     72 * Bison now warns if it finds a stray `$' or `@' in an action.
     73 
     74 * %require "VERSION"
     75   This specifies that the grammar file depends on features implemented
     76   in Bison version VERSION or higher.
     77 
     78 * lalr1.cc: The token and value types are now class members.
     79   The tokens were defined as free form enums and cpp macros.  YYSTYPE
     80   was defined as a free form union.  They are now class members:
     81   tokens are enumerations of the `yy::parser::token' struct, and the
     82   semantic values have the `yy::parser::semantic_type' type.
     83 
     84   If you do not want or can update to this scheme, the directive
     85   `%define "global_tokens_and_yystype" "1"' triggers the global
     86   definition of tokens and YYSTYPE.  This change is suitable both
     87   for previous releases of Bison, and this one.
     88 
     89   If you wish to update, then make sure older version of Bison will
     90   fail using `%require "2.2"'.
     91 
     92 * DJGPP support added.
     93 
     95 Changes in version 2.1, 2005-09-16:
     96 
     97 * The C++ lalr1.cc skeleton supports %lex-param.
     98 
     99 * Bison-generated parsers now support the translation of diagnostics like
    100   "syntax error" into languages other than English.  The default
    101   language is still English.  For details, please see the new
    102   Internationalization section of the Bison manual.  Software
    103   distributors should also see the new PACKAGING file.  Thanks to
    104   Bruno Haible for this new feature.
    105 
    106 * Wording in the Bison-generated parsers has been changed slightly to
    107   simplify translation.  In particular, the message "memory exhausted"
    108   has replaced "parser stack overflow", as the old message was not
    109   always accurate for modern Bison-generated parsers.
    110 
    111 * Destructors are now called when the parser aborts, for all symbols left
    112   behind on the stack.  Also, the start symbol is now destroyed after a
    113   successful parse.  In both cases, the behavior was formerly inconsistent.
    114 
    115 * When generating verbose diagnostics, Bison-generated parsers no longer
    116   quote the literal strings associated with tokens.  For example, for
    117   a syntax error associated with '%token NUM "number"' they might
    118   print 'syntax error, unexpected number' instead of 'syntax error,
    119   unexpected "number"'.
    120 
    122 Changes in version 2.0, 2004-12-25:
    123 
    124 * Possibly-incompatible changes
    125 
    126   - Bison-generated parsers no longer default to using the alloca function
    127     (when available) to extend the parser stack, due to widespread
    128     problems in unchecked stack-overflow detection.  You can "#define
    129     YYSTACK_USE_ALLOCA 1" to require the use of alloca, but please read
    130     the manual to determine safe values for YYMAXDEPTH in that case.
    131 
    132   - Error token location.
    133     During error recovery, the location of the syntax error is updated
    134     to cover the whole sequence covered by the error token: it includes
    135     the shifted symbols thrown away during the first part of the error
    136     recovery, and the lookahead rejected during the second part.
    137 
    138   - Semicolon changes:
    139     . Stray semicolons are no longer allowed at the start of a grammar.
    140     . Semicolons are now required after in-grammar declarations.
    141 
    142   - Unescaped newlines are no longer allowed in character constants or
    143     string literals.  They were never portable, and GCC 3.4.0 has
    144     dropped support for them.  Better diagnostics are now generated if
    145     forget a closing quote.
    146 
    147   - NUL bytes are no longer allowed in Bison string literals, unfortunately.
    148 
    149 * New features
    150 
    151   - GLR grammars now support locations.
    152 
    153   - New directive: %initial-action.
    154     This directive allows the user to run arbitrary code (including
    155     initializing @$) from yyparse before parsing starts.
    156 
    157   - A new directive "%expect-rr N" specifies the expected number of
    158     reduce/reduce conflicts in GLR parsers.
    159 
    160   - %token numbers can now be hexadecimal integers, e.g., `%token FOO 0x12d'.
    161     This is a GNU extension.
    162 
    163   - The option `--report=lookahead' was changed to `--report=look-ahead'.
    164     The old spelling still works, but is not documented and will be
    165     removed.
    166 
    167   - Experimental %destructor support has been added to lalr1.cc.
    168 
    169   - New configure option --disable-yacc, to disable installation of the
    170     yacc command and -ly library introduced in 1.875 for POSIX conformance.
    171 
    172 * Bug fixes
    173 
    174   - For now, %expect-count violations are now just warnings, not errors.
    175     This is for compatibility with Bison 1.75 and earlier (when there are
    176     reduce/reduce conflicts) and with Bison 1.30 and earlier (when there
    177     are too many or too few shift/reduce conflicts).  However, in future
    178     versions of Bison we plan to improve the %expect machinery so that
    179     these violations will become errors again.
    180 
    181   - Within Bison itself, numbers (e.g., goto numbers) are no longer
    182     arbitrarily limited to 16-bit counts.
    183 
    184   - Semicolons are now allowed before "|" in grammar rules, as POSIX requires.
    185 
    187 Changes in version 1.875, 2003-01-01:
    188 
    189 * The documentation license has been upgraded to version 1.2
    190   of the GNU Free Documentation License.
    191 
    192 * syntax error processing
    193 
    194   - In Yacc-style parsers YYLLOC_DEFAULT is now used to compute error
    195     locations too.  This fixes bugs in error-location computation.
    196 
    197   - %destructor
    198     It is now possible to reclaim the memory associated to symbols
    199     discarded during error recovery.  This feature is still experimental.
    200 
    201   - %error-verbose
    202     This new directive is preferred over YYERROR_VERBOSE.
    203 
    204   - #defining yyerror to steal internal variables is discouraged.
    205     It is not guaranteed to work forever.
    206 
    207 * POSIX conformance
    208 
    209   - Semicolons are once again optional at the end of grammar rules.
    210     This reverts to the behavior of Bison 1.33 and earlier, and improves
    211     compatibility with Yacc.
    212 
    213   - `parse error' -> `syntax error'
    214     Bison now uniformly uses the term `syntax error'; formerly, the code
    215     and manual sometimes used the term `parse error' instead.  POSIX
    216     requires `syntax error' in diagnostics, and it was thought better to
    217     be consistent.
    218 
    219   - The documentation now emphasizes that yylex and yyerror must be
    220     declared before use.  C99 requires this.
    221 
    222   - Bison now parses C99 lexical constructs like UCNs and
    223     backslash-newline within C escape sequences, as POSIX 1003.1-2001 requires.
    224 
    225   - File names are properly escaped in C output.  E.g., foo\bar.y is
    226     output as "foo\\bar.y".
    227 
    228   - Yacc command and library now available
    229     The Bison distribution now installs a `yacc' command, as POSIX requires.
    230     Also, Bison now installs a small library liby.a containing
    231     implementations of Yacc-compatible yyerror and main functions.
    232     This library is normally not useful, but POSIX requires it.
    233 
    234   - Type clashes now generate warnings, not errors.
    235 
    236   - If the user does not define YYSTYPE as a macro, Bison now declares it
    237     using typedef instead of defining it as a macro.
    238     For consistency, YYLTYPE is also declared instead of defined.
    239 
    240 * Other compatibility issues
    241 
    242   - %union directives can now have a tag before the `{', e.g., the
    243     directive `%union foo {...}' now generates the C code
    244     `typedef union foo { ... } YYSTYPE;'; this is for Yacc compatibility.
    245     The default union tag is `YYSTYPE', for compatibility with Solaris 9 Yacc.
    246     For consistency, YYLTYPE's struct tag is now `YYLTYPE' not `yyltype'.
    247     This is for compatibility with both Yacc and Bison 1.35.
    248 
    249   - `;' is output before the terminating `}' of an action, for
    250     compatibility with Bison 1.35.
    251 
    252   - Bison now uses a Yacc-style format for conflict reports, e.g.,
    253     `conflicts: 2 shift/reduce, 1 reduce/reduce'.
    254 
    255   - `yystype' and `yyltype' are now obsolescent macros instead of being
    256     typedefs or tags; they are no longer documented and are planned to be
    257     withdrawn in a future release.
    258 
    259 * GLR parser notes
    260 
    261   - GLR and inline
    262     Users of Bison have to decide how they handle the portability of the
    263     C keyword `inline'.
    264 
    265   - `parsing stack overflow...' -> `parser stack overflow'
    266     GLR parsers now report `parser stack overflow' as per the Bison manual.
    267 
    268 * Bison now warns if it detects conflicting outputs to the same file,
    269   e.g., it generates a warning for `bison -d -o foo.h foo.y' since
    270   that command outputs both code and header to foo.h.
    271 
    272 * #line in output files
    273   - --no-line works properly.
    274 
    275 * Bison can no longer be built by a K&R C compiler; it requires C89 or
    276   later to be built.  This change originally took place a few versions
    277   ago, but nobody noticed until we recently asked someone to try
    278   building Bison with a K&R C compiler.
    279 
    281 Changes in version 1.75, 2002-10-14:
    282 
    283 * Bison should now work on 64-bit hosts.
    284 
    285 * Indonesian translation thanks to Tedi Heriyanto.
    286 
    287 * GLR parsers
    288   Fix spurious parse errors.
    289 
    290 * Pure parsers
    291   Some people redefine yyerror to steal yyparse' private variables.
    292   Reenable this trick until an official feature replaces it.
    293 
    294 * Type Clashes
    295   In agreement with POSIX and with other Yaccs, leaving a default
    296   action is valid when $$ is untyped, and $1 typed:
    297 
    298 	untyped: ... typed;
    299 
    300   but the converse remains an error:
    301 
    302 	typed: ... untyped;
    303 
    304 * Values of mid-rule actions
    305   The following code:
    306 
    307 	foo: { ... } { $$ = $1; } ...
    308 
    309   was incorrectly rejected: $1 is defined in the second mid-rule
    310   action, and is equal to the $$ of the first mid-rule action.
    311 
    313 Changes in version 1.50, 2002-10-04:
    314 
    315 * GLR parsing
    316   The declaration
    317      %glr-parser
    318   causes Bison to produce a Generalized LR (GLR) parser, capable of handling
    319   almost any context-free grammar, ambiguous or not.  The new declarations
    320   %dprec and %merge on grammar rules allow parse-time resolution of
    321   ambiguities.  Contributed by Paul Hilfinger.
    322 
    323   Unfortunately Bison 1.50 does not work properly on 64-bit hosts
    324   like the Alpha, so please stick to 32-bit hosts for now.
    325 
    326 * Output Directory
    327   When not in Yacc compatibility mode, when the output file was not
    328   specified, running `bison foo/bar.y' created `foo/bar.c'.  It
    329   now creates `bar.c'.
    330 
    331 * Undefined token
    332   The undefined token was systematically mapped to 2 which prevented
    333   the use of 2 by the user.  This is no longer the case.
    334 
    335 * Unknown token numbers
    336   If yylex returned an out of range value, yyparse could die.  This is
    337   no longer the case.
    338 
    339 * Error token
    340   According to POSIX, the error token must be 256.
    341   Bison extends this requirement by making it a preference: *if* the
    342   user specified that one of her tokens is numbered 256, then error
    343   will be mapped onto another number.
    344 
    345 * Verbose error messages
    346   They no longer report `..., expecting error or...' for states where
    347   error recovery is possible.
    348 
    349 * End token
    350   Defaults to `$end' instead of `$'.
    351 
    352 * Error recovery now conforms to documentation and to POSIX
    353   When a Bison-generated parser encounters a syntax error, it now pops
    354   the stack until it finds a state that allows shifting the error
    355   token.  Formerly, it popped the stack until it found a state that
    356   allowed some non-error action other than a default reduction on the
    357   error token.  The new behavior has long been the documented behavior,
    358   and has long been required by POSIX.  For more details, please see
    359   Paul Eggert, "Reductions during Bison error handling" (2002-05-20)
    360   <http://lists.gnu.org/archive/html/bug-bison/2002-05/msg00038.html>.
    361 
    362 * Traces
    363   Popped tokens and nonterminals are now reported.
    364 
    365 * Larger grammars
    366   Larger grammars are now supported (larger token numbers, larger grammar
    367   size (= sum of the LHS and RHS lengths), larger LALR tables).
    368   Formerly, many of these numbers ran afoul of 16-bit limits;
    369   now these limits are 32 bits on most hosts.
    370 
    371 * Explicit initial rule
    372   Bison used to play hacks with the initial rule, which the user does
    373   not write.  It is now explicit, and visible in the reports and
    374   graphs as rule 0.
    375 
    376 * Useless rules
    377   Before, Bison reported the useless rules, but, although not used,
    378   included them in the parsers.  They are now actually removed.
    379 
    380 * Useless rules, useless nonterminals
    381   They are now reported, as a warning, with their locations.
    382 
    383 * Rules never reduced
    384   Rules that can never be reduced because of conflicts are now
    385   reported.
    386 
    387 * Incorrect `Token not used'
    388   On a grammar such as
    389 
    390            %token useless useful
    391            %%
    392            exp: '0' %prec useful;
    393 
    394   where a token was used to set the precedence of the last rule,
    395   bison reported both `useful' and `useless' as useless tokens.
    396 
    397 * Revert the C++ namespace changes introduced in 1.31
    398   as they caused too many portability hassles.
    399 
    400 * Default locations
    401   By an accident of design, the default computation of @$ was
    402   performed after another default computation was performed: @$ = @1.
    403   The latter is now removed: YYLLOC_DEFAULT is fully responsible of
    404   the computation of @$.
    405 
    406 * Token end-of-file
    407   The token end of file may be specified by the user, in which case,
    408   the user symbol is used in the reports, the graphs, and the verbose
    409   error messages instead of `$end', which remains being the default.
    410   For instance
    411      %token MYEOF 0
    412   or
    413      %token MYEOF 0 "end of file"
    414 
    415 * Semantic parser
    416   This old option, which has been broken for ages, is removed.
    417 
    418 * New translations
    419   Brazilian Portuguese, thanks to Alexandre Folle de Menezes.
    420   Croatian, thanks to Denis Lackovic.
    421 
    422 * Incorrect token definitions
    423   When given `%token 'a' "A"', Bison used to output `#define 'a' 65'.
    424 
    425 * Token definitions as enums
    426   Tokens are output both as the traditional #define's, and, provided
    427   the compiler supports ANSI C or is a C++ compiler, as enums.
    428   This lets debuggers display names instead of integers.
    429 
    430 * Reports
    431   In addition to --verbose, bison supports --report=THINGS, which
    432   produces additional information:
    433   - itemset
    434     complete the core item sets with their closure
    435   - lookahead [changed to `look-ahead' in 1.875e and later]
    436     explicitly associate look-ahead tokens to items
    437   - solved
    438     describe shift/reduce conflicts solving.
    439     Bison used to systematically output this information on top of
    440     the report.  Solved conflicts are now attached to their states.
    441 
    442 * Type clashes
    443   Previous versions don't complain when there is a type clash on
    444   the default action if the rule has a mid-rule action, such as in:
    445 
    446       %type <foo> bar
    447       %%
    448       bar: '0' {} '0';
    449 
    450   This is fixed.
    451 
    452 * GNU M4 is now required when using Bison.
    453 
    455 Changes in version 1.35, 2002-03-25:
    456 
    457 * C Skeleton
    458   Some projects use Bison's C parser with C++ compilers, and define
    459   YYSTYPE as a class.  The recent adjustment of C parsers for data
    460   alignment and 64 bit architectures made this impossible.
    461 
    462   Because for the time being no real solution for C++ parser
    463   generation exists, kludges were implemented in the parser to
    464   maintain this use.  In the future, when Bison has C++ parsers, this
    465   kludge will be disabled.
    466 
    467   This kludge also addresses some C++ problems when the stack was
    468   extended.
    469 
    471 Changes in version 1.34, 2002-03-12:
    472 
    473 * File name clashes are detected
    474   $ bison foo.y -d -o foo.x
    475   fatal error: header and parser would both be named `foo.x'
    476 
    477 * A missing `;' at the end of a rule triggers a warning
    478   In accordance with POSIX, and in agreement with other
    479   Yacc implementations, Bison will mandate this semicolon in the near
    480   future.  This eases the implementation of a Bison parser of Bison
    481   grammars by making this grammar LALR(1) instead of LR(2).  To
    482   facilitate the transition, this release introduces a warning.
    483 
    484 * Revert the C++ namespace changes introduced in 1.31, as they caused too
    485   many portability hassles.
    486 
    487 * DJGPP support added.
    488 
    489 * Fix test suite portability problems.
    490 
    492 Changes in version 1.33, 2002-02-07:
    493 
    494 * Fix C++ issues
    495   Groff could not be compiled for the definition of size_t was lacking
    496   under some conditions.
    497 
    498 * Catch invalid @n
    499   As is done with $n.
    500 
    502 Changes in version 1.32, 2002-01-23:
    503 
    504 * Fix Yacc output file names
    505 
    506 * Portability fixes
    507 
    508 * Italian, Dutch translations
    509 
    511 Changes in version 1.31, 2002-01-14:
    512 
    513 * Many Bug Fixes
    514 
    515 * GNU Gettext and %expect
    516   GNU Gettext asserts 10 s/r conflicts, but there are 7.  Now that
    517   Bison dies on incorrect %expectations, we fear there will be
    518   too many bug reports for Gettext, so _for the time being_, %expect
    519   does not trigger an error when the input file is named `plural.y'.
    520 
    521 * Use of alloca in parsers
    522   If YYSTACK_USE_ALLOCA is defined to 0, then the parsers will use
    523   malloc exclusively.  Since 1.29, but was not NEWS'ed.
    524 
    525   alloca is used only when compiled with GCC, to avoid portability
    526   problems as on AIX.
    527 
    528 * yyparse now returns 2 if memory is exhausted; formerly it dumped core.
    529 
    530 * When the generated parser lacks debugging code, YYDEBUG is now 0
    531   (as POSIX requires) instead of being undefined.
    532 
    533 * User Actions
    534   Bison has always permitted actions such as { $$ = $1 }: it adds the
    535   ending semicolon.  Now if in Yacc compatibility mode, the semicolon
    536   is no longer output: one has to write { $$ = $1; }.
    537 
    538 * Better C++ compliance
    539   The output parsers try to respect C++ namespaces.
    540   [This turned out to be a failed experiment, and it was reverted later.]
    541 
    542 * Reduced Grammars
    543   Fixed bugs when reporting useless nonterminals.
    544 
    545 * 64 bit hosts
    546   The parsers work properly on 64 bit hosts.
    547 
    548 * Error messages
    549   Some calls to strerror resulted in scrambled or missing error messages.
    550 
    551 * %expect
    552   When the number of shift/reduce conflicts is correct, don't issue
    553   any warning.
    554 
    555 * The verbose report includes the rule line numbers.
    556 
    557 * Rule line numbers are fixed in traces.
    558 
    559 * Swedish translation
    560 
    561 * Parse errors
    562   Verbose parse error messages from the parsers are better looking.
    563   Before: parse error: unexpected `'/'', expecting `"number"' or `'-'' or `'(''
    564      Now: parse error: unexpected '/', expecting "number" or '-' or '('
    565 
    566 * Fixed parser memory leaks.
    567   When the generated parser was using malloc to extend its stacks, the
    568   previous allocations were not freed.
    569 
    570 * Fixed verbose output file.
    571   Some newlines were missing.
    572   Some conflicts in state descriptions were missing.
    573 
    574 * Fixed conflict report.
    575   Option -v was needed to get the result.
    576 
    577 * %expect
    578   Was not used.
    579   Mismatches are errors, not warnings.
    580 
    581 * Fixed incorrect processing of some invalid input.
    582 
    583 * Fixed CPP guards: 9foo.h uses BISON_9FOO_H instead of 9FOO_H.
    584 
    585 * Fixed some typos in the documentation.
    586 
    587 * %token MY_EOF 0 is supported.
    588   Before, MY_EOF was silently renumbered as 257.
    589 
    590 * doc/refcard.tex is updated.
    591 
    592 * %output, %file-prefix, %name-prefix.
    593   New.
    594 
    595 * --output
    596   New, aliasing `--output-file'.
    597 
    599 Changes in version 1.30, 2001-10-26:
    600 
    601 * `--defines' and `--graph' have now an optional argument which is the
    602   output file name. `-d' and `-g' do not change; they do not take any
    603   argument.
    604 
    605 * `%source_extension' and `%header_extension' are removed, failed
    606   experiment.
    607 
    608 * Portability fixes.
    609 
    611 Changes in version 1.29, 2001-09-07:
    612 
    613 * The output file does not define const, as this caused problems when used
    614   with common autoconfiguration schemes.  If you still use ancient compilers
    615   that lack const, compile with the equivalent of the C compiler option
    616   `-Dconst='.  autoconf's AC_C_CONST macro provides one way to do this.
    617 
    618 * Added `-g' and `--graph'.
    619 
    620 * The Bison manual is now distributed under the terms of the GNU FDL.
    621 
    622 * The input and the output files has automatically a similar extension.
    623 
    624 * Russian translation added.
    625 
    626 * NLS support updated; should hopefully be less troublesome.
    627 
    628 * Added the old Bison reference card.
    629 
    630 * Added `--locations' and `%locations'.
    631 
    632 * Added `-S' and `--skeleton'.
    633 
    634 * `%raw', `-r', `--raw' is disabled.
    635 
    636 * Special characters are escaped when output.  This solves the problems
    637   of the #line lines with path names including backslashes.
    638 
    639 * New directives.
    640   `%yacc', `%fixed_output_files', `%defines', `%no_parser', `%verbose',
    641   `%debug', `%source_extension' and `%header_extension'.
    642 
    643 * @$
    644   Automatic location tracking.
    645 
    647 Changes in version 1.28, 1999-07-06:
    648 
    649 * Should compile better now with K&R compilers.
    650 
    651 * Added NLS.
    652 
    653 * Fixed a problem with escaping the double quote character.
    654 
    655 * There is now a FAQ.
    656 
    658 Changes in version 1.27:
    659 
    660 * The make rule which prevented bison.simple from being created on
    661   some systems has been fixed.
    662 
    664 Changes in version 1.26:
    665 
    666 * Bison now uses automake.
    667 
    668 * New mailing lists: <bug-bison (a] gnu.org> and <help-bison (a] gnu.org>.
    669 
    670 * Token numbers now start at 257 as previously documented, not 258.
    671 
    672 * Bison honors the TMPDIR environment variable.
    673 
    674 * A couple of buffer overruns have been fixed.
    675 
    676 * Problems when closing files should now be reported.
    677 
    678 * Generated parsers should now work even on operating systems which do
    679   not provide alloca().
    680 
    682 Changes in version 1.25, 1995-10-16:
    683 
    684 * Errors in the input grammar are not fatal; Bison keeps reading
    685 the grammar file, and reports all the errors found in it.
    686 
    687 * Tokens can now be specified as multiple-character strings: for
    688 example, you could use "<=" for a token which looks like <=, instead
    689 of chosing a name like LESSEQ.
    690 
    691 * The %token_table declaration says to write a table of tokens (names
    692 and numbers) into the parser file.  The yylex function can use this
    693 table to recognize multiple-character string tokens, or for other
    694 purposes.
    695 
    696 * The %no_lines declaration says not to generate any #line preprocessor
    697 directives in the parser file.
    698 
    699 * The %raw declaration says to use internal Bison token numbers, not
    700 Yacc-compatible token numbers, when token names are defined as macros.
    701 
    702 * The --no-parser option produces the parser tables without including
    703 the parser engine; a project can now use its own parser engine.
    704 The actions go into a separate file called NAME.act, in the form of
    705 a switch statement body.
    706 
    708 Changes in version 1.23:
    709 
    710 The user can define YYPARSE_PARAM as the name of an argument to be
    711 passed into yyparse.  The argument should have type void *.  It should
    712 actually point to an object.  Grammar actions can access the variable
    713 by casting it to the proper pointer type.
    714 
    715 Line numbers in output file corrected.
    716 
    718 Changes in version 1.22:
    719 
    720 --help option added.
    721 
    723 Changes in version 1.20:
    724 
    725 Output file does not redefine const for C++.
    726 
    727 Local Variables:
    728 mode: outline
    729 End:
    730 
    731 -----
    732 
    733 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
    734 2004, 2005, 2006 Free Software Foundation, Inc.
    735 
    736 This file is part of Bison, the GNU Compiler Compiler.
    737 
    738 Bison is free software; you can redistribute it and/or modify
    739 it under the terms of the GNU General Public License as published by
    740 the Free Software Foundation; either version 2, or (at your option)
    741 any later version.
    742 
    743 Bison is distributed in the hope that it will be useful,
    744 but WITHOUT ANY WARRANTY; without even the implied warranty of
    745 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    746 GNU General Public License for more details.
    747 
    748 You should have received a copy of the GNU General Public License
    749 along with autoconf; see the file COPYING.  If not, write to
    750 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    751 Boston, MA 02110-1301, USA.
    752