25 lines
650 B
Haskell
25 lines
650 B
Haskell
module CoreDriver
|
|
( driver
|
|
)
|
|
where
|
|
--------------------------------------------------------------------------------
|
|
import Compiler.RLPC
|
|
import Control.Monad
|
|
import Data.Text qualified as T
|
|
import Control.Lens.Combinators
|
|
|
|
import Core.Lex
|
|
import Core.Parse
|
|
import GM
|
|
--------------------------------------------------------------------------------
|
|
|
|
driver :: RLPCIO ()
|
|
driver = forFiles_ $ \f ->
|
|
withSource f (lexCoreR >=> parseCoreProgR >=> evalProgR)
|
|
|
|
driverSource :: T.Text -> RLPCIO ()
|
|
driverSource = lexCoreR >=> parseCoreProgR >=> evalProgR >=> printRes
|
|
where
|
|
printRes = liftIO . print . view _1
|
|
|