attoparsec-enumerator-0.3.1: Pass input from an enumerator to an Attoparsec parser.

attoparsec-enumerator-0.3.1: Pass input from an enumerator to an Attoparsec parser.

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

Modules