Refactor VM and operators
Some checks failed
Build / build (push) Failing after 5m54s
Publish Image / publish (push) Failing after 44s
Test / build (push) Failing after 5m21s

This commit is contained in:
Chuck Smith
2024-03-29 17:59:34 -04:00
parent 7435a993d9
commit 3b6df3e813
11 changed files with 979 additions and 639 deletions

View File

@@ -24,6 +24,20 @@ func (m Module) Inspect() string {
return fmt.Sprintf("<module '%s'>", m.Name)
}
func (m *Module) Get(index Object) (Object, error) {
key, ok := index.(Hashable)
if !ok {
return nil, fmt.Errorf("invalid module attribute %s", index.Type())
}
attr, found := m.Attrs.(*Hash).Pairs[key.HashKey()]
if !found {
return &Null{}, nil
}
return attr.Value, nil
}
func (m Module) Compare(other Object) int {
return 1
}