llgo/c/lua

This commit is contained in:
luoliwoshang
2024-06-27 18:19:45 +08:00
parent af3e326178
commit 7a294e6d4e
11 changed files with 679 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
package main
import (
_ "unsafe"
"github.com/goplus/llgo/c"
"github.com/goplus/llgo/c/lua"
)
func main() {
L := lua.NewState()
defer L.Close()
L.OpenLibs()
if res := L.LoadString(c.Str("function doubleNumber(x) return x * 2 end")); res != lua.OK {
c.Printf(c.Str("error: %s\n"), L.ToString(-1))
}
if res := L.PCall(0, 0, 0); res != lua.OK {
c.Printf(c.Str("error: %s\n"), L.ToString(-1))
}
L.GetGlobal(c.Str("doubleNumber"))
L.PushNumber(10)
if res := L.PCall(1, 1, 0); res != lua.OK {
c.Printf(c.Str("error: %s\n"), L.ToString(-1))
}
if res := L.IsNumber(-1); res != 0 {
result := L.ToInteger(-1)
c.Printf(c.Str("result: %lld\n"), result)
} else {
c.Printf(c.Str("error: %s\n"), L.ToString(-1))
}
}
/* Expected output:
result: 20
*/