Changeset ba01b14 for src/Parser/lex.ll


Ignore:
Timestamp:
Feb 11, 2019, 6:46:56 PM (5 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, persistent-indexer, pthread-emulation, qualifiedEnum
Children:
cdcddfe1
Parents:
0e66857
Message:

update constant parsing add _FloatNN

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/lex.ll

    r0e66857 rba01b14  
    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 : Mon Feb  4 22:49:19 2019
     13 * Update Count     : 701
    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
    246249__float80               { KEYWORD_RETURN(FLOAT80); }                    // GCC
    247250float80                 { KEYWORD_RETURN(FLOAT80); }                    // GCC
    248 _Float128               { KEYWORD_RETURN(FLOAT128); }                   // GCC
    249 _Float128x              { KEYWORD_RETURN(FLOAT128); }                   // GCC
    250251__float128              { KEYWORD_RETURN(FLOAT128); }                   // GCC
    251252float128                { KEYWORD_RETURN(FLOAT128); }                   // GCC
     253_Float16                { FLOATXX(_FLOAT16); }                                  // GCC
     254_Float32                { FLOATXX(_FLOAT32); }                                  // GCC
     255_Float32x               { FLOATXX(_FLOAT32X); }                                 // GCC
     256_Float64                { FLOATXX(_FLOAT64); }                                  // GCC
     257_Float64x               { FLOATXX(_FLOAT64X); }                                 // GCC
     258_Float128               { FLOATXX(_FLOAT128); }                                 // GCC
     259_Float128x              { FLOATXX(_FLOAT128); }                                 // GCC
    252260for                             { KEYWORD_RETURN(FOR); }
    253261forall                  { KEYWORD_RETURN(FORALL); }                             // CFA
Note: See TracChangeset for help on using the changeset viewer.