Changeset 14152 for src/Pugs/Eval.hs
- Timestamp:
- 10/09/06 17:27:28 (2 years ago)
- Files:
-
- 1 modified
-
src/Pugs/Eval.hs (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Eval.hs
r14123 r14152 74 74 , envCaller = Nothing 75 75 , envOuter = Nothing 76 , env Depth = []76 , envFrames = emptyFrames 77 77 , envBody = Val undef 78 78 , envDebug = Just ref -- Set to "Nothing" to disable debugging … … 500 500 reduceSyn "gather" [exp] = do 501 501 sub <- fromVal =<< evalExp exp 502 av <- newArray [] 503 symTake <- genSym (cast "@?TAKE") (MkRef av) 504 apply (updateSubPad sub symTake) Nothing [] 505 fmap VList $ readIVar av 502 globTV <- asks envGlobal 503 glob <- liftSTM $ readTVar globTV 504 oldAV <- findSymRef takeVar glob 505 oldSym <- genSym takeVar oldAV 506 newAV <- newObject (mkType "Array") 507 newSym <- genSym takeVar newAV 508 liftSTM $ writeTVar globTV (newSym glob) 509 enterGather $ apply sub Nothing [] 510 readRef newAV `finallyM` liftSTM (modifyTVar globTV oldSym) 511 where 512 takeVar = cast "$*TAKE" 506 513 507 514 reduceSyn "loop" exps = enterLoop $ do … … 733 740 let varname = sigil:(concat . (intersperse "::") $ parts) 734 741 -- Finally, eval the varname. 735 evalExp . _Var $ varname742 reduceVar (possiblyFixOperatorName (cast varname)) 736 743 737 744 reduceSyn "{}" [listExp, indexExp] = do … … 954 961 , envContext = envContext caller 955 962 , envLValue = envLValue caller 956 , env Depth = envDepthcaller963 , envFrames = envFrames caller 957 964 , envPos = envPos caller 958 965 } … … 968 975 , envContext = envContext caller 969 976 , envLValue = envLValue caller 970 , env Depth = envDepthcaller977 , envFrames = envFrames caller 971 978 , envPos = envPos caller 972 979 }
