diff options
| author | bringert <bringert@cs.chalmers.se> | 2005-11-25 18:02:36 +0000 |
|---|---|---|
| committer | bringert <bringert@cs.chalmers.se> | 2005-11-25 18:02:36 +0000 |
| commit | 2f5ee5b6ef1c9a8bf8d13cab5c6ef05a10553131 (patch) | |
| tree | d3e62d2b2986e977be5a275d868d4bd8fee5f14e /src/Transfer/InterpreterAPI.hs | |
| parent | fe1fdf3afd7755f6b5d8282d85f53924c662bf90 (diff) | |
Added evaluateExp and builtin to InterpreterAPI. Check for EOF in interactive transfer interpreter mode.
Diffstat (limited to 'src/Transfer/InterpreterAPI.hs')
| -rw-r--r-- | src/Transfer/InterpreterAPI.hs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/Transfer/InterpreterAPI.hs b/src/Transfer/InterpreterAPI.hs index d78265534..2fe04e8f3 100644 --- a/src/Transfer/InterpreterAPI.hs +++ b/src/Transfer/InterpreterAPI.hs @@ -1,4 +1,7 @@ -module Transfer.InterpreterAPI (Env, load, loadFile, evaluateString) where +module Transfer.InterpreterAPI (Env, builtin, + load, loadFile, + evaluateString, evaluateExp + ) where import Transfer.Core.Abs import Transfer.Core.Lex @@ -17,6 +20,7 @@ load n s = case pModule (myLexer s) of Ok m -> return $ addModuleEnv builtin m -- | Read a transfer module in core format from a file. +-- Fails in the IO monad if there is a problem loading the file. loadFile :: FilePath -> IO Env loadFile f = readFile f >>= load f @@ -29,3 +33,7 @@ evaluateString env s = Ok e -> do let v = eval env e return $ printValue v + +-- | Evaluate an expression in the given environment. +evaluateExp :: Env -> Exp -> Exp +evaluateExp env exp = valueToExp $ eval env exp |
