Changeset 12153 for src/Pugs/Val

Show
Ignore:
Timestamp:
08/12/06 08:28:23 (2 years ago)
Author:
gaal
Message:

* TimToady?++ observes that LEAVE traits may be interleaved with

KEEP/UNDO. Turn exit blocks into one tagged list.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Val/Code.hs

    r12152 r12153  
    2626        , c_postBlocks        :: [Code] 
    2727        , c_enterBlocks       :: [Code]    -- ^ AOPish hooks 
    28         , c_leaveBlocks       :: [Code] 
     28        , c_leaveBlocks       :: [CodeLeave] 
    2929        , c_firstBlocks       :: [Code] 
    3030        , c_lastBlocks        :: [Code] 
    3131        , c_nextBlocks        :: [Code] 
    32         , c_keepBlocks        :: [Code] 
    33         , c_undoBlocks        :: [Code] 
    3432        , c_catchBlock        :: Maybe Code 
    3533        , c_controlBlock      :: Maybe Code 
     
    4240        , c_isSafe            :: Bool 
    4341        } 
     42    deriving (Show, Eq, Ord, Data, Typeable) {-!derive: YAML_Pos, Perl6Class, MooseClass!-} 
     43 
     44-- | Block exit traits may be interleaved, so tag them by type 
     45data CodeLeave 
     46    = LeaveNormal Code        -- ^ LEAVE block 
     47    | LeaveKeep   Code        -- ^ KEEP block 
     48    | LeaveUndo   Code        -- ^ UNDO block 
    4449    deriving (Show, Eq, Ord, Data, Typeable) {-!derive: YAML_Pos, Perl6Class, MooseClass!-} 
    4550