conduit-extra-1.3.7: Batteries included conduit: adapters for common libraries.
Copyright2011 Michael Snoyman 2010 John Millikin
LicenseMIT
Safe HaskellNone
LanguageHaskell2010

Data.Conduit.Attoparsec

Description

Consume attoparsec parsers via conduit.

This code was taken from attoparsec-enumerator and adapted for conduits.

Synopsis

Sink

sinkParser :: forall a (m :: Type -> Type) b o. (AttoparsecInput a, MonadThrow m) => Parser a b -> ConduitT a o m b Source #

Convert an Attoparsec Parser into a Sink. The parser will be streamed bytes until it returns Done or Fail.

If parsing fails, a ParseError will be thrown with throwM.

Since 0.5.0

sinkParserEither :: forall a (m :: Type -> Type) b o. (AttoparsecInput a, Monad m) => Parser a b -> ConduitT a o m (Either ParseError b) Source #

Same as sinkParser, but we return an Either type instead of raising an exception.

Since 1.1.5

Conduit

conduitParser :: forall a (m :: Type -> Type) b. (AttoparsecInput a, MonadThrow m) => Parser a b -> ConduitT a (PositionRange, b) m () Source #

Consume a stream of parsed tokens, returning both the token and the position it appears at. This function will raise a ParseError on bad input.

Since 0.5.0

conduitParserEither :: forall (m :: Type -> Type) a b. (Monad m, AttoparsecInput a) => Parser a b -> ConduitT a (Either ParseError (PositionRange, b)) m () Source #

Same as conduitParser, but we return an Either type instead of raising an exception.

Types

data ParseError Source #

The context and message from a Fail value.

Constructors

ParseError 

Fields

DivergentParser 

Instances

Instances details
Exception ParseError Source # 
Instance details

Defined in Data.Conduit.Attoparsec

Methods

toException :: ParseError -> SomeException

fromException :: SomeException -> Maybe ParseError

displayException :: ParseError -> String

backtraceDesired :: ParseError -> Bool

Show ParseError Source # 
Instance details

Defined in Data.Conduit.Attoparsec

Methods

showsPrec :: Int -> ParseError -> ShowS

show :: ParseError -> String

showList :: [ParseError] -> ShowS

data Position Source #

Constructors

Position 

Fields

Instances

Instances details
Show Position Source # 
Instance details

Defined in Data.Conduit.Attoparsec

Methods

showsPrec :: Int -> Position -> ShowS

show :: Position -> String

showList :: [Position] -> ShowS

Eq Position Source # 
Instance details

Defined in Data.Conduit.Attoparsec

Methods

(==) :: Position -> Position -> Bool

(/=) :: Position -> Position -> Bool

Ord Position Source # 
Instance details

Defined in Data.Conduit.Attoparsec

Methods

compare :: Position -> Position -> Ordering

(<) :: Position -> Position -> Bool

(<=) :: Position -> Position -> Bool

(>) :: Position -> Position -> Bool

(>=) :: Position -> Position -> Bool

max :: Position -> Position -> Position

min :: Position -> Position -> Position

data PositionRange Source #

Instances

Instances details
Show PositionRange Source # 
Instance details

Defined in Data.Conduit.Attoparsec

Methods

showsPrec :: Int -> PositionRange -> ShowS

show :: PositionRange -> String

showList :: [PositionRange] -> ShowS

Eq PositionRange Source # 
Instance details

Defined in Data.Conduit.Attoparsec

Ord PositionRange Source # 
Instance details

Defined in Data.Conduit.Attoparsec

Classes

class AttoparsecInput a Source #

A class of types which may be consumed by an Attoparsec parser.

Minimal complete definition

parseA, feedA, empty, isNull, getLinesCols, stripFromEnd

Instances

Instances details
AttoparsecInput ByteString Source # 
Instance details

Defined in Data.Conduit.Attoparsec

Methods

parseA :: Parser ByteString b -> ByteString -> IResult ByteString b

feedA :: IResult ByteString b -> ByteString -> IResult ByteString b

empty :: ByteString

isNull :: ByteString -> Bool

getLinesCols :: ByteString -> Position

stripFromEnd :: ByteString -> ByteString -> ByteString

AttoparsecInput Text Source # 
Instance details

Defined in Data.Conduit.Attoparsec

Methods

parseA :: Parser Text b -> Text -> IResult Text b

feedA :: IResult Text b -> Text -> IResult Text b

empty :: Text

isNull :: Text -> Bool

getLinesCols :: Text -> Position

stripFromEnd :: Text -> Text -> Text