詞法分析程序:一. 為PL/0語(yǔ)言建立一個(gè)詞法分程序GETSYM(函數(shù))
把關(guān)鍵字、算符、界符稱為語(yǔ)言固有的單詞,標(biāo)識(shí)符、常量稱為用戶自定義的單詞。為此設(shè)置三個(gè)全程量:SYM,ID,NUM 。
SYM:存放每個(gè)單詞的類別,為內(nèi)部編碼的表示形式。
ID:存放用戶所定義的標(biāo)識(shí)符的值,即標(biāo)識(shí)符字符串的機(jī)內(nèi)表示。
NUM:存放用戶定義的數(shù)。
GETSYM要完成的任務(wù):
1. 濾掉單詞間的空格。
2. 識(shí)別關(guān)鍵字,用查關(guān)鍵字表的方法識(shí)別。當(dāng)單詞是關(guān)鍵字時(shí),將對(duì)應(yīng)的類別放在SYM中。如IF的類別為IFSYM,THEN的類別為T(mén)HENSYM。
3. 識(shí)別標(biāo)識(shí)符,標(biāo)識(shí)符的類別為IDENT,IDRNT放在SYM中,標(biāo)識(shí)符本身的值放在ID中。關(guān)鍵字或標(biāo)識(shí)符的最大長(zhǎng)度是10。
4. 拼數(shù),將數(shù)的類別NUMBER放在SYM中,數(shù)本身的值放在NUM中。
5. 拼由兩個(gè)字符組成的運(yùn)算符,如:>=、<=等等,識(shí)別后將類別存放在SYM中。
6. 打印源程序,邊讀入字符邊打印。
由于一個(gè)單詞是由一個(gè)或多個(gè)字符組成的,所以在詞法分析程序GETSYM中定義一個(gè)讀字符過(guò)程GETCH。
標(biāo)簽:
GETSYM
分
程序
語(yǔ)言
上傳時(shí)間:
2016-11-21
上傳用戶:小鵬