一、 實(shí)驗(yàn)內(nèi)容
S語(yǔ)言的編譯程序的詞法分析部分實(shí)現(xiàn)
從左到右掃描每行S語(yǔ)言源程序的符號(hào),拼成單詞,換成內(nèi)部表示(token)
二、 實(shí)驗(yàn)要求
要求實(shí)現(xiàn)編譯器的以下功能:
組織源程序的輸入
按規(guī)則拼寫(xiě)單詞,并轉(zhuǎn)換成二元形式
刪除空格及無(wú)用符號(hào)(如回車(chē)符,字符常數(shù)的引號(hào)符等)
發(fā)現(xiàn)并定位錯(cuò)誤
建立單詞表、符號(hào)表、常數(shù)表等文件
三、 實(shí)現(xiàn)方法
數(shù)據(jù)結(jié)構(gòu)
1、 輸入
S語(yǔ)言源程序,為文本文件
2、 輸出
詞法分析程序的運(yùn)行結(jié)果是:產(chǎn)生一個(gè)單詞序列文件(token文件)和一個(gè)常數(shù)表、一個(gè)符號(hào)表文件,并輸出錯(cuò)誤信息。
(1) token文件結(jié)構(gòu)
token文件用于存放從S語(yǔ)言源程序中掃描出來(lái)的一個(gè)個(gè)單詞符號(hào)的機(jī)內(nèi)表示,其文件結(jié)構(gòu)如下:
typedef struct token
{
nt label
char name[30]
int code
int addr
}token
說(shuō)明:
label:?jiǎn)卧~序號(hào);
name[30]:?jiǎn)卧~本身;
code:?jiǎn)卧~的編輯;
addr:地址,單詞本身保留字時(shí)值為-1,為標(biāo)識(shí)符成常數(shù)時(shí)為大于0常數(shù),即該標(biāo)識(shí)符成常數(shù)在符號(hào)表中的入口地址。
標(biāo)簽:
分
語(yǔ)言
實(shí)驗(yàn)
編譯
上傳時(shí)間:
2015-04-29
上傳用戶(hù):refent