Lua の導入

LuaVC++ 2008 EE で導入するメモ。

目次

  • はじめに
  • ソースファイル等
  • ビルドのしかた
  • print 関数のハック
はじめに

本家: The Programming Language Lua
今回は、lua-5.1.4 を使用しました。
以下、lua-5.1.4.tar.gz をディレクトlua-5.1.4/ に展開したものとして話を進めます。

ソースファイル等
カテゴリ 場所 ソースファイル 説明
本体 lua-5.1.4/src lapi.c lcode.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c Lua スクリプトエンジンの本体。
ライブラリ lua-5.1.4/src lauxlib.c lbaselib.c ldblib.c liolib.c lmathlib.c loslib.c ltablib.c lstrlib.c loadlib.c linit.c print() 関数や os モジュールなど、Lua スクリプト用の標準ライブラリ。標準ライブラリが不要な場合は、これらのファイルをリンクしなくて大丈夫です。
インタプリタ lua-5.1.4/src lua.c Luaインタプリタプログラム。
コンパイラ lua-5.1.4/src luac.c print.c Luaスクリプトソースをコンパイルしてバイナリ形式で吐き出すコンパイラプログラム。
C++ 用インクルードファイル lua-5.1.4/etc lua.hpp extern "C" つきで lua.h 等のヘッダをインクルードします。
パーサなしのルーチン群 lua-5.1.4/etc noparser.c スクリプトエンジン中の一部のルーチンを、パーサを使わないように書き換えたルーチンが収められたソースです。このソース中にあるルーチンでスクリプトエンジン中のルーチンを置き換えると、バイナリ形式のスクリプトファイルしか読み込めなくなる代わりに、エンジンが軽くなります。
ビルドのしかた
print 関数のハック

print 関数は元のままだと、標準出力に文字列を書き出します。
この挙動を変更するには、lbaselib.c 内の luaB_print 関数からの fputs 関数の呼び出しを、他の関数に置き換えます。