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