Show
Ignore:
Timestamp:
05/01/06 15:33:28 (3 years ago)
Author:
audreyt
svk:copy_cache_prev:
13387
Message:

* Move Data.Yaml.Syck to HsSyck? in third-party.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Prim/Yaml.hs

    r10107 r10179  
    1818evalYaml cv = do 
    1919    str     <- fromVal cv 
    20     rv      <- liftIO (parseYaml $ encodeUTF8 str) 
    21     case rv of 
    22         Left err            -> fail $ "YAML Parse Error: " ++ err 
    23         Right Nothing       -> return undef 
    24         Right (Just node)   -> fromYaml node 
     20    node    <- guardIO (parseYaml $ encodeUTF8 str) 
     21    fromYaml node 
    2522 
    2623fromYaml :: YamlNode -> Eval Val 
    27 fromYaml MkYamlNode{el=YamlNil}       = return VUndef 
    28 fromYaml MkYamlNode{el=YamlStr str}   = return $ VStr $ decodeUTF8 $ unpackBuf str 
    29 fromYaml MkYamlNode{el=YamlSeq nodes} = do 
     24fromYaml MkYamlNode{nodeElem=YamlNil}       = return VUndef 
     25fromYaml MkYamlNode{nodeElem=YamlStr str}   = return $ VStr $ decodeUTF8 $ unpackBuf str 
     26fromYaml MkYamlNode{nodeElem=YamlSeq nodes} = do 
    3027    vals    <- mapM fromYaml nodes 
    3128    av      <- liftSTM $ newTVar $ 
    3229        IntMap.fromAscList ([0..] `zip` map lazyScalar vals) 
    3330    return $ VRef (arrayRef av) 
    34 fromYaml MkYamlNode{el=YamlMap nodes,tag=tag} = do 
     31fromYaml MkYamlNode{nodeElem=YamlMap nodes, nodeTag=tag} = do 
    3532    case tag of 
    3633        Nothing  -> do 
     
    6966    let ?seen = IntSet.empty 
    7067    obj     <- toYaml v 
    71     rv      <- liftIO . emitYaml $ obj 
    72     either (fail . ("YAML Emit Error: "++)) 
    73            (return . VStr . decodeUTF8) rv 
     68    rv      <- guardIO . emitYaml $ obj 
     69    (return . VStr . decodeUTF8) rv 
    7470 
    7571strNode :: String -> YamlNode 
     
    8985toYaml v@(VRef r)   = do 
    9086    ptr <- liftIO $ addressOf r 
    91     if IntSet.member ptr ?seen then return nilNode{ anchor = MkYamlReference ptr } else do 
     87    if IntSet.member ptr ?seen then return nilNode{ nodeAnchor = MkYamlReference ptr } else do 
    9288        let ?seen = IntSet.insert ptr ?seen 
    9389        node <- ifValTypeIsa v "Hash" (hashToYaml r) $ do 
     
    9793                VObject _   -> return nodes 
    9894                _           -> liftIO $ toYamlNode r 
    99         return node{ anchor = MkYamlAnchor ptr } 
     95        return node{ nodeAnchor = MkYamlAnchor ptr } 
    10096toYaml (VList nodes) = do 
    10197    n <- mapM toYaml nodes