Changeset 491 for trunk/thune/tokenize.c

Show
Ignore:
Timestamp:
10/20/07 18:18:45 (13 months ago)
Author:
krobillard
Message:

Macros are now created with caret followed by paren: (...)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/thune/tokenize.c

    r480 r491  
    400400                    goto dollar; 
    401401 
     402#ifdef UR_CONFIG_MACROS 
     403                case '^': 
     404                    ++it; 
     405                    if( it == end || *it != '(' ) 
     406                        goto word; 
     407                    // Fall through... 
     408#endif 
    402409                case '[': 
    403410                case '(': 
    404                 case '<': 
    405411                    ur_arrayReserve( &stack, sizeof(UIndex), stack.used+1 ); 
    406412                    STACK[ stack.used ] = ur_makeBlock( 0 ); 
     
    411417                        case '(': mode = UT_PAREN; break; 
    412418#ifdef UR_CONFIG_MACROS 
    413                         case '<': mode = UT_MACRO; 
     419                        case '^': mode = UT_MACRO; 
    414420#ifdef MACRO_CONTEXT 
    415421                            if( ! macroNest ) 
     
    434440                case ']': 
    435441                case ')': 
    436 #ifdef UR_CONFIG_MACROS 
    437                 case '>': 
    438 #endif 
    439442                    if( stack.used == 1 ) 
    440443                    { 
     
    448451                        sol = 0; 
    449452#ifdef UR_CONFIG_MACROS 
    450                     if( ch == '>' && macroNest ) 
     453                    if( ch == ')' && macroNest ) 
    451454                    { 
    452455                        UCell* otos; 
    453456                        UBlock* blk; 
    454457                        UIndex blkN; 
     458 
     459                        blk = BLOCK; 
     460                        if( (blk->used < 1) || 
     461                            (ur_type(blk->ptr.cells + blk->used - 1) != 
     462                                UT_MACRO) ) 
     463                            break; 
    455464 
    456465                        otos = UR_TOS; 
     
    467476                        } 
    468477 
    469                         blk = ur_blockPtr( STACK[stack.used - 1] ); 
     478                        blk = BLOCK; 
    470479                        --blk->used;    // Remove macro. 
    471480