summaryrefslogtreecommitdiff
path: root/events/src/Events/Spec/Parse.hs
diff options
context:
space:
mode:
Diffstat (limited to 'events/src/Events/Spec/Parse.hs')
-rw-r--r--events/src/Events/Spec/Parse.hs24
1 files changed, 24 insertions, 0 deletions
diff --git a/events/src/Events/Spec/Parse.hs b/events/src/Events/Spec/Parse.hs
new file mode 100644
index 0000000..912a308
--- /dev/null
+++ b/events/src/Events/Spec/Parse.hs
@@ -0,0 +1,24 @@
1{-# LANGUAGE GADTs, DataKinds, OverloadedStrings #-}
2
3module Events.Spec.Parse
4 ( parse
5 , Position(..), ParseError(..)
6 ) where
7
8import Data.Conduit.Attoparsec
9import Data.Conduit
10
11import Data.Attoparsec.Text hiding (parse)
12
13import Data.Text (Text)
14import qualified Data.Text as T
15
16import Events.Spec.Types
17
18import Control.Monad.Catch (MonadThrow)
19
20parse :: MonadThrow m => Consumer Text m (Spec m)
21parse = sinkParser $ (tokenize >>= pSpec) <* endOfInput
22
23pSpec :: Monad m => Parser (Spec m)
24pSpec = mzero