1. 程式人生 > >Windows下使用luaDoc給lua生成文件

Windows下使用luaDoc給lua生成文件

作者: 楊粼波
Email: [email protected]


    首先需要安裝lua,Windows下自然是安裝Lua For Windows咯,下載地址:http://code.google.com/p/luaforwindows/
安裝以後它已經包含了luadoc,所以無需我們再去下載,如果非要去下載的話,那麼下載地址是:http://luadoc.luaforge.net/

然後,我們需要準備一個批處理檔案,叫啥名字無所謂,我是取名叫做buildDoc.bat的,我用doxygen的時候也是叫這個名字的,以下是批處理檔案的內容:
@echo on
lua.exe 
"%LUA_DEV%\lua\luadoc_start.lua
"-"Docs"*
pause
它做了什麼呢?它呼叫了lua.exe執行了luadoc_start.lua這個指令碼,傳入的引數-d "Docs"的意思是生成的文件資料夾(輸出路徑),如果沒有則是生成在批處理檔案當前路徑。第二個引數是需要生成文件的lua指令碼檔案列表(輸入檔案),不過我們可以傳入了一個*,它會自動解析生成的,讓它遍歷當前路徑的lua檔案以及當前路徑下面所有的子資料夾的lua檔案。

有了這個批處理檔案,這個時候我們就可以生成lua的文件了,只需要滑鼠輕輕一點就可以了。^_^

以下給出一點lua指令碼的示例:
--- 測試用表
-- @class table
-- @name p_GlobalOptions
-- @field opt1 欄位1
-- @field opt2 欄位2
local p_GlobalOptions 
= {
            opt1 
= nil, 
            opt2 
= nil,
}
這是一個表的簡單示例,其中
-- @class table 
         是表明其型別是一個表,
-- @name 
         p_GlobalOptions是表名,
-- @field opt1 欄位1
         說明第一個欄位是什麼。
-- @field opt2 欄位2
         說明第二個欄位是什麼。

--------------------------------------------------------------------------------------

-- @name test
-- @description 嗯。。。這是一個測試方法的方法
-- @param param1 引數1
-- @param param2 引數2
-- @return 沒有返回值哦
-- @usage test()
-- @see p_GlobalOptions 
--------------------------------------------------------------------------------------
function test(param1, param2)
end
-- @param param1 引數1
         說明引數1;
-- @return 沒有返回值哦
         說明了返回值
-- @usage test()
         這裡是給出一個示例程式碼來;
-- @see p_GlobalOptions
         可以生成一個超連結,表明這個方法和p_GlobalOptions是有關,你可以去檢視。
其實還可以改改這麼寫:
--------------------------------------------------------------------------------------
-- @class function
-- @name test
--------------------------------------------------------------------------------------
-- @description 嗯。。。這是一個測試方法的方法
-- @param param1 引數1
-- @param param2 引數2
-- @return 沒有返回值哦
-- @usage test()
-- @see p_GlobalOptions 
-------------------------------------------------------------------------------------- 即,表明其型別是一個function,名字叫做test。
@class有三個引數:function, table 和 module。分別表示是:方法,表和模組。

具體文件請參見: http://luadoc.luaforge.net/manual.html


-------------------------------------------------------------------------------------------------------------
來點閒話,最近工作已經放到了使用lua做開發上面去了,沒辦法,廣州這邊的遊戲公司基本上都是用指令碼做大部分事情。
至於為什麼要這樣倚重指令碼,無非就是:出於人員培訓的考慮,出於快速開發的考慮……
沒有複雜的資料型別,甚至於其實根本不用管資料型別是什麼,因為它是一個弱型別的語言……
只有一個數據結構:table,可以做變長陣列,可做hash表,甚至用於模擬Class……
你可以不用宣告型別,它可以叫做“使用即宣告”。你一不小心把名字寫錯了,直譯器還不報錯:這是合法的。想要捕獲這種錯誤,還需要一些技巧性的解決方法。
沒有像VS那樣好用的IDE(因為我自始自終都在用著這個讓人惰性化的工具),雖然有UEStudio、EditPlus、NotePad++、SciTe、GVIM、LuaEdit,甚至於Eclipse也可以用,但是,始終不覺得好用。
除錯起來也不大方便,不過還好有Decoda這個支援遠端偵錯程式的好東西,至少還有的用。
不管怎樣,
弱型別有弱型別的好處,實現委託不是那麼困難的事情了,也不需要使用像boost:any這樣的玩意了。C++中所需要思考的東西一下子不再需要去煩擾了。
不過我卻依然快不起來,語言上所要困擾的東西雖然少了許多,但是習慣它總是需要時間的。
而且,融入新團隊,溝通,這些開發中的成本始終是存在的,不管用什麼程式語言,不管做什麼專案,不管在什麼公司……

posted on 2010-07-25 04:48 楊粼波 閱讀(3594) 評論(2)  編輯 收藏 引用 所屬分類: 原創文章