never executed always true always false
1 module HelVM.HelMA.Automata.Cat.Evaluator (
2 runRio,
3 run,
4 evalParams,
5 eval
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 :: AppEff m => EvalParams -> m ()
27 evalParams = eval . source
28
29 eval :: MonadEff m => Source -> m ()
30 eval = putLine