Pass input from an enumerator to an Attoparsec parser.

LTS Haskell 6.30:0.3.4
Stackage Nightly 2016-05-25:0.3.4
Latest on Hackage:0.3.4
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