你知道c語言是怎麼read一整個檔案嗎?如果你知道了,那麼請忽略本文,如果你不知道,你可以花五分鐘來閱讀本文。在我開始閱讀lua**之前,我好像從來沒有用c語言寫過一次性read整個檔案的字元的**,以往都是一句句的讀取。以至於我對這樣的**失去了敏感性。在開始閱讀lua**的時候,花了兩個小時來尋找lua解析器如何讀取指令碼的內容,一直當我看到getc的時候才豁然開朗,以前幾乎沒有用過getc,開篇就定式的寫下了fscanf。下面是一段c語言的**:
#include int main()
main -> load -> lual_loadfilex -> skipcomment -> skipbom。在lparser.c檔案中,skipbom的內容是這樣的:
static int skipbom (loadf *lf) while (*p != '\0');
lf->n = 0; /* prefix matched; discard it */
return getc(lf->f); /* return next character */
}
看到getc了嗎?今天發現的getc,是明天閱讀詞法分析的開始。
寫於學習lua的第六天(始於2023年11月8日)
指令碼解析器
指令碼解析器 命令指令碼解析器,自建立一種指令碼語法,解釋執行它。目前指令碼形式類似於命令,沒有變數型別的概念,關鍵字為 if else while break continue 解釋與c語言一樣。上傳 型別 無型別,全為字串看待。作用域 當前大括號中,以及所有子大括號中,退出當前大括號則清除變數。...
lua 標籤解析器
乙個類xml標籤解析函式,將標籤解析成lua中的表結構 它可以用來解析簡單xml結構,可以作為richlabel控制項的字串解析元件 其實它現在就是這麼用的 使用lua的模式匹配,使用了模式串 b 26lt 26gt b用來匹配對稱的字元。常寫為 26nbsp bxy,x和y是任意兩個不同的字元。x...
lua解析lua指令碼
lua中使用loadstring可以直接以字串形式執行 loadfile可以直接解析 為lua function.如果乙個lua資料檔案有結尾返回例如 return sound 則可以直接使用 dofile來執行檔案,執行結果就是sound table。如果lua資料檔案沒有返回值,dofile不可...