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...
go get -v -u github.com/rucuriousyet/gmoonscript
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) } }
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4