Changeset 8675 for src/Pugs/Prim/Yaml.hs
- Timestamp:
- 01/15/06 08:26:19 (3 years ago)
- Files:
-
- 1 modified
-
src/Pugs/Prim/Yaml.hs (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Prim/Yaml.hs
r8652 r8675 69 69 70 70 strNode :: String -> YamlNode 71 strNode str = emptyYamlNode{el = YamlStr str }71 strNode = mkNode . YamlStr 72 72 73 73 toYaml :: (?d :: Int) => Val -> Eval YamlNode 74 74 toYaml _ | ?d == 0 = return $ strNode "<deep recursion>" -- fail? make this configurable? 75 toYaml VUndef = return emptyYamlNode75 toYaml VUndef = return $ mkNode YamlNil 76 76 toYaml (VBool x) = return $ boolToYaml x 77 77 toYaml (VStr str) = return $ strNode (encodeUTF8 str) … … 81 81 v' <- readRef r 82 82 nodes <- toYaml v' 83 ifValTypeIsa v "Array" (return nodes) $ case v' of84 VObject _ -> returnnodes85 _ -> return emptyYamlNode{el = YamlMap [(strNode "<ref>", nodes)]}83 ifValTypeIsa v "Array" (return nodes) . return $ case v' of 84 VObject _ -> nodes 85 _ -> mkNode $ YamlMap [(strNode "<ref>", nodes)] 86 86 toYaml (VList nodes) = let ?d = pred ?d in do 87 87 n <- mapM toYaml nodes 88 return $ emptyYamlNode{el=YamlSeq n} -- golfme!88 return $ mkNode (YamlSeq n) 89 89 -- fmap YamlSeq$ mapM toYaml nodes 90 90 toYaml v@(VObject obj) = let ?d = pred ?d in do … … 98 98 toYaml (VRule MkRulePGE{rxRule=rule, rxGlobal=global, rxStringify=stringify, rxAdverbs=adverbs}) = let ?d = pred ?d in do 99 99 adverbs' <- toYaml adverbs 100 return emptyYamlNode{el =YamlMap101 [ (strNode "rule", strNode rule)102 , (strNode "global", boolToYaml global)103 , (strNode "stringify", boolToYaml stringify)104 , (strNode "adverbs", adverbs')105 ] , tag = Just "tag:pugs:Rule"}100 return . mkTagNode "tag:pugs:Rule" $ YamlMap 101 [ (strNode "rule", strNode rule) 102 , (strNode "global", boolToYaml global) 103 , (strNode "stringify", boolToYaml stringify) 104 , (strNode "adverbs", adverbs') 105 ] 106 106 toYaml v = return $ strNode $ (encodeUTF8 . pretty) v 107 108 107 109 108 hashToYaml :: (?d :: Int) => VRef -> Eval YamlNode … … 115 114 va' <- toYaml va 116 115 return (ka', va') 117 return $ emptyYamlNode{el=YamlMap yamlmap}116 return $ mkNode (YamlMap yamlmap) 118 117 hashToYaml r = error ("unexpected node: " ++ show r) 119 118
