Changeset 15296 for src/Pugs/Eval
- Timestamp:
- 02/18/07 15:56:10 (21 months ago)
- Files:
-
- 1 modified
-
src/Pugs/Eval/Var.hs (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Eval/Var.hs
r15242 r15296 1 {-# OPTIONS_GHC -fglasgow-exts -cpp -fallow-overlapping-instances -funbox-strict-fields #-}1 {-# OPTIONS_GHC -fglasgow-exts -cpp -fallow-overlapping-instances -funbox-strict-fields -foverloaded-strings #-} 2 2 3 3 module Pugs.Eval.Var ( … … 43 43 retError "no such ENV variable" name 44 44 _ -> do 45 rv <- enterLValue (evalExp $ Syn "{}" [_Var "%*ENV", Val (VStr $ cast name)])45 rv <- enterLValue (evalExp $ _Syn "{}" [_Var "%*ENV", Val (VStr $ cast name)]) 46 46 tvar <- liftSTM . newTVar =<< fromVal rv 47 47 return (Just tvar) … … 98 98 vref <- liftSTM (readTVar tvref) 99 99 let val = VRef vref 100 return ( cast key, val)100 return (__(cast key), val) 101 101 padEntryToHashEntry (_, []) = fail "Nonexistant var in pad?" 102 102 … … 466 466 meta <- readRef ref 467 467 fetch <- doHash meta hash_fetchVal 468 fmap (map (cast :: String-> Pkg)) (fromVal =<< fetch "is")468 fmap (map (cast :: VStr -> Pkg)) (fromVal =<< fetch "is") 469 469 470 470 {-| … … 491 491 return $ subReturns sub 492 492 inferExpType (App (Var var) (Just inv) _) 493 | var == cast "&new"493 | var == _cast "&new" 494 494 = inferExpType $ unwrap inv 495 495 inferExpType (App (Var name) invs args) = do … … 548 548 magicalMap :: Map Var (Eval (Maybe Val)) 549 549 magicalMap = Map.fromList 550 [ ( cast "$?FILE" , posSym posName)551 , ( cast "$?LINE" , posSym posBeginLine)552 , ( cast "$?COLUMN" , posSym posBeginColumn)553 , ( cast "$?POSITION" , posSym pretty)554 , ( cast "$?MODULE" , constSym "Main")555 , ( cast "$?OS" , constSym (getConfig "osname"))556 , ( cast "$?CLASS" , fmap (Just . VType . cast) (asks envPackage))557 , ( cast ":?CLASS" , fmap (Just . VType . cast) (asks envPackage))558 , ( cast "$?PACKAGE" , fmap (Just . VType . cast) (asks envPackage))559 , ( cast ":?PACKAGE" , fmap (Just . VType . cast) (asks envPackage))560 , ( cast "$?ROLE" , fmap (Just . VType . cast) (asks envPackage))561 , ( cast ":?ROLE" , fmap (Just . VType . cast) (asks envPackage))550 [ (_cast "$?FILE" , posSym posName) 551 , (_cast "$?LINE" , posSym posBeginLine) 552 , (_cast "$?COLUMN" , posSym posBeginColumn) 553 , (_cast "$?POSITION" , posSym pretty) 554 , (_cast "$?MODULE" , constSym "Main") 555 , (_cast "$?OS" , constSym (getConfig "osname")) 556 , (_cast "$?CLASS" , fmap (Just . VType . cast) (asks envPackage)) 557 , (_cast ":?CLASS" , fmap (Just . VType . cast) (asks envPackage)) 558 , (_cast "$?PACKAGE" , fmap (Just . VType . cast) (asks envPackage)) 559 , (_cast ":?PACKAGE" , fmap (Just . VType . cast) (asks envPackage)) 560 , (_cast "$?ROLE" , fmap (Just . VType . cast) (asks envPackage)) 561 , (_cast ":?ROLE" , fmap (Just . VType . cast) (asks envPackage)) 562 562 ] 563 563 … … 566 566 567 567 constSym :: String -> Eval (Maybe Val) 568 constSym = return . Just . VStr568 constSym = return . Just . _VStr 569 569 570 570 findSyms :: Var -> Eval [(Var, Val)]
