[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bison 3.3.2 released [stable]

From: Akim Demaille
Subject: Re: Bison 3.3.2 released [stable]
Date: Mon, 4 Feb 2019 12:28:37 +0100

     Le 3 fA(c)vr. 2019 A  18:24, Frank Heckenbach
     <address@hidden> a A(c)crit :

     My only suggestion is about the wording in this announcement
     (and also in the manual):

     You are right, this is much better.  I'll install this:

     Thanks. However, this accouncement still contains the old wording,
     and the documentation (bison.texi:11672) similarly. Is this
     intentional or just an oversight?

   :(  Stupid oversight...  I copied/pasted the bottom of the previous
   announcement, completely forgetting about the update...  As for the
   doc, I didn't remember it looked the same.  I propose the following

   commit 8a1d89e07301a44a704be50fad1b6a39ff998448
   Author: Akim Demaille <address@hidden>
   Date:   Mon Feb 4 12:26:35 2019 +0100
       doc: clarify the purpose of symbol_type constructors

       Reported by Frank Heckenbach.

       * doc/bison.texi (Complete Symbols): Here.
   diff --git a/doc/bison.texi b/doc/bison.texi
   index 279b73d2..c241473b 100644
   --- a/doc/bison.texi
   +++ b/doc/bison.texi
   @@ -11668,15 +11668,21 @@ symbol_type (int token, const int&, const
    symbol_type (int token, const location_type&);
    @end example

   -which should be used in a Flex-scanner as follows.
   +Correct matching between token types and value types is checked via
   address@hidden; for instance, @samp{symbol_type (ID, 42)} would abort.
   +constructors are preferable (see below), as they offer better type
   +(for instance @samp{make_ID (42)} would not even compile), but
   +constructors may help when token types are discovered at run-time,

   -[a-z]+   return yy::parser::symbol_type (TOK_IDENTIFIER, yytext, loc);
   -[0-9]+   return yy::parser::symbol_type (TOK_INTEGER, text_to_int
   (yytext), loc);
   -":"      return yy::parser::symbol_type (':', loc);
   -<<EOF>>  return yy::parser::symbol_type (0, loc);
   +[a-z]+   @{
   +           if (auto i = lookup_keyword (yytext))
   +             return yy::parser::symbol_type (i, loc);
   +           else
   +             return yy::parser::make_ID (yytext, loc);
   +         @}
   address@hidden group
    @end example

    @sp 1
   Sorry, and thanks!

reply via email to

[Prev in Thread] Current Thread [Next in Thread]