on master help sign in
Don't crash on error, keep going
174e696Edwin Brady
miniidris.cabal+1−1
@@ -25,7 +25,7 @@ Executable miniidris
25 Idris.REPLParser, Idris.ElabDecls
25 Idris.REPLParser, Idris.ElabDecls
26
26
27 Build-depends: base>=4 && <5, parsec, mtl, Cabal, readline,
27 Build-depends: base>=4 && <5, parsec, mtl, Cabal, readline,
28− containers, process
28+ containers, process, transformers
29
29
30 Extensions: MultiParamTypeClasses, FunctionalDependencies,
30 Extensions: MultiParamTypeClasses, FunctionalDependencies,
31 FlexibleInstances
31 FlexibleInstances
src/Idris/AbsSyntax.hs+4
@@ -7,6 +7,7 @@ import Core.TT
7import Core.Evaluate
7import Core.Evaluate
8
8
9import Control.Monad.State
9import Control.Monad.State
10+import Control.Monad.Trans.State.Lazy(liftCatch)
10import Data.List
11import Data.List
11import Data.Char
12import Data.Char
12
13
@@ -60,6 +61,9 @@ iLOG str = do i <- get
60 $ do lift (putStrLn str)
61 $ do lift (putStrLn str)
61 put (i { idris_log = idris_log i ++ str ++ "\n" } )
62 put (i { idris_log = idris_log i ++ str ++ "\n" } )
62
63
64+idrisCatch :: Idris a -> (IOError -> Idris a) -> Idris a
65+idrisCatch op handler = liftCatch catch op handler
66+
63-- Commands in the REPL
67-- Commands in the REPL
64
68
65data Command = Quit | Help | Eval PTerm
69data Command = Quit | Help | Eval PTerm