詞法分析器制作與應(yīng)用
設(shè)計(jì)思想
(1)程序主體結(jié)構(gòu)部分:
說(shuō)明部分
%%
規(guī)則部分
%%
輔助程序部分
(2)主體結(jié)構(gòu)的說(shuō)明
在這里說(shuō)明部分告訴我們使用的LETTER,DIGIT, IDENT(標(biāo)識(shí)符,通常定義為字母開(kāi)頭的字母數(shù)字串)和STR(字符串常量,通常定義為雙引號(hào)括起來(lái)的一串字符)是什么意思.這部分也可以包含一些初始化代碼.例如用#include來(lái)使用標(biāo)準(zhǔn)的頭文件和前向說(shuō)明(forward ,references).這些代碼應(yīng)該再標(biāo)記"%{"和"%}"之間 規(guī)則部分> 可以包括任何你想用來(lái)分析的代碼 我們這里包括了忽略所有注釋中字符的功能,傳送ID名稱和字符串常量?jī)?nèi)容到主調(diào)函數(shù)和main函數(shù)的功能.
(3)實(shí)現(xiàn)原理
程序中先判斷這個(gè)句語(yǔ)句中每個(gè)單元為關(guān)鍵字、常數(shù)、運(yùn)算符、界符,對(duì)與不同的單詞符號(hào)給出不同編碼形式的編碼,用以區(qū)分之。
PL/0語(yǔ)言的EBNF表示
<常量定義>::=<標(biāo)識(shí)符>=<無(wú)符號(hào)整數(shù)>
<標(biāo)識(shí)符>::=<字母>={<字母>|<數(shù)字>}
<加法運(yùn)算符>::=+|-
<乘法運(yùn)算符>::=*|/
<關(guān)系運(yùn)算符>::==|#|<|<=|>|>=
<字母>::=a|b|…|X|Y|Z
<數(shù)字>::=0|1|2|…|8|9
標(biāo)簽:
分
LETTER
DIGIT
程序
上傳時(shí)間:
2015-11-04
上傳用戶:zhengzg