Changeset 3443 for src/Pugs/AST/Internals.hs
- Timestamp:
- 05/19/05 17:57:17 (4 years ago)
- svk:copy_cache_prev:
- 5016
- Files:
-
- 1 modified
-
src/Pugs/AST/Internals.hs (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/AST/Internals.hs
r3372 r3443 54 54 retError, retControl, retEmpty, retIVar, readIVar, writeIVar, 55 55 fromVals, refType, 56 mkPad, lookupPad, padToList, diffPads, unionPads, 56 mkPad, lookupPad, padToList, diffPads, unionPads, subPad, updateSubPad, 57 57 mkPrim, mkSub, 58 58 cxtOfSigil, typeOfSigil, … … 679 679 , subName :: !String -- ^ Name of the closure 680 680 , subType :: !SubType -- ^ Type of the closure 681 , sub Pad :: !Pad-- ^ Lexical pad for sub\/method681 , subEnv :: !(Maybe Env) -- ^ Lexical pad for sub\/method 682 682 , subAssoc :: !String -- ^ Associativity 683 683 , subParams :: !Params -- ^ Parameters list … … 700 700 , subName = "&?" 701 701 , subType = SubPrim 702 , sub Pad = mkPad []702 , subEnv = Nothing 703 703 , subAssoc = "pre" 704 704 , subParams = [] … … 715 715 , subName = "&?" 716 716 , subType = SubBlock 717 , sub Pad = mkPad []717 , subEnv = Nothing 718 718 , subAssoc = "pre" 719 719 , subParams = [] … … 913 913 , envEval :: !(Exp -> Eval Val) -- ^ Active evaluator 914 914 , envCaller :: !(Maybe Env) -- ^ Caller's env 915 , envOuter :: !(Maybe Env) -- ^ Outer block's env 915 916 , envBody :: !Exp -- ^ Current AST expression 916 917 , envDepth :: !Int -- ^ Recursion depth … … 1003 1004 unionPads :: Pad -> Pad -> Pad 1004 1005 unionPads (MkPad map1) (MkPad map2) = MkPad $ Map.union map1 map2 1006 1007 updateSubPad :: VCode -> (Pad -> Pad) -> VCode 1008 updateSubPad sub f = sub 1009 { subEnv = fmap (\e -> e{ envLexical = f (subPad sub) }) (subEnv sub) 1010 } 1011 1012 subPad :: VCode -> Pad 1013 subPad sub = maybe (mkPad []) envLexical (subEnv sub) 1005 1014 1006 1015 type Eval x = EvalT (ContT Val (ReaderT Env SIO)) x
