X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/f38ae16f37251a4e69beecf0e7bfd8830715eb47..bb9191dd311e4c6d80f8dd12c6a7ce9254404fbc:/NEWS diff --git a/NEWS b/NEWS index 7097f3bd..cacdb770 100644 --- a/NEWS +++ b/NEWS @@ -3,10 +3,46 @@ 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 - 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}