GopherLua

Micro用のプラグインを開発する際、Lua(ルア)というスクリプト言語を用います。

The Programming Language Lua


Luaは、C言語のホストプログラムに組み込まれることを目的に設計されており、高速な動作と、高い移植性、組み込みの容易さが特徴であるらしく、Go言語で書かれたアプリケーションでもLuaが利用されるそうです。

Lua#概要 - Wikipedia


Microのソースコードを読んでみると、GopherLuaというパッケージを介してLuaで書かれたコードを実行しているので、コードを理解を進める意味合いでGopherLuaを試してみます。

yuin/gopher-lua: GopherLua: VM and compiler for Lua in Go




GopherLuaはGo 1.19以降になりますので、最新版のGoをインストールするを参考にして最新版のGoを使えるようにしておきます。


続いて、GopherLuaを試すためのディレクトリを用意しておきます。

今回は例として、~/workspace/goluaにします。

$ cd ~
$ mkdir workspace
$ cd workspace
$ mkdir golua
$ cd golua

go mod initとGopherLuaパッケージのインストールを行います。

$ go mod init golua
$ go get github.com/yuin/gopher-lua

Goから読み込む為のLuaで書かれたファイルを用意します。

$ micro hello.lua

~/workspace/golua/hello.lua

print("hello")

準備が出来ましたので、GopherLuaを試してみます。

$ micro main.go
package main

import (
	"github.com/yuin/gopher-lua"
)

func main() {
	L := lua.NewState()
	defer L.Close()
	if err := L.DoFile("hello.lua"); err != nil {
		panic(err)
	}
}

ファイルをCtrl + sで保存後、Ctrl + qでファイルを閉じ、

$ go run main.go

でコードを実行してみます。


hello.goの方で書いた

hello

が表示されれば成功です。

マインクラフト用ビジュアルエディタを開発しています。
詳しくはinunosinsi/mcws_blockly - githubをご覧ください。