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