Lua 簡單Lua直譯器原始碼分析

2021-07-09 16:46:56 字數 599 閱讀 5717

#include 

#include

#include "lua.h"

#include "lauxlib.h"

#include "lualib.h"

int main (void)

}lua_close(l);

return

0;}

lua.h定義了lua提供的基礎函式,包括建立lua環境、呼叫lua函式,它的定義是以lua_開頭的。

lauxlib.h(auxiliary library, 簡寫auxlib)定義了輔助庫提供的函式,它的所有定義都是lual_開頭的。

lualib.h定義了開啟指定的標準庫的函式。而lual_openlibs則可以開啟所有的標準庫。

lual_newstate()用於建立新環境。

lual_loadstring和lua_pcall呼叫成功時返回0,若失敗將錯誤訊息壓入棧。lua_pcall用於在棧中彈出呼叫函式。

如果你用c 方式來編譯它,但用在c++中,那麼你需要象下面這樣來包含lua.h標頭檔案。

extern

"c"

lua 原始碼編譯

對於乙個開源工程,開始學習它的第一步自然是編譯工程。使用vc編譯lua,在網上已有許多介紹,但 紙上得來終覺淺 自己走一遍還是有必要的。步驟如下 2.開啟vc建立乙個solution,就叫lua.sln 3.建立乙個名為liblua的project lua庫 新增除lua.c和luac.c以外的所有...

Lua 獨立直譯器

在命令列執行lua指令碼的引數的格式是這樣的 lua options script args lua e print math.sin 12 0.53657291800043 i是在執行指令碼後進入互動模式。l則為在執行指令碼前載入lib庫 lua i llib e x 10 在互動模式,你可以使用...

Lua原始碼剖析 lmathlib c

0 該模組是lua數學庫math模組的實現,讀該模組原始碼是為了學習lua與c的api以及註冊方法。1 當在lua程式中,呼叫require math 時,就會呼叫下面的luaopen math函式,來註冊函式庫 static const lual reg mathlib if defined lu...