Changeset 8207

Show
Ignore:
Timestamp:
12/13/05 11:24:11 (3 years ago)
Author:
gaal
Message:

* minor refactoring: type PadMutator? = (Pad -> Pad)

Location:
src/Pugs
Files:
7 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/AST.hs

    r8153 r8207  
    101101(Is this correct?) 
    102102-} 
    103 genMultiSym :: MonadSTM m => String -> VRef -> m (Pad -> Pad) 
     103genMultiSym :: MonadSTM m => String -> VRef -> m PadMutator 
    104104genMultiSym name ref = do 
    105105    tvar    <- liftSTM $ newTVar ref 
     
    114114(right?), shadowing any earlier or outer definition. 
    115115-} 
    116 genSym :: MonadSTM m => String -> VRef -> m (Pad -> Pad) 
     116genSym :: MonadSTM m => String -> VRef -> m PadMutator 
    117117genSym name ref = do 
    118118    tvar    <- liftSTM $ newTVar ref 
  • src/Pugs/AST/Internals.hs

    r8161 r8207  
    1313    EvalT(..), ContT(..), 
    1414 
    15     Pad(..), -- uses Var, TVar, VRef 
     15    Pad(..), PadMutator, -- uses Var, TVar, VRef 
    1616    Param(..), -- uses Cxt, Exp 
    1717    Params, -- uses Param 
     
    11591159listToPad = MkPad . Map.fromList 
    11601160 
     1161-- | type for a function introducing a change to a Pad 
     1162type PadMutator = (Pad -> Pad) 
     1163 
    11611164{- Eval Monad -} 
    11621165-- type Eval x = EvalT (ContT Val (ReaderT Env SIO)) x 
  • src/Pugs/AST/Pad.hs

    r3962 r8207  
    4545-} 
    4646updateSubPad :: VCode        -- ^ Initial sub 
    47              -> (Pad -> Pad) -- ^ 'Pad'-transforming function 
     47             -> PadMutator  -- ^ 'Pad'-transforming function 
    4848             -> VCode        -- ^ Sub with altered lexical pad 
    4949updateSubPad sub f = sub 
  • src/Pugs/Eval.hs

    r8153 r8207  
    5151emptyEnv :: (MonadIO m, MonadSTM m)  
    5252         => String             -- ^ Name associated with the environment 
    53          -> [STM (Pad -> Pad)] -- ^ List of 'Pad'-mutating transactions used 
     53         -> [STM PadMutator]  -- ^ List of 'Pad'-mutating transactions used 
    5454                               --     to declare an initial set of global 
    5555                               --     variables 
     
    158158Used by 'reduceSym'. 
    159159-} 
    160 addGlobalSym :: (Pad -> Pad) -- ^ 'Pad'-transformer that will insert the new 
    161                              --     symbol 
     160addGlobalSym :: PadMutator -- ^ 'Pad'-transformer that will insert the new 
     161                           --     symbol 
    162162             -> Eval () 
    163163addGlobalSym newSym = do 
     
    986986            { envCaller = Just env 
    987987            , envDepth = envDepth env + 1 } 
    988     doBind :: [Pad -> Pad] -> [(Param, Exp)] -> Eval ([Pad -> Pad], [ApplyArg]) 
     988    doBind :: [PadMutator] -> [(Param, Exp)] -> Eval ([PadMutator], [ApplyArg]) 
    989989    doBind syms [] = return (syms, []) 
    990990    doBind syms ((prm, exp):rest) = do 
  • src/Pugs/Monads.hs

    r7190 r8207  
    5454(Subsequent chained 'Eval's do /not/ see this new scope.) 
    5555-} 
    56 enterLex :: [Pad -> Pad] -- ^ Transformations on current 'Pad' to produce the 
     56enterLex :: [PadMutator] -- ^ Transformations on current 'Pad' to produce the 
    5757                         --     new 'Pad'. 
    5858         -> Eval a       -- ^ Evaluation to be performed in the new scope 
     
    167167                                    --     (must have leading @&@ sigil) 
    168168           -> ([Val] -> Eval Val)   -- ^ The actual primitive to wrap 
    169            -> ((Pad -> Pad) -> m t) -- ^ A (lambda) function that the 'Pad' 
     169           -> (PadMutator -> m t)  -- ^ A (lambda) function that the 'Pad' 
    170170                                    --     transformer is given to 
    171171           -> m t -- ^ Result of passing the pad-transformer to the \'action\' 
     
    188188-} 
    189189genSymCC :: String -- ^ Name of the primitive in the symbol table ('Pad'). 
    190          -> ((Pad -> Pad) -> Eval Val) -- ^ An \'action\' function that will 
     190         -> (PadMutator -> Eval Val)  -- ^ An \'action\' function that will 
    191191                                       --     take the pad-transformer and use 
    192192                                       --     it to perform some evaluation  
     
    263263        } 
    264264 
    265 genSubs :: t -> Var -> (t -> VCode) -> Eval [Pad -> Pad] 
     265genSubs :: t -> Var -> (t -> VCode) -> Eval [PadMutator] 
    266266genSubs env name gen = sequence 
    267267    [ genMultiSym name (codeRef $ gen env) 
  • src/Pugs/Prim.hs

    r8121 r8207  
    13121312-- The Pad symbol name is prefixed with \"&*\" for functions and 
    13131313-- \"&*\" ~ fixity ~ \":\" for operators. 
    1314 primOp :: String -> String -> Params -> String -> Bool -> STM (Pad -> Pad) 
     1314primOp :: String -> String -> Params -> String -> Bool -> STM (PadMutator) 
    13151315primOp sym assoc prms ret isSafe = 
    13161316    -- In safemode, we filter all prims marked as "unsafe". 
     
    13621362 
    13631363-- |Produce a Pad update transaction with 'primOp' from a string description 
    1364 primDecl :: String -> STM (Pad -> Pad) 
     1364primDecl :: String -> STM PadMutator 
    13651365primDecl str = primOp sym assoc params ret (safe == "safe") 
    13661366    where 
     
    14281428-- 
    14291429-- >  ret_val   assoc   op_name [safe|unsafe] args 
    1430 initSyms :: STM [Pad -> Pad] 
     1430initSyms :: STM [PadMutator] 
    14311431initSyms = mapM primDecl syms 
    14321432    where 
  • src/Pugs/Run.hs

    r7843 r8207  
    165165    hideInSafemode x = if safeMode then MkRef $ constScalar undef else x 
    166166 
    167 initClassObjects :: [Type] -> ClassTree -> IO [STM (Pad -> Pad)] 
     167initClassObjects :: [Type] -> ClassTree -> IO [STM PadMutator] 
    168168initClassObjects parent (Node typ children) = do 
    169169    obj     <- createObject (mkType "Class") $