[project @ 2000-12-18 12:43:04 by sewardj]
[ghc-hetmet.git] / ghc / compiler / main / Interpreter.hs
1 -----------------------------------------------------------------------------
2 -- $Id: Interpreter.hs,v 1.9 2000/12/18 12:43:04 sewardj Exp $
3 --
4 -- Interpreter subsystem wrapper
5 --
6 -- (c) The University of Glasgow 2000
7 --
8 -----------------------------------------------------------------------------
9
10 module Interpreter (
11 #ifdef GHCI
12         module ByteCodeGen,
13         module Linker
14 #else
15     ClosureEnv, emptyClosureEnv, 
16     ItblEnv, emptyItblEnv,
17     linkIModules,
18     stgExprToInterpSyn, stgBindsToInterpSyn,
19     HValue,
20     UnlinkedIBind, UnlinkedIExpr,
21     loadObjs, resolveObjs,
22 #endif
23   ) where
24
25 #ifdef GHCI
26
27 ---------------------------------------------
28 --      YES!  We have an interpreter
29 ---------------------------------------------
30
31 import ByteCodeGen
32 import Linker
33
34 #else
35
36 import Outputable
37
38 ---------------------------------------------
39 --      NO!  No interpreter; generate stubs for all the bits
40
41 ---------------------------------------------
42
43 type ClosureEnv = ()
44 emptyClosureEnv = ()
45
46 type ItblEnv = ()
47 emptyItblEnv = ()
48
49 type HValue        = ()
50 data UnlinkedIBind = UnlinkedIBind
51 data UnlinkedIExpr = UnlinkedIExpr
52
53 instance Outputable UnlinkedIBind where
54   ppr x = text "Can't output UnlinkedIBind"
55
56 linkIModules        = error "linkIModules"
57 stgExprToInterpSyn  = error "stgToInterpSyn"
58 stgBindsToInterpSyn = error "stgBindsToInterpSyn"
59 loadObjs            = error "loadObjs"
60 resolveObjs         = error "loadObjs"
61 interactiveUI       = error "interactiveUI"
62 #endif