never executed always true always false
1 module HelVM.HelMA.Automata.Piet.Evaluator (
2 runRio,
3 run,
4 simpleEval,
5 ) where
6
7 import HelVM.HelMA.Automata.Piet.Automaton
8 import HelVM.HelMA.Automata.Piet.Compiler
9 import HelVM.HelMA.Automata.Piet.Parser
10
11 import HelVM.HelMA.Automata.Piet.API.LexerType
12
13 import qualified HelVM.HelMA.Automaton.API.AppOptions as App
14 import HelVM.HelMA.Automaton.API.Env
15
16 import HelVM.HelMA.Automaton.Eff.MonadEff
17
18 import HelVM.HelMA.Automaton.Extra
19
20 import qualified Codec.Picture as Picture
21
22 import qualified RIO
23
24 runRio :: Has env => Maybe LexerType -> Maybe Natural -> RIO.RIO env ()
25 runRio _ codelInfo = runWithOptions =<< optionsRio where
26 runWithOptions o = run codelInfo =<< readImageRio (App.file o)
27
28 run :: Has env => Maybe Natural -> Picture.DynamicImage -> RIO.RIO env ()
29 run cl i = runAsRIO $ simpleEval cl i
30
31 simpleEval :: AppEff m => Maybe Natural -> Picture.DynamicImage -> m ()
32 simpleEval codelInfo dynamicImage = (interpret . compile) $ processImage codelInfo dynamicImage