@@ -6,6 +6,7 @@ import System.Environment
6import System.Exit
6import System.Exit
8import Data.Maybe
8import Data.Maybe
9import Control.Monad.State
10import Control.Monad.State
11import Core.CoreParser
12import Core.CoreParser
@@ -21,6 +22,7 @@ import Idris.REPL
21import Idris.ElabDecls
22import Idris.ElabDecls
22import Idris.Primitives
23import Idris.Primitives
23import Idris.Imports
24import Idris.Imports
25+import Paths_miniidris
25-- Main program reads command line options, parses the main program, and gets
27-- Main program reads command line options, parses the main program, and gets
26-- on with the REPL.
28-- on with the REPL.
@@ -41,13 +43,19 @@ runIdris opts =
41 do let inputs = opt getFile opts
43 do let inputs = opt getFile opts
42 mapM_ makeOption opts
44 mapM_ makeOption opts
44− when (not (NoPrelude `elem` opts)) $ loadModule "prelude"
46+ when (not (NoPrelude `elem` opts)) $ do x <- loadModule "prelude"
45− mapM_ loadModule inputs
48+ mods <- mapM loadModule inputs
46− when (not (NoREPL `elem` opts)) $ repl
49+ when (not (NoREPL `elem` opts)) $ do iputStrLn banner
48 makeOption (OLogging i) = setLogLevel i
52 makeOption (OLogging i) = setLogLevel i
49 makeOption _ = return ()
53 makeOption _ = return ()
56+mkPrompt [x] = "*" ++ x
57+mkPrompt (x:xs) = "*" ++ x ++ " " ++ mkPrompt xs
51getFile :: Opt -> Maybe String
59getFile :: Opt -> Maybe String
52getFile (Filename str) = Just str
60getFile (Filename str) = Just str
53getFile _ = Nothing
61getFile _ = Nothing
@@ -79,3 +87,11 @@ main'
79 err -> print err
87 err -> print err
90+ver = showVersion version
92+banner = " ____ __ _ \n" ++
93+ " / _/___/ /____(_)____ \n" ++
94+ " / // __ / ___/ / ___/ Version " ++ ver ++ "\n" ++
95+ " _/ // /_/ / / / (__ ) http://www.idris-lang.org/ \n" ++
96+ " /___/\\__,_/_/ /_/____/ Type :? for help \n"