Implemented Value interface

This commit is contained in:
Eduard Urbach 2025-02-28 12:15:19 +01:00
parent fbcadae268
commit 9cfca57111
Signed by: eduard
GPG key ID: 49226B848C78F6C8
36 changed files with 194 additions and 153 deletions

View file

@ -17,7 +17,7 @@ func (f *Function) ExpressionToMemory(node *expression.Expression, memory asm.Me
return nil, err
}
switch value.Kind {
switch value := value.(type) {
case eval.Number:
f.MemoryNumber(asm.STORE, memory, value.Number)
case eval.Register:
@ -31,8 +31,8 @@ func (f *Function) ExpressionToMemory(node *expression.Expression, memory asm.Me
case eval.Label:
f.MemoryLabel(asm.STORE, memory, value.Label)
default:
panic(fmt.Errorf("%s: not implemented: %d", f.UniqueName, value.Kind))
panic(fmt.Errorf("%s: not implemented: %v", f.UniqueName, value))
}
return value.Type, err
return value.Type(), err
}