added hawkgo.go
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-11-24 16:31:02 +09:00
parent a5bcb8ea6c
commit c6ba6ff4ac
3 changed files with 183 additions and 4 deletions

72
bin/hawkgo.go Normal file
View File

@@ -0,0 +1,72 @@
package main
import "hawk"
import "fmt"
import "os"
import "runtime"
import "runtime/debug"
//import "sync"
import "time"
func exit_with_error(msg string, err error) {
fmt.Printf("ERROR: %s - %s\n", msg, err.Error())
os.Exit(1)
}
func make_hawk(script string) (*hawk.Hawk, error) {
var h *hawk.Hawk
var err error
h, err = hawk.New()
if err != nil { return nil, err }
err = h.ParseText(script)
if err != nil {
h.Close()
return nil, err
}
return h, nil
}
func main() {
var h *hawk.Hawk
var rtx *hawk.Rtx
var err error
debug.SetGCPercent(100) // enable normal GC
fmt.Printf ("BEGINNING OF TEST3\n")
h, err = make_hawk(`function main(s) {
print enbase64(s, "hello", 1.289);
print debase64(s);
return x
}`)
if err != nil {
fmt.Printf("ERROR: failed to make hawk - %s\n", err.Error())
return
}
rtx, err = h.NewRtx("test3")
if err != nil {
//
} else {
var v *hawk.Val
v, err = rtx.Call("main", hawk.Must(rtx.NewValFromStr("this is a test3 string")))
if err != nil {
//
} else {
fmt.Printf("V=>[%v]\n", v.String())
}
}
h.Close()
fmt.Printf ("END OF TEST3\n")
runtime.GC()
runtime.Gosched()
time.Sleep(1000 * time.Millisecond) // give finalizer time to print
}