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