implement globals() and locals()
This commit is contained in:
parent
89ee63597b
commit
347fc15ba8
10
Interp.hs
10
Interp.hs
|
@ -189,6 +189,14 @@ _newStdEnv (TupleV []) = do
|
||||||
let (_,[stdEnv]) = initialState
|
let (_,[stdEnv]) = initialState
|
||||||
return $ toDict stdEnv
|
return $ toDict stdEnv
|
||||||
|
|
||||||
|
_globals (TupleV []) = do
|
||||||
|
(_, env) <- get
|
||||||
|
return $ toDict (last env)
|
||||||
|
|
||||||
|
_locals (TupleV []) = do
|
||||||
|
(_, locals:_) <- get
|
||||||
|
return $ toDict locals
|
||||||
|
|
||||||
-- import a module name as a module
|
-- import a module name as a module
|
||||||
_Import (StrV modname) = do
|
_Import (StrV modname) = do
|
||||||
(h,env) <- get -- save current state
|
(h,env) <- get -- save current state
|
||||||
|
@ -234,6 +242,8 @@ initialState = ([stdout, stdin],
|
||||||
("fopen", Builtin $ BIF _fopen),
|
("fopen", Builtin $ BIF _fopen),
|
||||||
("sockopen", Builtin $ BIF _sockopen),
|
("sockopen", Builtin $ BIF _sockopen),
|
||||||
("itos", Builtin $ BIF _itos),
|
("itos", Builtin $ BIF _itos),
|
||||||
|
("globals", Builtin $ BIF _globals),
|
||||||
|
("locals", Builtin $ BIF _locals),
|
||||||
("newStdEnv", Builtin $ BIF _newStdEnv),
|
("newStdEnv", Builtin $ BIF _newStdEnv),
|
||||||
("import", Builtin $ BIF _Import)]])
|
("import", Builtin $ BIF _Import)]])
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue