go-scopes/forge/builtins/builtins.go

23 lines
378 B
Go

package builtins
import "git.sr.ht/~cco/go-scopes/forge"
type FE = forge.FE
type XT = forge.XT
type builtins struct {
Add, Lit 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())
}