citeproc-hs-0.3.9: A Citation Style Language implementation in Haskell

Portability | portable
Stability | unstable
Maintainer | Andrea Rossato <andrea.rossato@unitn.it>
Safe Haskell | Safe-Inferred

Text.CSL.Pickle

Description

This module is mostly copied from Text.XML.HXT.Arrow.Pickle.Xml which is an adaptation of the pickler combinators developed by Andrew Kennedy.

See: http://research.microsoft.com/~akenn/fun/picklercombinators.pdf

Synopsis

- data St = St {
  - attributes :: [Attr]
  - contents :: [Content]
  }
- data PU a = PU {
  - appPickle :: (a, St) -> St
  - appUnPickle :: St -> (Maybe a, St)
  }
- pickleXML :: PU a -> a -> String
- unpickleXML :: PU a -> [Content] -> Maybe a
- emptySt :: St
- addAtt :: Attr -> St -> St
- addCont :: Content -> St -> St
- dropCont :: St -> St
- getAtt :: String -> St -> Maybe Attr
- getCont :: St -> Maybe Content
- class XmlPickler a where
  - xpickle :: PU a
- xpPrim :: (Read a, Show a) => PU a
- xpUnit :: PU ()
- xpZero :: PU a
- xpLift :: a -> PU a
- xpCondSeq :: PU b -> (b -> a) -> PU a -> (a -> PU b) -> PU b
- xpSeq :: (b -> a) -> PU a -> (a -> PU b) -> PU b
- xpChoice :: PU b -> PU a -> (a -> PU b) -> PU b
- xpWrap :: (a -> b, b -> a) -> PU a -> PU b
- xpDefault :: Eq a => a -> PU a -> PU a
- xpOption :: PU a -> PU (Maybe a)
- xpAlt :: (a -> Int) -> [PU a] -> PU a
- xpList :: PU a -> PU [a]
- xpLiftMaybe :: Maybe a -> PU a
- xpWrapMaybe :: (a -> Maybe b, b -> a) -> PU a -> PU b
- xpPair :: PU a -> PU b -> PU (a, b)
- xpTriple :: PU a -> PU b -> PU c -> PU (a, b, c)
- xp4Tuple :: PU a -> PU b -> PU c -> PU d -> PU (a, b, c, d)
- xp5Tuple :: PU a -> PU b -> PU c -> PU d -> PU e -> PU (a, b, c, d, e)
- xp6Tuple :: PU a -> PU b -> PU c -> PU d -> PU e -> PU f -> PU (a, b, c, d, e, f)
- xpText :: PU String
- xpText0 :: PU String
- xpElem :: String -> PU a -> PU a
- xpIElem :: String -> PU a -> PU a
- xpAttr :: String -> PU a -> PU a
- xpElemWithAttrValue :: String -> String -> String -> PU a -> PU a
- xpAttrFixed :: String -> String -> PU ()
- xpAddFixedAttr :: String -> String -> PU a -> PU a
- uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d
- uncurry4 :: (a -> b -> c -> d -> e) -> (a, b, c, d) -> e
- uncurry5 :: (a -> b -> c -> d -> e -> f) -> (a, b, c, d, e) -> f
- unescape :: String -> String
- readXmlString :: Show a => PU a -> ByteString -> a
- readXmlFile :: Show a => PU a -> FilePath -> IO a
- readFile' :: FilePath -> IO ByteString

# Documentation

data St Source

Constructors

St |

Fields

attributes :: [Attr]
contents :: [Content]

data PU a Source

Constructors

PU |

Fields

appPickle :: (a, St) -> St
appUnPickle :: St -> (Maybe a, St)

pickleXML :: PU a -> a -> String Source

unpickleXML :: PU a -> [Content] -> Maybe aSource

emptySt :: St Source

addAtt :: Attr -> St -> St Source

addCont :: Content -> St -> St Source

dropCont :: St -> St Source

getAtt :: String -> St -> Maybe Attr Source

getCont :: St -> Maybe Content Source

class XmlPickler a where Source

Methods

xpickle :: PU aSource

Instances

XmlPickler Bool |
XmlPickler Int |
XmlPickler Integer |
XmlPickler () |
XmlPickler CSCategory |
XmlPickler CSAuthor |
XmlPickler CSInfo |
XmlPickler Formatting |
XmlPickler NamePart |
XmlPickler Name |
XmlPickler DateForm |
XmlPickler NumericForm |
XmlPickler Gender |
XmlPickler Form |
XmlPickler Sort |
XmlPickler DatePart |
XmlPickler Match |
XmlPickler Condition |
XmlPickler IfThen |
XmlPickler Element |
XmlPickler Layout |
XmlPickler Agent |
XmlPickler a => XmlPickler [a] |
XmlPickler a => XmlPickler (Maybe a) |

xpPrim :: (Read a, Show a) => PU aSource

xpUnit :: PU ()Source

xpZero :: PU aSource

xpLift :: a -> PU aSource

xpCondSeq :: PU b -> (b -> a) -> PU a -> (a -> PU b) -> PU bSource

xpSeq :: (b -> a) -> PU a -> (a -> PU b) -> PU bSource

xpChoice :: PU b -> PU a -> (a -> PU b) -> PU bSource

xpWrap :: (a -> b, b -> a) -> PU a -> PU bSource

xpDefault :: Eq a => a -> PU a -> PU aSource

xpOption :: PU a -> PU (Maybe a)Source

xpAlt :: (a -> Int) -> [PU a] -> PU aSource

xpList :: PU a -> PU [a]Source

xpLiftMaybe :: Maybe a -> PU aSource

xpWrapMaybe :: (a -> Maybe b, b -> a) -> PU a -> PU bSource

xpPair :: PU a -> PU b -> PU (a, b)Source

xpTriple :: PU a -> PU b -> PU c -> PU (a, b, c)Source

xp4Tuple :: PU a -> PU b -> PU c -> PU d -> PU (a, b, c, d)Source

xp5Tuple :: PU a -> PU b -> PU c -> PU d -> PU e -> PU (a, b, c, d, e)Source

xp6Tuple :: PU a -> PU b -> PU c -> PU d -> PU e -> PU f -> PU (a, b, c, d, e, f)Source

xpText :: PU String Source

xpText0 :: PU String Source

xpElem :: String -> PU a -> PU aSource

xpIElem :: String -> PU a -> PU aSource

A pickler for interleaved elements.

xpAttr :: String -> PU a -> PU aSource

xpElemWithAttrValue :: String -> String -> String -> PU a -> PU aSource

xpAttrFixed :: String -> String -> PU ()Source

xpAddFixedAttr :: String -> String -> PU a -> PU aSource

uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> dSource

uncurry4 :: (a -> b -> c -> d -> e) -> (a, b, c, d) -> eSource

uncurry5 :: (a -> b -> c -> d -> e -> f) -> (a, b, c, d, e) -> fSource

unescape :: String -> String Source

readXmlString :: Show a => PU a -> ByteString -> aSource

readXmlFile :: Show a => PU a -> FilePath -> IO aSource

readFile' :: FilePath -> IO ByteString Source