ginger/main.go

32 lines
583 B
Go
Raw Normal View History

package main
import (
"fmt"
"github.com/mediocregopher/ginger/lang"
"github.com/mediocregopher/ginger/vm"
)
func main() {
2017-02-12 18:44:10 +00:00
mkcmd := func(a lang.Atom, args ...lang.Term) lang.Tuple {
return lang.Tuple{a, lang.Tuple{vm.Tuple, lang.Tuple(args)}}
}
mkint := func(i string) lang.Tuple {
return lang.Tuple{vm.Int, lang.Const(i)}
}
t := mkcmd(vm.Add, mkint("1"),
mkcmd(vm.Add, mkint("2"), mkint("3")))
mod, err := vm.Build(t)
if err != nil {
panic(err)
}
defer mod.Dispose()
mod.Dump()
out, err := mod.Run()
fmt.Printf("\n\n########\nout: %v %v\n", out, err)
}