Execution¶
起動の流れ 〜mainからluaV_executeまで〜
print('hello')
というコードがあると、
luaL_loadfile でパースされてインストラクションのリストが構築されてそれを内包した関数が VM に push される
lua 関数を実行する
という2ステップになりそう。
commandline¶
lua.c: main()
lua.c: pmain()
lua.c: handle_script()
load¶
lauxlib.c: luaL_loadfile()
lapi.c: lua_load()
lapi.c: luaD_protectedparser()
ldo.c: f_parser()
luaY_parser()
docall¶
lua.c: docall()
lapi.c: lua_pcall()
lapi.c: f_call()
luaD_call
if luaD_precall() == PCRLUA
lvm.c: luaV_execute()