23 lines
394 B
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())
|
|
}
|