5

Lua ソース ファイルに含まれるすべての関数を一覧表示するにはどうすればよいですか?

たとえば、次を含む fn.lua があります

function test1()
        print("Test 1")
end

function test2()
        print("Test 2")
end

そして、これらの関数名 (test1、test2) を別の Lua スクリプトから表示できるようにしたいと考えています。

現時点で私が理解できる唯一の方法は、require を使用してファイルをインクルードし、関数を _G にリストすることですが、これには標準の Lua 関数もすべて含まれます。

もちろん、文字列検索関数を使用して手動でファイルを解析することもできますが、それはあまり Lua とは思えません!

これは最終的に、開発者が Lua で関数を記述できるようにするプロセスの一部を形成し、オペレーターはそれらの関数のどれを Excel のリストから呼び出すかを選択できます (yuk!)。

4

3 に答える 3

3

次の 3 つの方法があります。

  1. スクリプトをロードする前に名前を保存し、ロード後に_G残っている名前と比較します_G。Lua メーリング リストまたは wiki でこのコードを見たことがありますが、今のところリンクが見つかりません。

  2. http://lua-users.org/lists/lua-l/2012-12/msg00397.htmlluacのように、リストを解析して関数で使用されるグローバルを報告します。

  3. グローバルを報告する例が含まれている Lua 内からバイトコード インスペクターlbciを使用します。

于 2013-06-25T10:28:41.703 に答える