attoparsec-enumerator 0.1.0.3 → 0.2
raw patch · 2 files changed
+11/−4 lines, 2 filesdep ~enumeratorPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: enumerator
API changes (from Hackage documentation)
+ Data.Attoparsec.Enumerator: instance Exception ParseError
+ Data.Attoparsec.Enumerator: instance Typeable ParseError
- Data.Attoparsec.Enumerator: iterParser :: (Monad m) => Parser a -> Iteratee ParseError ByteString m a
+ Data.Attoparsec.Enumerator: iterParser :: (Monad m) => Parser a -> Iteratee ByteString m a
Files
Data/Attoparsec/Enumerator.hs view
@@ -8,10 +8,13 @@ -- Portability: portable -- -----------------------------------------------------------------------------+{-# LANGUAGE DeriveDataTypeable #-} module Data.Attoparsec.Enumerator ( ParseError (..) , iterParser ) where+import Control.Exception (Exception)+import Data.Typeable (Typeable) import qualified Data.Attoparsec as A import qualified Data.ByteString as B import qualified Data.Enumerator as E@@ -21,11 +24,15 @@ { errorContexts :: [String] , errorMessage :: String }- deriving (Show)+ deriving (Show, Typeable) +instance Exception ParseError+ -- | Convert an Attoparsec 'A.Parser' into an 'E.Iteratee'. The parser will -- be streamed bytes until it returns 'A.Done' or 'A.Fail'.-iterParser :: Monad m => A.Parser a -> E.Iteratee ParseError B.ByteString m a+--+-- If parsing fails, the iteratee's error value will contain a 'ParseError'.+iterParser :: Monad m => A.Parser a -> E.Iteratee B.ByteString m a iterParser p = E.continue (step (A.parse p)) where step parse (E.Chunks xs) = parseLoop parse xs step parse E.EOF = case parse B.empty of
attoparsec-enumerator.cabal view
@@ -1,5 +1,5 @@ name: attoparsec-enumerator-version: 0.1.0.3+version: 0.2 synopsis: Convert an Attoparsec parser into an iteratee license: MIT license-file: license.txt@@ -20,7 +20,7 @@ base >= 3 && < 5 , attoparsec >= 0.8 && < 0.9 , bytestring >= 0.9 && < 0.10- , enumerator >= 0.1 && < 0.4+ , enumerator >= 0.4 && < 0.5 exposed-modules: Data.Attoparsec.Enumerator