如何實(shí)現(xiàn)詞法分析?要引入一個有限狀態(tài)機(jī)的概念。
有限狀態(tài)機(jī)
是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動作等行為的數(shù)學(xué)模型。
狀態(tài)存儲關(guān)于過去的信息,就是說:它反映從系統(tǒng)開始到現(xiàn)在時刻的輸入變化。轉(zhuǎn)移指示狀態(tài)變更,并且用必須滿足來確使轉(zhuǎn)移發(fā)生的條件來描述它。
通俗的來講,就是有多個狀態(tài),每個狀態(tài)都能接收一定的輸入,然后進(jìn)入到下一個狀態(tài)。
詞法分析的過程
編譯器將源程序以字符串的形式讀入,每次取出一個字符,作為當(dāng)前的狀態(tài)。然后判定下一個字符的類型,根據(jù)已知的規(guī)則,決斷源程序的意圖。
關(guān)鍵字、標(biāo)識符的識別
屏幕快照 2019-05-10 下午6.03.37.png
當(dāng)讀取到一個字符后繼續(xù)往后讀取,直到讀取到空格或者tab等,此時生成了一個單詞,判斷單詞是否在關(guān)鍵字里,如果在,則為關(guān)鍵字,否則為標(biāo)識符。
< > =的識別
image.png