hmLJ.exeの機能

概要

hmLJ.exeは、Luaの機能をコンソールにて確認するためのツールです。

PICTURE

hmLJ.exeはマクロ実行の上では必要ではありません。

しかし、hmLJ.exeを導入することで、hmLJの利用の幅を広げることが出来ます。
例えば、

  • lua挙動確認

    luajitの挙動、lua記述の基本的な動作確認

  • バイトコードやexe作成

    ***.luaを、コンパイルしたり、exe形式に変換する目的でも利用可能です。

  • 開発環境作成

    文法チェックやバイトコードへのコンパイルなど、秀丸上でluajit実行のエディタ支援環境を作るといった目的にも適しています。

ダウンロード

PICTURE
更新日 2017/12/16
hmLJ.exe.zip ver 2.041

シンタックス系のカスタム項目

シンタックス系のカスタム項目としては、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()
        

    のように実行することが出来ます。

  • bin2cとしての実行

    ソースコードを、C言語ソースへと貼り付け可能なソースコードとして出力します。
        hmLJ.exe *****.lua -bin2c
        
  • リンカとしての実行

    全ての引数の一番後ろに「-link」と付けてください。
        hmLJ.exe ****.lua ****.exe -link
        

    対象はluaのスクリプトでなくとも、バイトコードにコンパイル済みのものでも大丈夫です。
    (****.outはバイトコードにコンパイル済みのファイルとする)

        hmLJ.exe ****.out ****.exe -link
        
  • 文字エンコード「CP932(Shift-JIS)」のファイルで、
        for i, v in pairs({"表示", "ソート"}) do
            print(i, v)
        end
        
    というファイルをtest.luaというファイル名で用意。hmLJ.exeと同じディレクトリに保存します。

    コマンドプロンプトでhmLJ.exeのディレクトリまで移動した後、
        hmLJ.exe test.lua test.exe -link
        
    とすると、test.exeが出来上がります。

    このファイルは単体で実行可能であり、
    他のファイル等への依存はありません。