-
Notifications
You must be signed in to change notification settings - Fork 3
/
Main.lhs
25 lines (21 loc) · 966 Bytes
/
Main.lhs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
> module Main where
Jones the Steam, with IO primitives.
Simple program for starting up an interactive shell with Ivor library.
> import Ivor.TT
> import Ivor.Shell
> import Ivor.Primitives
> import IOPrims
> main :: IO ()
> main = do let shell = addModulePath (newShell emptyContext)
> (prefix ++ "/lib/ivor")
> shell <- importFile "basics.tt" shell
> primCtxt <- addIOPrimTypes (getContext shell)
> let shell' = addModulePath (newShell primCtxt)
> (prefix ++ "/lib/ivor")
> shell' <- importFile "iobasics.tt" shell'
> primFnCtxt <- addIOPrimFns (getContext shell')
> -- It is horrible to have to do this every time. Fix the API!
> let shell'' = addModulePath (newShell primFnCtxt)
> (prefix ++ "/lib/ivor")
> ctxt <- runShell "> " (extendParser shell'' parsePrimitives)
> putStrLn "Finished"