Simplified identifier lookup

This commit is contained in:
2025-02-03 15:22:57 +01:00
parent 6af02d8fa3
commit 6959379182
5 changed files with 34 additions and 31 deletions

View File

@ -1,8 +1,6 @@
package core
import (
"fmt"
"git.akyoto.dev/cli/q/src/asm"
"git.akyoto.dev/cli/q/src/errors"
"git.akyoto.dev/cli/q/src/expression"
@ -16,7 +14,7 @@ func (f *Function) ExpressionToMemory(node *expression.Expression, memory asm.Me
if node.IsLeaf() {
if node.Token.Kind == token.Identifier {
name := node.Token.Text(f.File.Bytes)
variable := f.VariableByName(name)
variable, function := f.Identifier(name)
if variable != nil {
f.UseVariable(variable)
@ -24,11 +22,8 @@ func (f *Function) ExpressionToMemory(node *expression.Expression, memory asm.Me
return types.Pointer, nil
}
uniqueName := fmt.Sprintf("%s.%s", f.Package, name)
_, exists := f.Functions[uniqueName]
if exists {
f.MemoryLabel(asm.STORE, memory, uniqueName)
if function != nil {
f.MemoryLabel(asm.STORE, memory, function.UniqueName)
return types.Pointer, nil
}