package value import "jinx/pkg/lang/vm/mem" type Env struct { references []reference } func NewEnv() Env { return Env{ references: make([]reference, 0), } } func (e *Env) Add(stackIndex int, outlet mem.Ptr) { e.references = append(e.references, reference{ stackIndex: stackIndex, outlet: outlet, }) } func (e *Env) GetOutlet(envIndex int) mem.Ptr { return e.references[envIndex].outlet } func (e *Env) GetStackIndex(envIndex int) int { return e.references[envIndex].stackIndex } func (e *Env) Len() int { return len(e.references) } type reference struct { stackIndex int outlet mem.Ptr }