-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Parser and printer for bencoded data.
--   
--   Parser and printer for bencoded data.
@package bencode
@version 0.5.0.1


module Data.BEncode.Lexer
data Token
TDict :: Token
TList :: Token
TInt :: Token
TString :: ByteString -> Token
TNumber :: Integer -> Token
TEnd :: Token
lexer :: ByteString -> [Token]
instance Show Token
instance Eq Token


-- | Provides a BEncode data type is well as functions for converting this
--   data type to and from a String.
--   
--   Also supplies a number of properties which the module must satisfy.
module Data.BEncode

-- | The B-coding defines an abstract syntax tree given as a simple data
--   type here
data BEncode
BInt :: Integer -> BEncode
BString :: ByteString -> BEncode
BList :: [BEncode] -> BEncode
BDict :: (Map String BEncode) -> BEncode

-- | bRead is a conversion routine. It assumes a B-coded string as input
--   and attempts a parse of it into a BEncode data type
bRead :: ByteString -> Maybe BEncode

-- | Render a BEncode structure to a B-coded string
bShow :: BEncode -> ShowS
bPack :: BEncode -> ByteString
instance Eq BEncode
instance Ord BEncode
instance Show BEncode
instance Binary BEncode


-- | A parsec style parser for BEncoded data
module Data.BEncode.Parser
data BParser a
runParser :: BParser a -> BEncode -> Either String a
token :: BParser BEncode
dict :: String -> BParser BEncode
list :: String -> BParser a -> BParser [a]
optional :: BParser a -> BParser (Maybe a)
bstring :: BParser BEncode -> BParser String
bbytestring :: BParser BEncode -> BParser ByteString
bint :: BParser BEncode -> BParser Integer
setInput :: BEncode -> BParser ()
(<|>) :: BParser a -> BParser a -> BParser a
instance Functor BParser
instance Monad BParser
instance MonadPlus BParser
