compiler-in-go/pkg/object/environment.go
jmug 0acd1d41e8 Add all the files from the interpreter repo
Signed-off-by: jmug <u.g.a.mariano@gmail.com>
2025-01-13 19:51:49 -08:00

30 lines
573 B
Go

package object
func NewEnvironment() *Environment {
return &Environment{store: map[string]Object{}}
}
func NewEnclosedEnvironment(outer *Environment) *Environment {
return &Environment{
store: map[string]Object{},
outer: outer,
}
}
type Environment struct {
store map[string]Object
outer *Environment
}
func (e *Environment) Get(name string) (Object, bool) {
obj, ok := e.store[name]
if !ok && e.outer != nil {
obj, ok = e.outer.Get(name)
}
return obj, ok
}
func (e *Environment) Set(name string, obj Object) Object {
e.store[name] = obj
return obj
}