Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/lex.ll

    r5b2edbc r533804b  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Tue Aug 22 22:43:39 2017
    13  * Update Count     : 558
     12 * Last Modified On : Wed Jul 12 18:04:44 2017
     13 * Update Count     : 535
    1414 */
    1515
    1616%option yylineno
    17 %option noyywrap
    1817%option nounput
    1918
     
    4544#define NUMERIC_RETURN(x)       rm_underscore(); RETURN_VAL( x ) // numeric constant
    4645#define KEYWORD_RETURN(x)       RETURN_CHAR( x )                        // keyword
    47 #define QKEYWORD_RETURN(x)      typedefTable.isKind( yytext ); RETURN_VAL(x); // quasi-keyword
    4846#define IDENTIFIER_RETURN()     RETURN_VAL( typedefTable.isKind( yytext ) )
    4947#define ATTRIBUTE_RETURN()      RETURN_VAL( ATTR_IDENTIFIER )
     
    127125op_unary {op_unary_only}|{op_unary_binary}|{op_unary_pre_post}
    128126
    129 op_binary_only "/"|"%"|"\\"|"^"|"&"|"|"|"<"|">"|"="|"=="|"!="|"<<"|">>"|"<="|">="|"+="|"-="|"*="|"/="|"%="|"\\="|"&="|"|="|"^="|"<<="|">>="
     127op_binary_only "/"|"%"|"^"|"&"|"|"|"<"|">"|"="|"=="|"!="|"<<"|">>"|"<="|">="|"+="|"-="|"*="|"/="|"%="|"&="|"|="|"^="|"<<="|">>="
    130128op_binary_over {op_unary_binary}|{op_binary_only}
    131129                                // op_binary_not_over "?"|"->"|"."|"&&"|"||"|"@="
     
    138136
    139137%%
    140                                 /* line directives */
     138                                   /* line directives */
    141139^{h_white}*"#"{h_white}*[0-9]+{h_white}*["][^"\n]+["].*"\n" {
    142140        /* " stop highlighting */
     
    234232int                             { KEYWORD_RETURN(INT); }
    235233__int128                { KEYWORD_RETURN(INT); }                                // GCC
    236 __int128_t              { KEYWORD_RETURN(INT); }                                // GCC
    237234__label__               { KEYWORD_RETURN(LABEL); }                              // GCC
    238235long                    { KEYWORD_RETURN(LONG); }
    239 lvalue                  { KEYWORD_RETURN(LVALUE); }                             // CFA
    240236monitor                 { KEYWORD_RETURN(MONITOR); }                    // CFA
    241237mutex                   { KEYWORD_RETURN(MUTEX); }                              // CFA
     
    262258throw                   { KEYWORD_RETURN(THROW); }                              // CFA
    263259throwResume             { KEYWORD_RETURN(THROWRESUME); }                // CFA
    264 timeout                 { QKEYWORD_RETURN(TIMEOUT); }                   // CFA
    265260trait                   { KEYWORD_RETURN(TRAIT); }                              // CFA
    266261try                             { KEYWORD_RETURN(TRY); }                                // CFA
     
    270265__typeof                { KEYWORD_RETURN(TYPEOF); }                             // GCC
    271266__typeof__              { KEYWORD_RETURN(TYPEOF); }                             // GCC
    272 __uint128_t             { KEYWORD_RETURN(INT); }                                // GCC
    273267union                   { KEYWORD_RETURN(UNION); }
    274268unsigned                { KEYWORD_RETURN(UNSIGNED); }
    275269__builtin_va_list { KEYWORD_RETURN(VALIST); }                   // GCC
    276 virtual                 { KEYWORD_RETURN(VIRTUAL); }                    // CFA
    277270void                    { KEYWORD_RETURN(VOID); }
    278271volatile                { KEYWORD_RETURN(VOLATILE); }
    279272__volatile              { KEYWORD_RETURN(VOLATILE); }                   // GCC
    280273__volatile__    { KEYWORD_RETURN(VOLATILE); }                   // GCC
    281 waitfor                 { KEYWORD_RETURN(WAITFOR); }
    282 or                              { QKEYWORD_RETURN(WOR); }                               // CFA
    283 when                    { KEYWORD_RETURN(WHEN); }
    284274while                   { KEYWORD_RETURN(WHILE); }
    285275with                    { KEYWORD_RETURN(WITH); }                               // CFA
     
    294284
    295285                                /* numeric constants */
     286"0"                             { NUMERIC_RETURN(ZERO); }                               // CFA
     287"1"                             { NUMERIC_RETURN(ONE); }                                // CFA
    296288{decimal_constant} { NUMERIC_RETURN(INTEGERconstant); }
    297289{octal_constant} { NUMERIC_RETURN(INTEGERconstant); }
     
    344336"-"                             { ASCIIOP_RETURN(); }
    345337"*"                             { ASCIIOP_RETURN(); }
    346 "\\"                    { ASCIIOP_RETURN(); }                                   // CFA, exponentiation
    347338"/"                             { ASCIIOP_RETURN(); }
    348339"%"                             { ASCIIOP_RETURN(); }
     
    369360"+="                    { NAMEDOP_RETURN(PLUSassign); }
    370361"-="                    { NAMEDOP_RETURN(MINUSassign); }
    371 "\\="                   { NAMEDOP_RETURN(EXPassign); }                  // CFA, exponentiation
    372362"*="                    { NAMEDOP_RETURN(MULTassign); }
    373363"/="                    { NAMEDOP_RETURN(DIVassign); }
     
    424414
    425415                                /* unknown characters */
    426 .                               { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
     416.                       { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    427417
    428418%%
Note: See TracChangeset for help on using the changeset viewer.