詞法分析器

詞法分析器

詞法分析器又稱掃描器。是指將我們編寫的文本代碼流解析為一個一個的記號,分析得到的記號以供後續語法分析使用。詞法分析器的工作是低級別的分析:將字元或者字元序列轉化成記號.。

目錄

正文


詞法分析器又稱掃描器。詞法分析是指將我們編寫的文本代碼流解析為一個一個的記號,分析得到的記號以供後續語法分析使用。詞法分析器的工作是低級別的分析:將字元或者字元序列轉化成記號.。在談論詞法分析時,使用術語“詞法記號”(簡稱記號)、“模式”和“詞法單元”表示特定的含義。
在分析時,一是把詞法分析器當成語法分析的一部分,另一種是把詞法分析器當成編譯程序的獨立部分。在前一種情況下,詞法分析器不斷地被語法分析器調用,每調用一次詞法分析器將從源程序的字元序列拼出一個單詞,並將其Token值返回給語法分析器。后一種情況則不同,詞法分析器不是被語法分析器不斷地調用,而是一次掃描全部單詞完成編譯器的獨立一遍任務。
詞法分析器主要特點是不依靠語法,而只依靠詞法,即處理一個單詞時不依賴於外部單詞的信息,因此詞法分析器一般都很簡單。當然,對某些語言在作詞法分析時,在有些情況下不得不往前查看多個字元,有時還要做一些特殊處理,還有一些在詞法分析中處理不了的,要留到語法分析中進行處理。
本演演算法主要利用狀態轉換圖生成一個詞法分析器,對輸入的程序進行詞法分析,並將分析得到的單詞造表。其中關鍵字表和界限符表的大小是由高級語言的子集決定的,可以用數組裝載;而標識符表和常數表的大小取決於輸入的待分析程序中的變數、過程名、常數的個數,所以要用指針組成動態鏈表來裝載。當為未了方便,我們也把它定義成數組處理。
語法分析時,調用詞法分析器,根據已知文法利用遞歸向下分析,檢查語法錯誤。