packages feed

bencode 0.1 → 0.2

raw patch · 3 files changed

+14/−5 lines, 3 filesdep +binary

Dependencies added: binary

Files

bencode.cabal view
@@ -1,11 +1,11 @@ Name: bencode-Version: 0.1+Version: 0.2 Maintainer: Lemmih (lemmih@gmail.com) Author: Lemmih (lemmih@gmail.com), Jesper Louis Andersen Copyright: 2005-2007, Lemmih License-File: LICENSE License: BSD3-Build-Depends: base, parsec+Build-Depends: base, parsec, binary Category: Text Synopsis: Parser and printer for bencoded data. Tested-with: GHC ==6.6
src/Data/BEncode.hs view
@@ -46,9 +46,11 @@ import Text.ParserCombinators.Parsec import qualified Data.ByteString.Char8 as BS import Data.ByteString (ByteString)+import Data.Binary  import Data.BEncode.Lexer ( Token (..), lexer ) + type BParser a = GenParser Token () a  {- | The B-coding defines an abstract syntax tree given as a simple@@ -59,6 +61,13 @@ 	     | BList [BEncode]              | BDict (Map String BEncode) 	       deriving (Eq, Ord, Show)++instance Binary BEncode where+    put e = put (BS.pack $ bShow e "")+    get = do s <- get+             case bRead s of+               Just e  -> return e+               Nothing -> fail "Failed to parse BEncoded data"  -- Source possition is pretty useless in BEncoded data. FIXME updatePos :: (SourcePos -> Token -> [Token] -> SourcePos)
src/Data/BEncode/Parser.hs view
@@ -35,7 +35,7 @@     , list     , optional     , bstring-    , bfaststring+    , bbytestring     , bint     , setInput     , (<|>)@@ -104,8 +104,8 @@                  BString str -> return (BS.unpack str)                  _ -> fail $ "Expected BString, found: " ++ show b -bfaststring :: BParser BEncode -> BParser BS.ByteString-bfaststring p = do b <- p+bbytestring :: BParser BEncode -> BParser BS.ByteString+bbytestring p = do b <- p                    case b of                      BString str -> return str                      _ -> fail $ "Expected BString, found: " ++ show b