1. 程式人生 > >編譯原理->詞法分析器的分析

編譯原理->詞法分析器的分析

> -> >=
四、然後對於詞法分析器來說,我們就是要將物件語言的語法全部描述出來,下面就以C語言為例來說明問題:
(1)關鍵字:
main if else int return void while ...所有的關鍵字都是小寫。
(2)專用符號
= + - * / <= >= >  == != ; : , { } [ ] ( )
(3)空白和空格、製表符和換行符
空格一般用來分隔ID、NUM、專用符號和關鍵字,在詞法分析階段通常被忽略。
五、“超前搜尋”方法
 詞法分析時,常常會遇到超前搜尋方法。如當前待運算分析的字串為“a>+”當前字元為“>”,此時,分析器到底是將其分析為大於關係運算符還是大於等於關係運算符呢?顯然,只有知道下一個字元是什麼才能夠給出特定的結論。於是分析器讀入下一個字元’+‘,這時可知應將’>‘解釋為大於運算子。但此時,超前讀了一個字元’+‘,所以要回退一個字元,詞法分析器才能夠執行。

接下來,面對一個問題就是,既然已經知道了具體的細節,下面要做的就是如何用程式碼實現呢?
請看下面這圖:

這是我在實現詞法分析器過程中的主要流程圖,根據讀出的字元是何種型別進行操作,然後具體問題具體分析。