Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Parser/lex.ll

    r533804b r5b2edbc  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Wed Jul 12 18:04:44 2017
    13  * Update Count     : 535
     12 * Last Modified On : Tue Aug 22 22:43:39 2017
     13 * Update Count     : 558
    1414 */
    1515
    1616%option yylineno
     17%option noyywrap
    1718%option nounput
    1819
     
    4445#define NUMERIC_RETURN(x)       rm_underscore(); RETURN_VAL( x ) // numeric constant
    4546#define KEYWORD_RETURN(x)       RETURN_CHAR( x )                        // keyword
     47#define QKEYWORD_RETURN(x)      typedefTable.isKind( yytext ); RETURN_VAL(x); // quasi-keyword
    4648#define IDENTIFIER_RETURN()     RETURN_VAL( typedefTable.isKind( yytext ) )
    4749#define ATTRIBUTE_RETURN()      RETURN_VAL( ATTR_IDENTIFIER )
     
    125127op_unary {op_unary_only}|{op_unary_binary}|{op_unary_pre_post}
    126128
    127 op_binary_only "/"|"%"|"^"|"&"|"|"|"<"|">"|"="|"=="|"!="|"<<"|">>"|"<="|">="|"+="|"-="|"*="|"/="|"%="|"&="|"|="|"^="|"<<="|">>="
     129op_binary_only "/"|"%"|"\\"|"^"|"&"|"|"|"<"|">"|"="|"=="|"!="|"<<"|">>"|"<="|">="|"+="|"-="|"*="|"/="|"%="|"\\="|"&="|"|="|"^="|"<<="|">>="
    128130op_binary_over {op_unary_binary}|{op_binary_only}
    129131                                // op_binary_not_over "?"|"->"|"."|"&&"|"||"|"@="
     
    136138
    137139%%
    138                                    /* line directives */
     140                                /* line directives */
    139141^{h_white}*"#"{h_white}*[0-9]+{h_white}*["][^"\n]+["].*"\n" {
    140142        /* " stop highlighting */
     
    232234int                             { KEYWORD_RETURN(INT); }
    233235__int128                { KEYWORD_RETURN(INT); }                                // GCC
     236__int128_t              { KEYWORD_RETURN(INT); }                                // GCC
    234237__label__               { KEYWORD_RETURN(LABEL); }                              // GCC
    235238long                    { KEYWORD_RETURN(LONG); }
     239lvalue                  { KEYWORD_RETURN(LVALUE); }                             // CFA
    236240monitor                 { KEYWORD_RETURN(MONITOR); }                    // CFA
    237241mutex                   { KEYWORD_RETURN(MUTEX); }                              // CFA
     
    258262throw                   { KEYWORD_RETURN(THROW); }                              // CFA
    259263throwResume             { KEYWORD_RETURN(THROWRESUME); }                // CFA
     264timeout                 { QKEYWORD_RETURN(TIMEOUT); }                   // CFA
    260265trait                   { KEYWORD_RETURN(TRAIT); }                              // CFA
    261266try                             { KEYWORD_RETURN(TRY); }                                // CFA
     
    265270__typeof                { KEYWORD_RETURN(TYPEOF); }                             // GCC
    266271__typeof__              { KEYWORD_RETURN(TYPEOF); }                             // GCC
     272__uint128_t             { KEYWORD_RETURN(INT); }                                // GCC
    267273union                   { KEYWORD_RETURN(UNION); }
    268274unsigned                { KEYWORD_RETURN(UNSIGNED); }
    269275__builtin_va_list { KEYWORD_RETURN(VALIST); }                   // GCC
     276virtual                 { KEYWORD_RETURN(VIRTUAL); }                    // CFA
    270277void                    { KEYWORD_RETURN(VOID); }
    271278volatile                { KEYWORD_RETURN(VOLATILE); }
    272279__volatile              { KEYWORD_RETURN(VOLATILE); }                   // GCC
    273280__volatile__    { KEYWORD_RETURN(VOLATILE); }                   // GCC
     281waitfor                 { KEYWORD_RETURN(WAITFOR); }
     282or                              { QKEYWORD_RETURN(WOR); }                               // CFA
     283when                    { KEYWORD_RETURN(WHEN); }
    274284while                   { KEYWORD_RETURN(WHILE); }
    275285with                    { KEYWORD_RETURN(WITH); }                               // CFA
     
    284294
    285295                                /* numeric constants */
    286 "0"                             { NUMERIC_RETURN(ZERO); }                               // CFA
    287 "1"                             { NUMERIC_RETURN(ONE); }                                // CFA
    288296{decimal_constant} { NUMERIC_RETURN(INTEGERconstant); }
    289297{octal_constant} { NUMERIC_RETURN(INTEGERconstant); }
     
    336344"-"                             { ASCIIOP_RETURN(); }
    337345"*"                             { ASCIIOP_RETURN(); }
     346"\\"                    { ASCIIOP_RETURN(); }                                   // CFA, exponentiation
    338347"/"                             { ASCIIOP_RETURN(); }
    339348"%"                             { ASCIIOP_RETURN(); }
     
    360369"+="                    { NAMEDOP_RETURN(PLUSassign); }
    361370"-="                    { NAMEDOP_RETURN(MINUSassign); }
     371"\\="                   { NAMEDOP_RETURN(EXPassign); }                  // CFA, exponentiation
    362372"*="                    { NAMEDOP_RETURN(MULTassign); }
    363373"/="                    { NAMEDOP_RETURN(DIVassign); }
     
    414424
    415425                                /* unknown characters */
    416 .                       { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
     426.                               { printf("unknown character(s):\"%s\" on line %d\n", yytext, yylineno); }
    417427
    418428%%
Note: See TracChangeset for help on using the changeset viewer.