hmLJ.exeの機能

  • 概要

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

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

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

    • lua挙動確認

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

    • バイトコードやexe作成

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

    • 開発環境作成

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

  • ダウンロード

    hmLJ.exe.zipファイル。ver 2.041
    └更新日 2017/04/05
  • シンタックス系のカスタム項目

    シンタックス系のカスタム項目としては、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が出来上がります。

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