blob: f3114f1a57f1ddb8e1305127b5908e39e49ecf78 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
{-# LANGUAGE GADTs, DataKinds, OverloadedStrings #-}
module Events.Spec.Parse
( parse
, Position(..), ParseError(..)
) where
import Data.Conduit.Attoparsec
import Data.Conduit
import Data.Attoparsec.Text hiding (parse)
import Data.Text (Text)
import qualified Data.Text as T
import Events.Spec.Types
import Control.Monad.Catch (MonadThrow)
parse :: MonadThrow m => Consumer Text m (Spec m)
parse = sinkParser $ pSpec <* endOfInput
pSpec :: Monad m => Parser (Spec m)
pSpec = mzero
|