Copyright | Bryan O'Sullivan 2007-2015 |
---|---|
License | BSD3 |
Maintainer | bos@serpentine.com |
Stability | experimental |
Portability | unknown |
Safe Haskell | Trustworthy |
Language | Haskell98 |
Simple, efficient combinator parsing that can consume lazy
ByteString
strings, loosely based on the Parsec library.
This is essentially the same code as in the Attoparsec
module, only with a parse
function that can consume a lazy
ByteString
incrementally, and a Result
type that does not allow
more input to be fed in. Think of this as suitable for use with a
lazily read file, e.g. via readFile
or hGetContents
.
Note: The various parser functions and combinators such as
string
still expect strict ByteString
parameters, and
return strict ByteString
results. Behind the scenes, strict
ByteString
values are still used internally to store parser
input and manipulate it efficiently.
- data Result r
- = Fail ByteString [String] String
- | Done ByteString r
- module Data.Attoparsec.ByteString
- parse :: Parser a -> ByteString -> Result a
- parseTest :: Show a => Parser a -> ByteString -> IO ()
- maybeResult :: Result r -> Maybe r
- eitherResult :: Result r -> Either String r
Documentation
The result of a parse.
Fail ByteString [String] String | The parse failed. The |
Done ByteString r | The parse succeeded. The |
module Data.Attoparsec.ByteString
Running parsers
parse :: Parser a -> ByteString -> Result a Source
Run a parser and return its result.
parseTest :: Show a => Parser a -> ByteString -> IO () Source
Run a parser and print its result to standard output.