hmLJ.exeは、Luaの機能をコンソールにて確認するためのツールです。
hmLJ.exeはマクロ実行の上では必要ではありません。
しかし、hmLJ.exeを導入することで、hmLJの利用の幅を広げることが出来ます。 例えば、
luajitの挙動、lua記述の基本的な動作確認
***.luaを、コンパイルしたり、exe形式に変換する目的でも利用可能です。
文法チェックやバイトコードへのコンパイルなど、秀丸上でluajit実行のエディタ支援環境を作るといった目的にも適しています。
シンタックス系のカスタム項目としては、hmLJと同一です。
hmLJ.exe
hmLJ.exe ****.lua (他の引数)
hmLJ.exe -e"_,err = loadfile('a.lua'); print(err)"
対象がファイルになっていない場合は、luaのload関数やstring.dump( func, 1 )を組み合わせて
local data = string.dump(load("aaa = {1,2,3}\nprint(a)"), 1) local f = io.open("a.out", "wb") f:write(data) f:close()
といったようなluaファイルを実行することで、バイトコードをa.outに得ることが出来ます。
対象がファイルになっている場合も同様に
local data = string.dump(loadfile("test.lua"), 1) local f = io.open("a.out", "wb") f:write(data) f:close()
とすれば良いだけです。
バイトコードファイルは、
hmLJ.exe a.out
のように実行しても良いですし、 hmLJ.dllで利用したいならlua中でloadfile関数などを利用して
local fcnk = loadfile("a.out") fcnk()
のように実行することが出来ます。
hmLJ.exe *****.lua -bin2c
hmLJ.exe ****.lua ****.exe -link
対象はluaのスクリプトでなくとも、バイトコードにコンパイル済みのものでも大丈夫です。 (****.outはバイトコードにコンパイル済みのファイルとする)
hmLJ.exe ****.out ****.exe -link
for i, v in pairs({"表示", "ソート"}) do print(i, v) end
hmLJ.exe test.lua test.exe -link