never executed always true always false
1 module HelVM.HelMA.Automata.Cat.Evaluator
2 ( eval
3 , evalParams
4 , run
5 , runRio
6 ) where
7
8 import qualified HelVM.HelMA.Automaton.API.AppOptions as App
9 import HelVM.HelMA.Automaton.API.Emit
10 import HelVM.HelMA.Automaton.API.Env
11 import HelVM.HelMA.Automaton.API.EvalParams
12 import HelVM.HelMA.Automaton.API.IOTypes
13 import HelVM.HelMA.Automaton.Eff.MonadEff
14 import HelVM.HelMA.Automaton.Extra
15
16 import qualified RIO
17
18 runRio ∷ Has env ⇒ RIO.RIO env ()
19 runRio = runWithOptions =<< optionsRio where
20 runWithOptions o = run (App.emit o) . App.evalParams o =<< readSourceFileRio
21
22 run ∷ Has env ⇒ Emit → EvalParams → RIO.RIO env ()
23 run No = runAsRIO . evalParams
24 run _ = fallback
25
26 evalParams ∷ AppSafeEff m ⇒ EvalParams → m ()
27 evalParams = eval . source
28
29 eval ∷ MonadEff m ⇒ Source → m ()
30 eval = putLine