X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/9b5049bd074ec26af9e216fd95eb8d618e3601a4..7d424de14c0385012d328642bec6874c8e6cef17:/NEWS diff --git a/NEWS b/NEWS index 7097f3bd..e5ebfe4b 100644 --- a/NEWS +++ b/NEWS @@ -6,7 +6,7 @@ Bison News ** Additional yylex/yyparse arguments The new directive %param declare additional argument to both yylex - and yyparse. The %lex-param, %parse-param, and %param directive + and yyparse. The %lex-param, %parse-param, and %param directives support one or more arguments. Instead of %lex-param {arg1_type *arg1} @@ -230,6 +230,48 @@ Bison News determine which destructor to call for the lookahead upon a syntax error or upon parser return. This bug has been fixed. +** C++ parsers use YYRHSLOC + + Similarly to the C parsers, the C++ parsers now define the YYRHSLOC + macro and use it in the default YYLLOC_DEFAULT. You are encouraged + to use it. If, for instance, your location structure has "first" + and "last" members, instead of + + # define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (N) \ + { \ + (Current).first = (Rhs)[1].location.first; \ + (Current).last = (Rhs)[N].location.last; \ + } \ + else \ + { \ + (Current).first = (Current).last = (Rhs)[0].location.last; \ + } \ + while (false) + + use: + + # define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (N) \ + { \ + (Current).first = YYRHSLOC (Rhs, 1).first; \ + (Current).last = YYRHSLOC (Rhs, N).last; \ + } \ + else \ + { \ + (Current).first = (Current).last = YYRHSLOC (Rhs, 0).last; \ + } \ + while (false) + +** YYLLOC_DEFAULT in C++ + + The default implementation of YYLLOC_DEFAULT used to be issued in + the header file. It is now output in the implementation file, after + the user %code sections so that its #ifndef guard does not try to + override the user's YYLLOC_DEFAULT if provided. + * Changes in version 2.4.3 (????-??-??): ** Problems with spawning M4 on at least FreeBSD 8 and FreeBSD 9 have @@ -1386,7 +1428,9 @@ End: ----- -Copyright (C) 1995-2010 Free Software Foundation, Inc. +Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, +Inc. This file is part of Bison, the GNU Parser Generator.