This commit is contained in:
72
bin/hawkgo.go
Normal file
72
bin/hawkgo.go
Normal 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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user