attoparsec-0.14.4: Fast combinator parsing for bytestrings and text
Copyright Bryan O'Sullivan 2007-2015
License BSD3
Maintainer bos@serpentine.com
Stability experimental
Portability unknown
Safe Haskell None
Language Haskell2010

Data.Attoparsec.Types

Description

Simple, efficient parser combinators for strings, loosely based on the Parsec library.

Synopsis

Documentation

data Parser i a Source #

The core parser type. This is parameterised over the type i of string being processed.

This type is an instance of the following classes:

  • Monad , where fail throws an exception (i.e. fails) with an error message.
  • Functor and Applicative , which follow the usual definitions.
  • MonadPlus , where mzero fails (with no error message) and mplus executes the right-hand parser if the left-hand one fails. When the parser on the right executes, the input is reset to the same state as the parser on the left started with. (In other words, attoparsec is a backtracking parser that supports arbitrary lookahead.)
  • Alternative , which follows MonadPlus .

Instances

Instances details
Monad ( Parser i) Source #
Instance details

Defined in Data.Attoparsec.Internal.Types

Functor ( Parser i) Source #
Instance details

Defined in Data.Attoparsec.Internal.Types

Methods

fmap :: (a -> b) -> Parser i a -> Parser i b Source #

(<$) :: a -> Parser i b -> Parser i a Source #

MonadFail ( Parser i) Source #
Instance details

Defined in Data.Attoparsec.Internal.Types

a ~ Text => IsString ( Parser a) Source #
Instance details

Defined in Data.Attoparsec.Text.Internal

a ~ ByteString => IsString ( Parser a) Source #
Instance details

Defined in Data.Attoparsec.ByteString.Char8

Applicative ( Parser i) Source #
Instance details

Defined in Data.Attoparsec.Internal.Types

Alternative ( Parser i) Source #
Instance details

Defined in Data.Attoparsec.Internal.Types

MonadPlus ( Parser i) Source #
Instance details

Defined in Data.Attoparsec.Internal.Types

Semigroup ( Parser i a) Source #
Instance details

Defined in Data.Attoparsec.Internal.Types

Monoid ( Parser i a) Source #
Instance details

Defined in Data.Attoparsec.Internal.Types

data IResult i r Source #

The result of a parse. This is parameterised over the type i of string that was processed.

This type is an instance of Functor , where fmap transforms the value in a Done result.

Constructors

Fail i [ String ] String

The parse failed. The i parameter is the input that had not yet been consumed when the failure occurred. The [ String ] is a list of contexts in which the error occurred. The String is the message describing the error, if any.

Partial (i -> IResult i r)

Supply this continuation with more input so that the parser can resume. To indicate that no more input is available, pass an empty string to the continuation.

Note : if you get a Partial result, do not call its continuation more than once.

Done i r

The parse succeeded. The i parameter is the input that had not yet been consumed (if any) when the parse succeeded.