haskell
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