From 27290b603576d04f1d6498b0ca509a84b81f193f Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Wed, 12 May 2010 10:06:59 +0200 Subject: [PATCH] NEWS: fix chronology. * NEWS (C++ parsers use YYRHSLOC): Move from ?.? to 2.5. --- NEWS | 78 ++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 36 deletions(-) diff --git a/NEWS b/NEWS index cacdb770..2da19c7b 100644 --- a/NEWS +++ b/NEWS @@ -3,42 +3,6 @@ Bison News * Changes in version ?.? (????-??-??): -** 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) - - ** Additional yylex/yyparse arguments The new directive %param declare additional argument to both yylex @@ -266,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 -- 2.45.2