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