Lua 獨立直譯器

2021-07-09 10:25:02 字數 776 閱讀 7167

在命令列執行lua指令碼的引數的格式是這樣的:

lua [options] [script [args]]

% lua -e

"print(math.sin(12))" --> -0.53657291800043

-i是在執行指令碼後進入互動模式。-l則為在執行指令碼前載入lib庫:

% lua -i

-llib

-e"x = 10"

在互動模式,你可以使用=號來列印:

> = math.sin(3) --> 0.14112000805987

> a = 30

> = a

--> 30

lua_init_5_2(如果沒有就去找lua_init)是乙個環境變數,它表示@filename。直譯器會先執行該filename。如果不是以@開頭,則會被視為lua**來執行。

顯示引數:

% lua -e

"sin=math.sin" script a b

直譯器會自動收集命令列的引數,你可以通過arg陣列來引用它。

arg[-3] = 「lua」

arg[-2] = 「-e」

arg[-1] = 「sin=math.sin」

arg[0] = 「script」

arg[1] = 「a」

arg[2] = 「b」

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

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 開頭的...

redis指令碼使用Lua直譯器執行

redis在2.6之前,指令碼使用lua直譯器來執行指令碼,2.6之後內嵌了lua環境,執行指令碼命令使用eval.evla命令語法 eval script numkeys key key arg arg eval return 2 key1 key2 first second 1 key1 2 k...

編譯自定義pypy直譯器,獨立執行pyc

眾所周知,pypy執行效率要高出cpython 5 10倍,特別在網路併發方面,融合了stackless,最新基於python2.7的2.3版本比較穩定,基本上可以用於生產環境。不過pypy預設必須攜帶py檔案執行,是否可以只部署pyc以便隱藏原始碼呢。這個官方文件已經有提到,具體的可以自己閱讀 m...