modulepackage
0.0.0-20210830163153-f0c05032e102
Repository: https://github.com/rucuriousyet/gmoonscript.git
Documentation: pkg.go.dev
# README
gmoonscript
Moonscript compiler for the Gopher Lua VM
Very experimental... use with caution. This module provides methods for compiling Moonscript code to Lua from Go or Lua (Gopher-Lua) programs. Additionally this repository contains an amalgamation bundle of the Moonscript Lua library (modified to use only pure-Lua modules) that can be used in Lua or LuaJIT programs without any external dependencies (see examples/pure_example.lua for usage).
See the godoc for documentation...
Installation
go get -v -u github.com/rucuriousyet/gmoonscript
Usage
Example usage from Gopher-Lua:
package main
import (
"github.com/cosmotek/gmoonscript"
lua "github.com/yuin/gopher-lua"
)
func main() {
state := lua.NewState()
state.PreloadModule("moonc", gmoonscript.Loader)
err := state.DoString(`
local moonscript_code = [[
class Thing
name: "unknown"
class Person extends Thing
say_name: => print "Hello, I am #{@name}!"
with Person!
.name = "MoonScript"
\say_name!
]]
local moonc = require("moonc")
lua_code, err = moonc.compile(moonscript_code)
if err ~= nil then
print(err)
else
loadstring(lua_code)()
end
`)
if err != nil {
panic(err)
}
}
Example usage from Go
package main
import lua "github.com/yuin/gopher-lua"
import "github.com/cosmotek/gmoonscript"
func main() {
state := lua.NewState()
moonCode := `
class Thing
name: "unknown"
class Person extends Thing
say_name: => print "Hello, I am #{@name}!"
with Person!
.name = "MoonScript"
\say_name!
`
luaCode, err := gmoonscript.Compile(state, moonCode)
if err != nil {
panic(err)
}
err = state.DoString(luaCode)
if err != nil {
panic(err)
}
}
# Packages
No description provided by the author
# Functions
Asset loads and returns the asset for the given name.
AssetDir returns the file names below a certain directory embedded in the file by go-bindata.
AssetInfo loads and returns the asset info for the given name.
AssetNames returns the names of the assets.
Compile compiles Moonscript code into Lua code using a Gopher-Lua VM.
Loader is the default stub used by the Gopher-Lua PreloadModule function to import a Go module.
MustAsset is like Asset but panics when Asset would return an error.
RestoreAsset restores an asset under the given directory.
RestoreAssets restores an asset under the given directory recursively.