Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/lex.ll

    rb6ad601 re15853c  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Thu Nov  1 20:57:35 2018
    13  * Update Count     : 687
     12 * Last Modified On : Wed Feb 13 17:33:53 2019
     13 * Update Count     : 702
    1414 */
    1515
     
    3939using namespace std;
    4040
     41#include "config.h"                                                                             // configure info
    4142#include "ParseNode.h"
    4243#include "TypedefTable.h"
     
    5960#define IDENTIFIER_RETURN()     RETURN_VAL( typedefTable.isKind( yytext ) )
    6061#define ATTRIBUTE_RETURN()      RETURN_VAL( ATTR_IDENTIFIER )
     62
     63#ifdef HAVE_KEYWORDS_FLOATXX                                                            // GCC >= 7 => keyword, otherwise typedef
     64#define FLOATXX(v) KEYWORD_RETURN(v);
     65#else
     66#define FLOATXX(v) IDENTIFIER_RETURN();
     67#endif // HAVE_KEYWORDS_FLOATXX
    6168
    6269void rm_underscore() {
     
    112119                                // GCC: D (double) and iI (imaginary) suffixes, and DL (long double)
    113120exponent "_"?[eE]"_"?[+-]?{decimal_digits}
    114 floating_size 32|64|80|128
    115 floating_length ([fFdDlL]|[lL]{floating_size})
     121floating_size 16|32|32x|64|64x|80|128|128x
     122floating_length ([fFdDlLwWqQ]|[fF]{floating_size})
    116123floating_suffix ({floating_length}?[iI]?)|([iI]{floating_length})
    117124floating_suffix_opt ("_"?({floating_suffix}|"DL"))?
     
    240247finally                 { KEYWORD_RETURN(FINALLY); }                    // CFA
    241248float                   { KEYWORD_RETURN(FLOAT); }
    242 _Float32                { KEYWORD_RETURN(FLOAT); }                              // GCC
    243 _Float32x               { KEYWORD_RETURN(FLOAT); }                              // GCC
    244 _Float64                { KEYWORD_RETURN(DOUBLE); }                             // GCC
    245 _Float64x               { KEYWORD_RETURN(DOUBLE); }                             // GCC
    246 __float80               { KEYWORD_RETURN(FLOAT80); }                    // GCC
    247 float80                 { KEYWORD_RETURN(FLOAT80); }                    // GCC
    248 _Float128               { KEYWORD_RETURN(FLOAT128); }                   // GCC
    249 _Float128x              { KEYWORD_RETURN(FLOAT128); }                   // GCC
    250 __float128              { KEYWORD_RETURN(FLOAT128); }                   // GCC
    251 float128                { KEYWORD_RETURN(FLOAT128); }                   // GCC
     249__float80               { KEYWORD_RETURN(uuFLOAT80); }                  // GCC
     250float80                 { KEYWORD_RETURN(uuFLOAT80); }                  // GCC
     251__float128              { KEYWORD_RETURN(uuFLOAT128); }                 // GCC
     252float128                { KEYWORD_RETURN(uuFLOAT128); }                 // GCC
     253_Float16                { FLOATXX(uFLOAT16); }                                  // GCC
     254_Float32                { FLOATXX(uFLOAT32); }                                  // GCC
     255_Float32x               { FLOATXX(uFLOAT32X); }                                 // GCC
     256_Float64                { FLOATXX(uFLOAT64); }                                  // GCC
     257_Float64x               { FLOATXX(uFLOAT64X); }                                 // GCC
     258_Float128               { FLOATXX(uFLOAT128); }                                 // GCC
     259_Float128x              { FLOATXX(uFLOAT128); }                                 // GCC
    252260for                             { KEYWORD_RETURN(FOR); }
    253261forall                  { KEYWORD_RETURN(FORALL); }                             // CFA
Note: See TracChangeset for help on using the changeset viewer.