Changeset 12204 for src/Pugs/Prim/Yaml.hs
- Timestamp:
- 08/14/06 08:21:50 (2 years ago)
- Files:
-
- 1 modified
-
src/Pugs/Prim/Yaml.hs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Prim/Yaml.hs
r11614 r12204 15 15 import DrIFT.YAML 16 16 17 import qualified Judy.CollectionsM as C 18 import qualified Judy.Hash as H 19 17 20 evalYaml :: Val -> Eval Val 18 21 evalYaml cv = do … … 26 29 fromYaml MkNode{n_elem=ESeq nodes} = do 27 30 vals <- mapM fromYaml nodes 28 av <- liftSTM $ newTVar $29 IntMap.fromAscList ([0..] `zip` map lazyScalar vals)30 return $ VRef (arrayRef av)31 s <- liftSTM $ newTVar (0 :: Int) 32 av <- liftIO $ (C.fromList ([0..] `zip` map lazyScalar vals) :: IO IArray') 33 return $ VRef (arrayRef (av,s)) 31 34 fromYaml MkNode{n_elem=EMap nodes, n_tag=tag} = do 32 35 case tag of … … 36 39 val <- newScalar =<< fromYaml valNode 37 40 return (key, val) 38 hv <- lift STM $ (newTVar (Map.fromList vals) :: STMIHash)41 hv <- liftIO $ (C.fromList vals :: IO IHash) 39 42 return $ VRef (hashRef hv) 40 43 Just s | (pre, post) <- Str.splitAt 16 s -- 16 == length "tag:pugs:Object:"
