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