go-scopes/forge/builtins/builtins.go

23 lines
394 B
Go

package builtins
import "git.sr.ht/~cco/go-scopes/forge"
type FE = *forge.ForgeEnv
type XT = *forge.Item
type builtins struct {
Add, Lit forge.XT
}
func Setup(f FE) *builtins {
r := func(name string, fct forge.Callable) XT {
return forge.Register(f.Voc(), name, fct)
}
return &builtins{
Lit: r("literal", literal),
}
}
func literal(f FE, it XT) {
f.Push(f.IP().Next().Value())
}