summaryrefslogtreecommitdiff
path: root/events/src/Events/Spec.hs
diff options
context:
space:
mode:
authorGregor Kleen <pngwjpgh@users.noreply.github.com>2016-08-05 12:36:29 +0200
committerGregor Kleen <pngwjpgh@users.noreply.github.com>2016-08-05 12:36:29 +0200
commit10be4c21eba0c4df2d2cf03f2d5adb547fb08e0a (patch)
tree9b67145edcf29e633169515cb3d49d8168f48658 /events/src/Events/Spec.hs
parent5597e2f90b1e093a3b4dd110a84d40173e9abc77 (diff)
downloadevents-10be4c21eba0c4df2d2cf03f2d5adb547fb08e0a.tar
events-10be4c21eba0c4df2d2cf03f2d5adb547fb08e0a.tar.gz
events-10be4c21eba0c4df2d2cf03f2d5adb547fb08e0a.tar.bz2
events-10be4c21eba0c4df2d2cf03f2d5adb547fb08e0a.tar.xz
events-10be4c21eba0c4df2d2cf03f2d5adb547fb08e0a.zip
cleanup
Diffstat (limited to 'events/src/Events/Spec.hs')
-rw-r--r--events/src/Events/Spec.hs24
1 files changed, 9 insertions, 15 deletions
diff --git a/events/src/Events/Spec.hs b/events/src/Events/Spec.hs
index c2a84ac..f0b1456 100644
--- a/events/src/Events/Spec.hs
+++ b/events/src/Events/Spec.hs
@@ -1,8 +1,8 @@
1{-# LANGUAGE GADTs, DataKinds, TypeOperators #-} 1{-# LANGUAGE RankNTypes #-}
2 2
3module Events.Spec 3module Events.Spec
4 ( interpret 4 ( interpret
5 , Spec, Cmnd(..), Expr(..), Elem(..) 5 , Spec, Expr(..), Elem(..)
6 , module Events.Spec.Parse 6 , module Events.Spec.Parse
7 , module Events.Spec.Eval 7 , module Events.Spec.Eval
8 ) where 8 ) where
@@ -12,20 +12,14 @@ import Events.Spec.Eval
12 12
13import Events.Spec.Parse 13import Events.Spec.Parse
14 14
15import Control.Monad ((<=<))
16import Control.Monad.IO.Class
17import Control.Monad.State.Lazy
18 15
19import Data.Monoid 16import Data.Conduit
20import Data.Foldable
21import Control.Lens
22 17
23import Debug.Trace 18import Data.Text (Text)
19import qualified Data.Text as T
24 20
25interpret :: MonadIO m => Spec m -> Eval m () 21import Control.Monad.Catch (MonadThrow)
26interpret = join . fmap interpretCmnd . evalExpr
27 22
28interpretCmnd :: MonadIO m => Cmnd -> Eval m () 23
29interpretCmnd (COverride obj) = objPayload ?= obj 24interpret :: MonadThrow m => Producer m Text -> Eval m ()
30interpretCmnd (COccurs b) = objOccurs .= b 25interpret source = evalExpr =<< lift (connect source parse)
31interpretCmnd _ = return ()