Pass input from an enumerator to an Attoparsec parser.

Version on this page:0.3.4
LTS Haskell 6.35:0.3.4
Stackage Nightly 2016-05-25:0.3.4
Latest on Hackage:0.3.4

See all snapshots attoparsec-enumerator appears in

MIT licensed and maintained by John Millikin

Module documentation for 0.3.4

This library allows an Attoparsec parser to receive input incrementally from an enumerator. This could be used for parsing large files, or implementing binary network protocols.

(-# LANGUAGE OverloadedStrings #-)

import Control.Applicative
import Data.Attoparsec
import Data.Attoparsec.Enumerator
import Data.Enumerator
import Data.Enumerator.Binary (enumHandle)
import Data.Enumerator.List
import System.IO

parser = string "foo" <|> string "bar"

main = do
    xy <- run_ (enumHandle 1 stdin $$ do
        x <- iterParser parser
        y <- iterParser parser
        return (x, y))
    print xy
comments powered byDisqus